Prinsip-Prinsip Testing

Sunday, March 11, 2012
Prinsip pertama
Testing yang komplit (dilakukan secara menyeluruh) tidak memungkinkan dilakukan:
 Kemungkinan jumlah kombinasi testcase yang amat besar.
 Pertimbangan domain masukan yang mungkin sangat besar jumlahnya (masukan yang valid, tidak valid, masukan yg diedit dll).
 Kompleksitas user interface dan desain.
 Jalur program yang mungkin dapat dilewati sangat banyak.
 Harus dilakukan test ulang, setiap ada perbaikan pada masing-masing bug.


Prinsip kedua
Testing merupakan pekerjaan yang kreatif dan sulit. mitos-mitos yang salah tentang testing :
 Testing itu mudah.
 Tiap orang akan dapat melakukan testing dengan sendirinya padahal testing bukanlah hal yang sederhana, karena.
 Untuk dapat melakukan testing yang efektif harus mengetahui keseluruhan system.
 Sistem sendiri tidak sederhana (mudah dipahami).


Prinsip ketiga
Testing berbasis pada resiko walaupun testing secara keseluruhan tidak dapat dilakukan tidak berarti bahwa testing yang efektif tidak dapat dilakukan, testing merupakan hasil pertimbangan dari risiko dan ekonomi.
Secara ringkas, testing dipengaruhi oleh pertimbangan :
 Sumber daya dan biaya yang dibutuhkan untuk melakukan testing menurut skala prioritas, kompleksitas dan kesulitan testing
 Biaya dari keterlambatan pengiriman produk (kemungkinan besar disebabkan testing)
 Kemungkinan adanya suatu defect
 Biaya yang disebabkan oleh defect, bilamana defect tsb menyebabkan error yang membawa kerugian langsung maupun tak langsung bagi customer.


Prinsip keempat
Testing harus direncanakan butuh pemikiran dgn pendekatan secara keseluruhan, desain tes dan penetapan hasil yg diinginkan untuk setiap kasus tes (test case) yg dipilih:
  test plan : dokumen yg mencakup keseluruh tujuan testing dan pendekatan testing.
  test design : dokumen yg mendefinisikan apa yg telah dipilih utk dites dan hasil yg diharapkan “test direncanakan dan didesain sebelum kode dibuat”.
Perencanaan tes sangat penting, yaitu :
 Untuk dapat menjaga arah pelaksanaan tes agar tidak menyimpang dari tujuan tes itu sendiri (mengukur kualitas SW).
 Menjaga kesesuaian penggunaan sumber daya dan jadual proyek dengan menetapkan apa yang akan dites dan kapan berhenti .
 Membantu tester fokus terhadap apa yang akan dites (membuat test case).


Prinsip kelima
 Testing butuh independensi testing yang paling efektif adalah yang dilakukan oleh pihak ketiga (tidak bias).

Dasar-dasar testing
Testing dikatakan baik, jika :
 Kemungkinan mendapatkan error tinggi.
 Tidak redundan --> resource terbatas, tiap tes yang dilakukan HARUS memiliki tujuan yang berbeda.
 Tidak terlalu simpel atau kompleks.
 Kode untuk kondisi khusus mendapatkan porsi tes yang sama dengan kode yang umum:
        Kode untuk kondisi khusus --> peluang mempunyai bug tinggi.
        Testing untuk kode yang dijalankan dalam kondisi normal tidak mengeksekusi error handling code.
 Testing yang sukses adalah testing yang berhasil menemukan error yang tidak diketahui.






Testing dan Implementasi Sistem

Friday, March 9, 2012
Definisi testing
Menurut standar ANSI/IEEE 1059 Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defect/errors/bugs) dan mengevaluasi fitur-fitur dari entitas software.
Testing software adalah proses mengoperasikan software dalam kondisi yang dikendalikan, untuk :
Verifikasi apakah telah berlaku sebagaimana telah ditetapkan (menurut spesifikasi)
Are we building the system right?
Mendeteksi error
Validasi apakah spesifikasi yang telah ditetapkan sudah memenuhi keinginan atau kebutuhan dari pengguna sebenarnya 
Are we building the right system?

