Testabilitas Yang Harus Dimiliki Oleh Programmer

Sesuai dengan judul dari tulisan ini maka idealnya seorang programmer harus memiliki kemampuan untuk menerapkan testabilitas pada software yang dibuat baik itu desain, sistem maupun produk dari software itu sendiri. Hal ini bertujuan agar mempermudah testing dalam membuat dan mendesain test case yang efektif dan lebih mudah.
Berbicara mengenai testabiltas, secara sederhana menurut James Bach, testabilitas software adalah seberapa mudah suatu program komputer untuk dites. Oleh karena itu, kadang programmer dapat membantu proses testing dan memberikan daftar item desain yang mungkin, fitur dan lain-lain yang dapat membantu jika tester dapat bekerja sama dengan programmer. Berikut karakteristik yang harus dimiliki oleh programmer :

Operability

Dalam hal ini seorang programmer dapat menerapkan yang disebut “Semakin baik software bekerja, maka akan membuat software dapat dites dengan efisien. Hal-hal yang diperhatikan adalah :

  1. Sistem mempunyai bug baru (bug menambah biaya tidak langsung pada proses testing, dengan adanya analisa dan pelaporan)
  2. Tidak ada bug yang menghentikan eksekusi tes
  3. Produk berubah dalam tahap fungsional (memungkinkan pengembangan dan testing yang simultan)

Observability

Karakter ini diterapkan dengan konsep “Apa yang Anda lihat, adalah apa yang Anda tes”. Hal ini berkaitan dengan sebagai berikut :

  1. Hasil dari setiap keluaran harus menunjukkan hasil dari masukan
  2. Kondisi sistem dan variabel dapat dilihat atau di query selama eksekusi berlangsung
  3. Kondisi dan variabel sistem lama juga dapat dilihat atau di query
  4. Semua faktor yang mempengaruhi keluaran dapat dilihat
  5. Keluaran yang salah dapat dengan mudah diidentifikasikan 
  6. Kesalahan internal dapat secara otomatis dideteksi oleh mekanisme tes yang menyeluruh
  7. Kesalahan internal secara otomatis dilaporkan
  8. Source code dapat diakses

Controllability

Ini merupakan kemampuan mengendalikan software, dimana dengan semakin baik programmer dapat mengendalikan software, maka semakin banyak testing dapat diotomatisasi dan dioptimalisasi. Untuk kontrol ini, programmer dapat menerapkan yaitu :

  1. Semua kemungkinan keluaran atau output dari program dihasilkan dari berbagai kombinasi masukkan
  2. Semua kode dieksekusi dari beberapa kombinasi masukan
  3. Kondisi hardware dan software serta variabel dapat dikontrol secara langsung oleh test engineer
  4. Format masukan dan keluaran harus konsisten dan terstruktur
  5. Testing dapat dengan mudah dispesifikasikan, otomasi dan dibuat ulang

Decomposability

Penerapan batasan untuk testing harus dilakukan dan dikendalikan agar lebih cepat dalam mengisolasi masalah dan melakukan testing ulang yang lebih baik. Untuk itu terapkan pada software sebagai berikut :

  1. Sistem software dibangun dari modul-modul yang independen
  2. Modul sofware dapat di tes secara independen (sendiri-sendiri)

Simplicity

Kesederhanaan fungsi pada software akan menjadikan aktifitas tes pada software semakin sedikit dan semakin sedikit yang dites maka semakin cepat juga dalam melakukan testing. Oleh karena itu, terapkan pada software sebagai berikut :

  1. Kesederhanaan fungsi (fitur yang ada dibuat seminimal mungkin untuk memenuhi kebutuhan yang ada)
  2. Kesederhanaan struktur (arsitektur dibuat sesederhana mungkin untuk menghindari kesalahan)
  3. Kesederhanaan kode (standar dari kode dibuat agar dengan mudah diinspeksi dan dirawat)

Stability

Sebuah software yang bagus adalah yang sedikit mengalami perubahan, karena dengan sedikit perubahan pada software maka semakin sedikit masalah atau gangguan testing. Hal ini bisa terjadi karena :

  1. Perubahan dari software terjadi kadang-kadang
  2. Perubahan dari software tidak terkendali
  3. Perubahan dari software tidak dapat divalidasi pada tes yang ada
  4. Software dapat melakukan perbaikan untuk kembali berjalan dengan baik (recovery) dari kegagalan proses

Understandability

Memberikan informasi yang banyak yang dimiliki oleh programmer maka akan menjadikan tes terhadap program berjalan dengan baik. Oleh karena itu, untuk pemahaman yang lebih baik terapkan hal sebagai berikut :

  1. Desain mudah dimengerti dan dipahami dengan baik
  2. Keterkaitan antara internal, eksternal, dan share komponen dipahami dengan baik
  3. Perubahan desain harus dikomunikasikan
  4. Dokumentasi teknis dapat dengan mudah diakses
  5. Dokumentasi teknis diorganisasi dengan baik
  6. Dokumentasi teknis berisi spesifikasi dan detail
  7. Dokumentasi teknis yang akurat
Itulah atribut atau karakteristik yang disarankan oleh Bach yang dapat digunakan oleh programmer agar pada saat mengembangkan suatu konfigurasi software seperti program, data dan dokumen dapat diterapkan sehingga dapat membantu testing.

0 Comments