BAB-9 Software Testing - Strategies (1)

Embed Size (px)

Citation preview

BAB-9 Software Testing Strategies

BAB-9Software Testing Strategies(Software Quality Assurance, DANIEL GALIN)ContantBerdasarkan Myers(1997, bab 10)Berdasarkan definisi ini aktifitas pengujian dilakukan oleh seorang pemimpin dan rekan kerjanya untuk menjalankan software, seperti halnya test yang dijalankan oleh tim pengujiDefinisi Testing IEEE Std 610.12 (IEEE, 1990)Proses pengoperasian sebuah sistem atau komponen terhadap kondisi-kondisi yang telah ditetapkan, mengamati dan memperhatikan hasil, dan membuat evaluasi dari beberapa aspek dari sistem atau komponen tersebut.Proses menganalisa sebuah software untuk mendeteksi perbedaan antara software tersebut dengan kemauan user dan untuk mengevaluasi fitur-fitur dari software tersebut.Yang patut diingat bahwa menurut definisi yang kedua, menjalankan program sebagai bagian dari testing tidak diperkenankan4Definisi Testing (Daniel Galin)software testing adalah suatu proses formal yang dilakukan oleh tim khusus (tim spesialis penguji ) yang mana satu unit software, beberapa gabungan dari unit-unit software atau keseluruhan paket dari software akan diuji dengan cara menjalankan program di komputer. Keseluruhan rangkaian dari pengujian dilakukan berdasarkan prosedur yang telah disetujui sebelumnya dalam test case yang telah disepakatiKarakteristik dari Software TestingTim Khusus Biasanya jika test dilakukan oleh developer hasil yang didapat tidak bisa optimal, karena biasanya developer sulit untuk memperbaiki eror yang tidak mereka pertimbangkan sebelumnya. Namun kebanyakan software masih ditest oleh developer yang membuat software itu sendiri.6Karakteristik dari Software TestingTest case yang telah disepakati Dengan kata lain jika proses telah dimulai, penguji tidak diperkenankan untuk mengurangi(menghilangkan) salah satu kondisi testing dan juga tidak diperkenankan untuk menambahi kondisi test baru meskipun itu memungkinkan.7Tujuan TestingYang harus diingat adalah untuk membuktikan bahwa suatu perangkat lunak telah selesai(siap) bukanlah sebuah kebetulan. Myers(1979) menyatakan : Jika tujuan anda adalah untuk menunjukkan tidak adanya eror, maka anda tidak akan menemukan eror tesebut, namun jika tujuan anda adalah untuk menunjukkan jumlah eror yang ada maka anda akan menemukan begitu banyak eror.8Software Testing StrategiesMelakukan testing secara keseluruhan, sekali paket lengkap maka software siap, jika tidak dikenal sebagai big bang testing. Melakukan testing pada bagian software seperti modul atau unit.Meskipun metodologi testing sangat beragam, tapi metodologi ini bisa diterapkan dalam sebuah framework tentang dua strategis dasar testing yaitu : Melakukan testing secara keseluruhan, sekali paket lengkap maka software siap, jika tidak dikenal sebagai big bang testing. Melakukan testing pada bagian software seperti modul atau unit.

Incremental testing juga dilakukan berdasarkan 2 basic strategi : bottom-up dan top-downPada top-down testing, modul pertama yang ditest merupakan modul utama dan merupakan level tertinggi dari struktur software, sedangkan modul yang diuji terakhir kali adalah level yang terrendah. Pada bottom-up testing, yang pertama kali diuji adalah level yang terrendah, sedangkan bagian utamanya diuji paling akhir.92 Basic StrategiPada top-down testing, modul pertama yang ditest merupakan modul utama dan merupakan level tertinggi dari struktur software, sedangkan modul yang diuji terakhir kali adalah level yang terrendah. Pada bottom-up testing, yang pertama kali diuji adalah level yang terrendah, sedangkan bagian utamanya diuji paling akhir.

Incremental testing juga dilakukan berdasarkan 2 basic strategi : bottom-up dan top-downPada top-down testing, modul pertama yang ditest merupakan modul utama dan merupakan level tertinggi dari struktur software, sedangkan modul yang diuji terakhir kali adalah level yang terrendah. Pada bottom-up testing, yang pertama kali diuji adalah level yang terrendah, sedangkan bagian utamanya diuji paling akhir.

10Proses Bottom-Up Testing

Tahap 1 : Unit test modul 1-7Tahap 2 : Menguji kesatuan dari modul 1 dan 2 yang terintegrasi dalam modul 8Tahap 3: Menguji modul 3,4,5 dan 8 yang terintegrasi dalam modul 9, dan menguji modul 6 dan 7 yang terintegrasi dalam modul 10Tahap 4 : Menguji kesatuan sistem modul 9 dan 10 yang terintegrasi dalam modul 11Proses Top Down Testing