Definisi kualitas
Menurut Crosby Kualitas adalah pemenuhan terhadap kebutuhan.
Menurut ISO-8402 Kualitas adalah keseluruhan dari fitur yang menjadikan suatu produk dapat memuaskan atau dipakai sesuai kebutuhan dengan harga yang terjangkau.
Menurut W.E Perry Kualitas adalah pemenuhan terhadap standar.
Menurut R.Glass Kualitas adalah tingkat kesempurnaan.
Menurut J.Juran Kualitas adalah tepat guna.

Hubungan testing dan kualitas
Software yang berkualitas adalah software yang bebas error dan bug secara objektif, tepat waktu dan dana, sesuai dengan kebutuhan atau keinginan dan dapat dirawat (maintainable)
Definisi objektif : Suatu proses pembuktian yang terstruktur, terencana dan terdokumentasi dengan baik.
Testing membuat kualitas dapat dilihat secara objektif, karena testing merupakan pengukuran dari kualitas software.
Testing tidak dapat memastikan kualitas software, namun dapat memberikan jaminan terhadap software pada suatu tingkat tertentu.
Jaminan kualitas (Quality Assurance – QA) mengukur kualitas proses yang digunakan untuk membuat produk berkualitas. Testing merupakan bagian dari aktifitas QA.
Proyek pengembangan software memiliki kecenderungan untuk mengalami kegagalan.
Proyek yang gagal ???
Salah satu usaha menurunkan tingkat resiko terjadinya kegagalan adalah dengan berorientasi pada kualitas.

Tujuan testing
Adalah menemukan sebanyak mungkin masalah (error).
Tujuan dari menemukan masalah adalah memperbaikinya. Tangani masalah yang bersifat penting, karena tidak semua permasalahan dapat  diselesaikan – berlaku prinsip pareto.

Misi tim testing
Tidak hanya untuk melakukan testing, tetapi juga membantu meminimalkan resiko kegagalan proyek. 
Mencari masalah dari produk. 
Mencari masalah potensial.
Mencari kehadiran masalah. 
Intinya adalah mencari dan melaporkan sehingga tim lain dapat membuat keputusan terhadap pengembangan produk. Perlu diingat, tester hanya menginformasikan, tidak melakukan pembenahan kode. Tester adalah individu yang memberikan hasil pengukuran dari kualitas produk.

Psikologi testing
Jika pengembangan dilakukan secara konstruktif, maka testing dilakukan secara destruktif.
Tester harus mempunyai keinginan yang mendasar untuk membuktikan kode gagal dan akan melakukan apa saja untuk membuatnya gagal.
Bila seorang tester hanya ingin membuktikan bahwa kode beraksi sesuai dengan fungsi bisnisnya, maka tester tersebut telah gagal dalam menjalankan tugasnya sebagai tester.





Expert Systems: Benefits to End Users

Friday, March 2, 2012

Primarily, the benefits of Expert Systems to end users include:
  • A speed-up of human professional or semi-professional work -- typically by a factor of ten and sometimes by a factor of a hundred or more.
  • Within companies, major internal cost savings. For small systems, savings are sometimes in the tens or hundreds of thousands of dollars; but for large systems, often in the tens of millions of dollars and as high as hundreds of millions of dollars. These cost savings are a result of quality improvement, a major motivation for employing expert system technology.
  • Improved quality of decision making. In some cases, the quality or correctness of decisions evaluated after the fact show a ten-fold improvement.
  • Preservation of scarce expertise. Expert Systems are used to preserve scarce know-how in organizations, to capture the expertise of individuals who are retiring, and to preserve corporate know-how so that it can be widely distributed to other factories, offices or plants of the company.
  • Introduction of new products. A good example of a new product is a pathology advisor sold to clinical pathologists in hospitals to assist in the diagnosis of diseased tissue.