Tuesday, 28 May 2013

Software Maintenance / Perawatan Software




Setelah sebuah software berhasil di buat, maka hal apakah yang harus di lakukan untuk memastikan bahwa kualitas software tersebut  tetap sesuai dengan kehandalan dan perjanjian di awal pembuatannya.
 
Maintenance software digunakan untuk memastikan apakah fungsional teknis software telah sesuai atau tetap sesuai dengan kehandalannya di awal, memastikan kepada pihak manajerial untuk menyediakan tanggal dan budget melakukan update agar software tetap dapat berjalan, maupun untuk mengefisiensikan software dari sisi penggunaanya maupun aktivitas pemeliharaannya.

Kenapa hal ini di perlukan?
Karena kebanyakan software butuh untuk di update sesuai dengan perkembangan softwarenya, oleh karena itu sebuah software perlu di rawat, di bersihkan dari data-data yang mungkin tidak diperlukan lagi, membangun agar software tetap up-to-date, menjaga data-data yang penting dengan melakukan back-up data secara berkala dan menjaga software dari virus dan ancaman kerusakan lainnya.

Bagaimana hal ini dapat dilakukan?
Yang pertama dapat dilakukan adalah mendokumentasikan setiap dokumen penting software dengan baik, mengedukasi user dalam proses penggunaannya, dan men-encourage user untuk meng-update versi dan antivirusnya. Dan yang terakhir dapat dilakukan adalah dengan melakukan pengecekan secara berkala terhadap software yang di jalankan. 

Dalam memastikan kualitas software yang baik, dibutuhkan dua buah pondasi, yaitu maintenance policy, yaitu bagaimana kebijakan dan konsentrasi perusahaan tersebut dalam melakukan perawatan terhadap software yang di milikinya.

Dan selain itu, yang menjadi pondasinya adalah paket dari kualitas software itu sendiri. Bagaimana dari tim pembangun software itu sendiri memastikan kualitas dari software tersebut.

Software Testing





Pada kesempatan kali ini, kita akan membahas akan pentingnya testing untuk memastikan sebuah kualitas software.

Mari kita mulai dari pengertian dasar testing.  
Testing berasal dari kata ‘Test’ merupakan sebuah proses untuk mengetahui item-item pada sesuatu yang sedang menjadi objek testing. Item-item tersebut dianalisa. Dalam konteks kali ini, adalah testing dalam software.

Untuk apakah testing itu dilakukan?
Testing sendiri dilakukan baik oleh orang / tim yang sedang men-developed nya langsung atau orang / tim lain yang memang disengaja untuk dibayar melakukan pengetesan. Testing memiliki tujuan untuk mencari tahu akan keadaan sesungguhnya software dibandingkan dengan keadaan yang direncanakan. Apakah semua yang direncanakan sudah berhasil di implementasikan. Serta untuk mengecek apakah fitur-fitur dalam software tersebut sudah siap dan sesuai. 

Proses testing yang baik dilakukan diseluruh fase developed software. Hal ini dilakukan untuk menvalidasikan dan menverifikasikan semua yang sudah di lakukan dalam proses pembangunannya.
Apa yang dimaksud dengan verifikasi?

Verifikasi adalah sebuah langkah untuk memastikan proses yang dilakukan sudah benar. Verifikasi sendiri biasanya menggunakan metode WhiteBox dalam langkah pengetesannya. White box adalah sebuah langkah pengetesan dengan mengecek terhadap komponen pembangun software tersebut secara langsung.

Sedangkan validasi adalah sebuah metode pengetesan untuk mengetahui bahwa sesuatu / software yang dibangun tersebut sudah sesuai/benar sesuai yang diinginkan pada perjanjian di awal.

Dalam validasi, tidak seperti verifikasi yang langsung melihat pada code/ langkah pembuatannya, tetapi lebih melihat apakah yang dikerjakan sudah tepat dan sesuai dengan proposal kerjasama di awal. Proses validasi ini lebih menggunakan pengetesan secara Blackbox, yaitu pengetesan untuk melihat apakah fungsi-fugsi sudah berjalan terlepas dari coding dan langkah pembangunnya di dalamnya.

Selain dua tipe pengetesan tersebut, masih terdapat enam tipe pengetesan lainnya, yaitu secara unit (pengetesan berdasarkan unit-unit yang di tes), integration ( mengetes apakah satu fungsi dengan fungsi lainnya telah berhubungan dan berjalan dengan baik), functional (mengetes terhadap fungsi-fungsi di dalam keseluruhan produk), system ( mengetes keseluruhan produk dengan menggunakan lingkungan yang berbeda-beda, mengetes apakah aplikasi dapat berjalan dengan baik meskipun sistemnya telah berubah),acceptance ( mengetes dari sisi pelanggan, apakah sudah sesuai dengan ekspetasi pelanggan di awal), Beta ( secara independen untuk mengetahui apakah sudah sesuai dengan ekspetasinya yang di lakukan dari layer customer secara langsung) ataupun regression, yaitu pengetesan yang di lakukan oleh tim developer langsung atau tester untuk mengetes apakah dokumentasi sudah sesuai dengan yang diperlukan oleh user.

Monday, 27 May 2013

Mengenal Requirement Traceability Matrix




Mengenal Requirement Traceability Matrix

Apa ?

Requirement Traceability Matrix adalah sebuah tabel yang menghubungkan antara kebutuhan (requirement) sebuah software dari awal mereka dibentuk hingga jejak pembuatannya selama proses life ciycle pembuatan software tersebut berjalan.

Siapa?

Sebagian orang masih menggunakannya dengan beberapa template yang berbeda-beda.biasanya yang menggunakannya adalah orang-orang yang berkecimpung dalam pekerjaannya dalam tim proyek. Ketika ia menyadari akan pekerjaan yang lebih efisien dan efektif dan menginginkan laporan yang yang terencana dan terarah, maka ia akan menggunakan traceability matrix yang baik.

Dimana?

Biasanya terdapat dalam rencana atau laporan pengerjaan proyek. ditemukan dalam bentuk laporan atau dokumen untuk memastikan bahwa requirement yang dibutuhkan dapat terpenuhi.

Mengapa?

  1. Untuk mempermudah mengerjakan proyek   (mempermudah untuk setiap anggota tim mengerti capaian dan target dari tim proyek pada satu waktu   tertentu.) 
  2. Untuk memastikan requirement telah terpenuhi
  3.  Mengurangi kemungkinan terjadinya bug dan error
  4.  Mengetahui pencapaian pada satu waktu
  5.  Mengerti mana critical dan mana yang tidak, sehingga setiap anggota tim proyek dapat memaksimalkan kinejanya.

Kapan?

Dimulai dari awal inisiasi proyek hingga proyek selesai. TraceAbility matrix ini digunakan lebih ke arah monitoring kinerja dari tim sebuah proyek.

Bagaimana?

  1.      Me-listkan requirement selengkap mungkin
  2.      Menentukan tingkat kritisnya
  3.      Membuat alur pengerjaannya
  4.      List selesai / belum di selesaikan
  5.           List test atau belum di test kan
hubungannya dengan manajemen kualitas adalah, Requirement Traceability Matrix ini dapat digunakan sebagai salah satu tools untuk memastikan bahwa kebutuhan software telah terpenuhi sesuai dengan yang di harapkan sehingga kualitas dari software tersebut dapat sesuai dengan ekspetasi kualitasnya di awal.