Tahap 1 : Unit test modul 11Tahap 2 : Tes penyatuan A, modul 9 dan 10 yang terintegrasi dalam modul 11Tahap 3 : Tes penyatuan B, A disatukan dengan modul 8Tahap 4 : Tes penyatuan C, B disatukan dengan modul 6 dan 7Tahap 5 : Tes penyatuan D, C disatukan dengan modul 1 dan 2Tahap 6 : Sistem D diintegrasikan dengan modul 3,4 dan 5.

merupakan pengujian software menggunakan top-down dalam 6 tingkatan. Tampak nyata bahwa perubahan strategi testing menunjukkan adanya perubahan pada penjadwalan test pula. Proses top-down testing, sebagai berikut :12Big bang vs testing incremental Berbeda dengan testing big bang, bahwa esting incremental menyajikan beberapa keuntungan, yang utama adalah sebagai berikut: 13Examples : Big Bang dan incremental testing

testing big bang hanya membutuhkan operasi testing tunggal14Sofware test ClassificationsPersyaratan Kualitas Software dan Klasifikasi TestingKategoriPersyaratanKualitasSub FaktorKlasifikasi Testingberdasarkan persyaratanOperasionalCorrectness(kebenaran)Akurasi dan kelengkapan output; Akurasi dan kelengkapan dataAkurasi dan kelengkapan dokumentasiKetersediaan (reaksi terhadap waktu)Pemrosesan data dan kebenaran perhitunganKoding dan Standarisasi dokumenKebenaran testing outputTesting dokumentasiTesting ketersediaan (reaksi waktu)Pemrosesan data dan testing kebenaran perhitunganReliability(Ketahanan, kepercayaan)Testing reliabilityEffisiensiTesting tekanan (testingbeban, testing waktu)IntegritasTesting keamanan sistemsoftwareUsability(dapat dipergunakan)Pelatihan yang dapat digunakanOperasional yang dapat digunakanRevisionMaintainabilityTesting pemeliharaanWhite Box TestingRealisasi dari konsep testing white box memerlukan verifikasi dari setiap pernyataan program dan komentar.Pengujian white box memungkinkan kinerja pengolahan data dan tes perhitungan kebenaran, tes kualifikasi perangkat lunak, tes pemeliharaan dan tes reusabilitas.sMacam Kelas Testing Antara White Box dan Black BoxKlasifikasi Testing berdasarkan PersyaratanWhite BoxBlack BoxTesting kebenaran output+Testing dokumentasi+Testing ketersediaan (reaksi terhadap waktu)+Pemrosesan data dan testing kebenaran perhitungan+Testing kualifikasi software+Testing ketahanan+Testing tekanan (beban dan durasi)+Testing keamanan sistem software+Testing pelaksanaan pelatihan+Testing pelaksanaan operasional+Testing pemeliharaan++Testing fleksibilitas+Testing kemudahan dibawa (portability)+Testing penggunaan kembali++Testing interoperabiliti software+Testing interoperabiliti hardware+9.4.1 Tes kebenaran pengolahan data dan perhitunganCakupan jalur - rencana uji untuk menutupi semua jalur yang mungkin, di mana cakupan diukur dengan persentase jalan tertutup. Cakupan baris - merencanakan tes untuk menutup semua baris kode program, di mana cakupan diukur dengan persentase garis tertutup. Menerapkan konsep testing white box, yang didasarkan pada pemeriksaan pengolahan data untuk setiap kasus uji. Dua pendekatan alternatif telah muncul:199.4.2 Kebenaran tes dan cakupan jalur Jalur yang berbeda dalam sebuah modul software yang diciptakan oleh pilihan dalam pernyataan bersyarat, seperti IF-THEN-ELSE atau DO WHILE atau DO UNTIL. Testing jalan adalah dimotivasi oleh aspirasi untuk mencapai cakupan yang lengkap dari sebuah program dengan menguji semua path yang mungkin9.4.3 Kebenaran cakupan tes dan barisKonsep cakupan line memerlukan bahwa, untuk cakupan baris penuh, setiap baris kode akan dieksekusi setidaknya sekali selama proses testing . Cakupan metrik baris untuk kelengkapan testing baris ("testing jalur dasar") rencana diidefinisikan sebagai persentase dari baris memang dijalankan selama testing . Untuk lebih memahami esensi testing jalur dasar dari sebuah program, referensi ke flow chart dan grafik aliran program dapat membantu. Dalam diagram alir, daimon menyajikan pilihan yang dicakup oleh pernyataan bersyarat (keputusan), sedangkan empat persegi panjang atau persegi panjang suksesi merupakan bagian software menghubungkan pernyataan bersyarat mereka. Dalam grafik aliran program, node mewakili bagian software dan dengan demikian menggantikan persegi aliran satu atau lebih tabel.Tepi mengindikasikan urutan dari bagian software. Node yang memiliki dua atau lebih ujung meninggalkan mewakili pernyataan bersyarat. Contoh berikut menunjukkan flow chart dan grafik aliran program untuk modul software Argometer yang menghitung tarif taksi.