Showing posts with label Software Testing and Quality Assurance. Show all posts
Showing posts with label Software Testing and Quality Assurance. Show all posts

Friday, January 21, 2011

Software Testing and Quality Assurance : Menganalisa data-data sebelum merancang Test Case (Article #3)

firman.efendi@gmail.com

Agar setiap Test Case berjalan efektif dan berbiaya rendah, alangkah baiknya rancangan Test Case dibuat berdasarkan hasil analisa terhadap sumber-sumber data berikut ini:
  • Requirements and functional specifications, adalah dokumen yang berisikan daftar spesifikasi untuk aplikasi yang sedang kita kembangkan. Dokumen ini disusun pada tahap awal, biasanya sebelum proyek berjalan atau masih dalam tahap proposal dan kemudian harus ditanda-tangani oleh klien sesaat sebelum proyek resmi berjalan. Dengan memahami spek secara akurat, software tester akan dapat merancang Test Case yang lebih efektif.
  • Source code akan menjelaskan lebih mendalam actual behaviour sebuah aplikasi/software, yaitu bagaimana sih proses yang sesungguhnya terjadi untuk melakukan perhitungan 2 pangkat 2. Mulai dari deklarasi variabel, fungsi apa saja yang terlibat, jika error terjadi maka algoritma apa yang akan berjalan selanjutnya. Dengan memahami source code secara mendalam, software tester akan dapat merancang Test Case yang lebih efektif.
  • Input and output domains menjadi faktor yang diperhatikan saat ini. Dulu kebutuhan orang dalam memaanfaatkan sebuah aplikasi/software tidaklah serumit saat ini. Sehingga apa saja yang diinput oleh user tidak perlu di validasi kembali. Coba anda buka program kalkulator yang ada di windows. Lalu input 1 dibagi 0. Apa yang terjadi ??? Akan ada pesan "cannot divide by zero". Nah pertanyaan selanjutnya, apakah sistem akan membagi 1 dengan 0 terlebih dulu lalu kemudian pesan itu tampil, atau sebaliknya yaitu menampilkan pesan dulu dan tidak melanjutkan proses pembagian 1 dengan 0 ??? Saya memilih jawaban yang terakhir. Karena program kalkulator di windows akan melakukan validasi input dulu baru memproses perhitungan. Beda dengan kalkulator tukang cabe yang perhitungan tersebut akan tetap dijalankan prosesnya. Alhasil error.
  • Operational profile mengacu pada sifat dan karakteristik pengoperasian sebuah sistem/aplikasi/software. Ada user yang lebih memilih mengurus setting-an dulu, baru kemudian menggunakan fitur-fitur yang lain. Atau ada juga yang sebaliknya. Pemahaman terhadap operational profile akan menghasilkan samples of system usage yang akan menjadi panduan bagi software tester dalam memilih Test Case yang tepat.
  • Fault model adalah permodelan dalam menemukan sebuah error/fault/bugs. Permodelan ini terbentuk setelah kita mengamati beberapa fault yang terjadi pada sebuah sistem/aplikasi/software. Ada pepatah "Jadikan kesalahan masa lalu sebagai pengalaman yang berharga untuk masa depan". Pepatah ini sejalan dengan teori Fault Model. Ada 3 jenis fault-based testing yaitu error guessing, fault seeding dan mutation analysis.
Demikian yang bisa saya share kepada rekan-rekan. Tiada gading yang tak retak. Ditunggu koreksi dari anda.

Blog ini adalah milik komunitas, maka bagi siapa saja yang berniat menyumbangkan ilmunya dengan senang hati kami terima. Silahkan kirim artikel dan biodata anda dalam bentuk PDF ke firman.efendi@gmail.com.

To be Continued

    Friday, January 7, 2011

    Software Testing and Quality Assurance : Apa itu Test Case ? (Article #2)

    firman.efendi@gmail.com

    Masih melanjutkan pembahasan tempo hari mengenai Software Testing , hari ini kita akan membahas mengenai Test Case. Artikel ini adalah lanjutan dari artikel sebelumnya yang berjudul Pendahuluan (Article #1).

    Pengujian Piranti Lunak diselenggarakan dalam rangka mendeteksi cacat-cacat yang mungkin ada/timbul dalam sebuah software design. Lalu bagaimanakah cara kita melihat adanya cacat dalam sebuah piranti lunak ? Caranya yaitu dengan membandingkan antara perilaku sesungguhnya (actual behavior) terhadap spesifikasi yang dibutuhkan (specific requirements) sebuah piranti lunak. Anggap kita sedang mengembangkan sebuah program kalkulator sederhana yang bisa menghitung nilai kuadrat (pangkat 2). Sesuai dengan spesifikasi, nilai 2 kuadrat (2 pangkat 2) akan menghasilkan nilai 4. Nah, berapakah hasil yang akan kita dapat ketika kita menginput angka 2 pada kalkulator ? Jika hasilnya 4, maka piranti lunak yang telah kita rancang telah bekerja secara normal sesuai dengan spesifikasi yang kita butuhkan. Akan tetapi, jika hasilnya selain 4, maka dipastikan piranti lunak anda mengandung bugs atau kesalahan algoritma.

    Contoh diatas adalah ilustrasi sederhana dari Test Case. Secara sederhana Test Case dapat didefinisikan sebagai pasangan <input dan output>. Test Case untuk aplikasi Kalkulator diatas adalah :

    <2 4>
    <3 9>
    <4 16>

    Jika kita input 2 hasilnya 4, input 3 hasilnya 9, dan terakhir input 4 hasilnya 16, maka kesimpulan yang dapat diambil dari aktivitas Software Testing yang baru saja kita kerjakan adalah program Kalkulator tersebut telah berfungsi sesuai dengan spesifikasi atau dengan kata lain "bebas bugs".

    Apa yang baru saja kita bahas adalah bentuk sederhana dari sebuah pengujian terhadap piranti lunak. Perlahan-lahan akan kita bahas secara detail baik teknis dan non teknis.

    To be continued.

    Wednesday, January 5, 2011

    Software Testing and Quality Assurance : Pendahuluan (Article #1)

    firman.efendi@gmail.com

    Apa yang menjadi pertimbangan utama anda sebelum membeli sebuah produk ? Saya yakin bahwa sebagian besar dari pembaca artikel ini akan menjawab kualitas. Anda akan merasa puas manakala produk yang telah anda beli memiliki kualitas sesuai dengan yang anda harapkan. Apalagi jika anda membelinya dengan harga yang terjangkau. Setelah itu saya yakin anda akan dengan senang hati merekomendasikan produk tersebut kepada rekan-rekan anda.

    Fakta bahwa kualitas mempengaruhi keputusan pembeli sudah tentu itu disadari oleh produsen. Mereka akan berlomba-lomba meningkatkan kualitas produk untuk memperoleh market share yang lebih banyak dari pesaing. Kondisi seperti ini juga pasti berlaku di industri IT. Siapa sih yang mau memakai software yang dipenuhi bugs di sana sini ?

    Test Process Improvement dan Test Maturity Model

    Software Testing memainkan peranan penting dalam Industri IT. Keberadaanya dalam proses pengembangan piranti lunak tidak boleh diabaikan. Berapa banyak biaya yang akan dikeluarkan oleh pengembang untuk memperbaiki error, fault, dan bugs yang ditemukan pengguna. Memperbaiki bugs/error/fault yang ditemukan di fase akhir yaitu distribusi produk akan menghabiskan biaya 50x lipat bahkan lebih dibandingkan dengan perbaikan pada fase unit. Untuk meningkatkan proses/mekanisme pengujian piranti lunak agar mencapai taraf optimum, maka para peneliti dan akademisi telah mengembangkan beberapa permodelan yaitu Test Process Improvement dan Test Maturity Improvement. Kedua permodelan tersebut merupakan framework bagi para software tester dalam mengoptimumkan proses pengujian terhadap piranti lunak.

    Nah, itu dulu yang dapat saya sharing kepada rekan-rekan.  

    To be continued.