Anda di halaman 1dari 4

3.10 Branch Condition Combination Testing http://www.computing.dcu.ie/~davids/courses/CA267/CA267_Dynamic_Testing_Whit e_Box_2p.

pdf Tujuan dari pengujian kondisi cabang untuk memastikan bahwa setiap kondisi atom mengadopsi kedua nilai TRUE dan FALSE. Kondisi atom adalah suatu kondisi yang tidak mengandung operator logika, seperti AND, OR atau NOT, tetapi dapat berisi operator relasional seperti ">", "", "<", , "=", "6 = ", dll Perhatikan potongan kode berikut: if (x > 3 || y < 5) { ... } Kondisi atom adalah x> 3 dan y <5. Kedua kasus uji (x = 6, y = 8) dan (x = 2, y = 3) mengakibatkan (true, salah) dan (false, true)). Namun sebagai kondisi lengkap mengevaluasi ke true untuk kedua kasus uji, kasus uji 2 menambahkan apa-apa. Cabang pengujian kondisi lemah dari cakupan pernyataan atau cakupan cabang. Cabang kondisi pengujian memerlukan kombinasi kasus uji yang cukup sehingga semua kombinasi yang true dan false untuk kondisi atom ditutupi. Jadi untuk contoh sebelumnya:

Ada beberapa masalah dengan kondisi kombinasi pengujian cabang: Hal ini dapat mahal. Jika atom adalah n kondisi dalam kondisi gabungan, maka ada 2n uji kasus. Tidak semua kombinasi mungkin.

Untuk (3 x) & & (x <5) tidak ada nilai x yang baik 3 x dan x <5 adalah false. 3.11 Modified Condition Decision Testing http://en.wikipedia.org/wiki/Code_coverage Untuk keselamatan-kritis aplikasi (misalnya, untuk perangkat lunak avionik) sering diperlukan bahwa diubah kondisi / cakupan keputusan (MC / DC) adalah satisifed. Kriteria ini meluas kondisi / keputusan kriteria dengan persyaratan bahwa kondisi masing-masing harus mempengaruhi hasil keputusan secara independen. Sebagai contoh, perhatikan kode berikut: if (a or b) and c then Kondisi / kriteria keputusan akan puas dengan set berikut tes: a=true, b=true, c=true a=false, b=false, c=false Namun, set tes di atas tidak akan memenuhi kondisi dimodifikasi / cakupan keputusan, karena dalam tes pertama, nilai 'b' dan di tes kedua nilai 'c' tidak akan mempengaruhi output. Jadi, test set berikut ini diperlukan untuk memenuhi MC / DC: a=false, b=false, c=true a=true, b=false, c=true a=false, b=true, c=true a=true, b=true, c=false Nilai tebal mempengaruhi output, setiap variabel harus hadir sebagai nilai mempengaruhi setidaknya sekali dengan palsu dan sekali dengan benar. Beberapa kondisi cakupan Kriteria ini mensyaratkan bahwa semua kombinasi dari kondisi di dalam setiap keputusan diuji. Misalnya, fragmen kode dari bagian sebelumnya akan memerlukan delapan tes: a=false, b=false, c=false a=false, b=false, c=true a=false, b=true, c=false a=false, b=true, c=true

a=true, b=false, c=false a=true, b=false, c=true a=true, b=true, c=false a=true, b=true, c=true 3.12 LCSAJ Testing http://en.wikipedia.org/wiki/Linear_code_sequence_and_jump Perhatikan kode C berikut:
1. #include <stdlib.h> 2. #include <string.h> 3. #include <math.h> 4. 5. #define MAXCOLUMNS 26 6. #define MAXROW 20 7. #define MAXCOUNT 90 8. #define ITERATIONS 750 9. 10. int main (void) 11. { 12. int count = 0, totals[MAXCOLUMNS], val = 0; 13. 14. memset (totals, 0, MAXCOLUMNS * sizeof(int)); 15. 16. count = 0; 17. while ( count < ITERATIONS ) 18. { 19. val = abs(rand()) % MAXCOLUMNS; 20. totals[val] += 1; 21. if ( totals[val] > MAXCOUNT ) 22. { 23. totals[val] = MAXCOUNT; 24. } 25. count++; 26. } 27. 28. return (0); 29. 30. }

Dari kode ini, berikut ini adalah daftar lengkap dari tiga kali lipat LCSAJ untuk kode ini

Tingkat cakupan TER3 = 100% akan tercapai ketika data uji digunakan yang menyebabkan eksekusi dari masing-masing LCSAJs setidaknya sekali. Dari contoh ini dapat dilihat bahwa blok dasar diidentifikasi oleh tiga LCSAJ mungkin span titik keputusan, mencerminkan kondisi yang harus berada di tempat agar LCSAJ akan dieksekusi. Sebagai contoh, LCSAJ 2 untuk contoh di atas termasuk 'sementara' pernyataan dimana kondisi '(count < ITERATIONS)' mengevaluasi ke TRUE. Di samping itu, juga dapat dilihat bahwa setiap baris kode telah 'kepadatan' sebuah LCSAJ terkait dengan itu, baris 17, misalnya, muncul dalam 6 LCSAJs unik - yaitu memiliki kepadatan LCSAJ dari 6. Hal ini bermanfaat ketika mengevaluasi pemeliharaan kode; Jika baris kode yang harus diubah, maka kepadatan merupakan indikasi berapa banyak LCSAJs akan terpengaruh oleh perubahan itu.

Anda mungkin juga menyukai