Software testing Rizqi Prifsanti (5209100084)
Strategies
Software Test - definition Sebuah proses formal yang dilakukan oleh tim testing, di mana unit software, beberapa unit software yang terintegrasi atau seluruh package software diuji dengan menjalankan program di komputer
Software Testing objectives Untuk menidentifikasi dan menemukan error sebanyak mungkin pada software yang diuji Untuk membawa software yang dites, setelah koreksi terhadap error hingga mencapai level dari kualitas Untuk melakukan tes yang dibutuhkan dengan efisien dan efektif, dengan batasan budget dan jadwal Direct objectives Untuk mengcompile sebuah rekaman eror dari software yang digunakan sebagai pencegahan error (dg tindakan koreksi dan pencegahan) Indirect objective
Software testing strategies Big bang testing Menguji software secara keseluruhan, ketika package lengkap dari software tersbut telah tersedia Incremental testing Menguji software per bagian, per modul, ketika telah lengkap (unit testing), lalu dilakukan uji modul yg terintegrasi dengan modul yang telah lengkap (integration test), lalu dilanjutkan menguji package secara keseluruhan (system test)
Incremental testing Bottom up testing Top down testing
Software test classification Black box testing Testing yang mengabaikan mekanisme internal dari sistem atau komponen dan fokus pada output dari input yang dimasukkan dan dari eksekusi yang diberikan Testing dilakukan untuk mengevaluasi kesesuaian antara sistem atau komponen dengan functional requirement White box testing Testing yang melihat hingga mekanisme internal dari sistem atau komponen
Klasifikasi berdasarkan requirement
White box testing Data processing dan kalkulasi uji correctness Uji Correctness dan path coverage Uji Correctness dan line coverage McCabe’s metrik kompleksitas silkomatik Testing kualifikasi software dan reusability
White box testing Advantage Pengecekan statement by statement terhadap code yang menentukan correctness Mengizinkan adanya follow up line coverage Memastikan kualitas dari coding dan ketaatan terhadap standar coding Disadvantage Sumber daya yang digunakan banyak, membutuhkan black box testing juga pada package software yang sama Ketidakmampuan untuk menguji performa software mengenai response time, reliability, durability, dll
Black box testing Advantage Bisa melakukan sebagian besar testing classes Membutuhkan resource lebih sedikit daripada yang dibutuhkan untuk white box testing untuk package software yang sama Disadvantage Kemungkinan agregasi dari beberapa error secara secara kebetulan akan menghasilkan respon yang benar untuk tes case. Tidak siap mengidentifikasi case eror yang saling mempengaruhi yang lain sehingga menghasilkan output yang benar Tidak ada kontrol terhaadap line coverage Ketidakmungkinan dari testing untuk kualitas coding dan ketaatan terhadap standar coding
Implementation
Planning activities Menentukan metodologi testing Berkaitan mengenai keputusan standar kualitas software apa yang dibutuhkan dan strstegi software: big bang atau incremental, dan adanya testing yang terotomatisasi Menentukan metodologi testing Sebelum merencanakan testing, preferensi harus sudah ditetapkan untuk testing unit dan integrasi yang akan dilakukan, berdasarkan karakteristik sistem Merencanakan unit testing dan integration test Fokus pada isu berikut: Apa yang akan dites? Tipe mana dari sumber yang menyediakan test case? Siapa yang melakukan testing? Di mana tes akan dilakukan? Kapan melakukan testing? Merencanakan testing system Produk yang dihasilkan saat tahap design yaitu: Design dan prosedur untuk tiap testing secara detail Database/file test case Mendesign testing
Tipe utama dari testing software secara otomatis Mengecek kesesuaian antara coding dnegan standar dan prosedur coding Auditor dari coding Memproduksi laporan mengenai line coverage yang dicapai dengan cara melakukan file test case yang ada Coverage monitor Tes fungsional secara otomasi dapat menggantikan test correctness black-box yang manual. Testing dilakukan dalam beberapa case yang dilakukan oleh computer program Functional test
Tipe utama dari testing software secara otomatis (cont’d) Load tests menguji skenario yang disimulasikan bagaimana software system dapat menghadapi situasi dengan maximal load Load tests Menyediakan tindakan lanjut yang lebih komprehensif dan melaporkan tetsing dan deteksi eror Test management
Advantages of automated computerized testing Keakuratan dan ketuntasan dari performa Keakuratan dari log hasil dan laporan ringkas Kemampuan dalam mendapatkan informasi yang lebih komprehensif Performa menmbuthkan sumber daya manusia lebih sedikit Periode testing lebih pendek Melakukan tes regresi secara lengkap Melakukan kelas testing lebih dari testing manual
Disadvantages of automated computerized testing Membutuhkan investasi yang ringgi untuk purchasing dan pelatihan Sumber daya manusia banyak yang harus menyiapkan testing Area testing yang dapat diperhatikan yang tidak memungkinkan testing automatic
Advantage and disadvantages of beta site tests Identifikasi dari eror yang tidak diharapkan Cakupan yang luas untuk mencari eror Biaya murah Disadvantages Testing sistematis yang kurang Laporan error dari kualitas rendah Usaha manusia kebanyakan untuk memeriksa laporan peserta