Fokus pada faktor Fungsionalitas dan spesifikasi Perangkat Lunak Fokus pada informasi domain Tidak membutuhkan pengetahuan mengenai,alur internal, struktur Software Under Test Bukan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya Fungsi – fungsi yang salah atau hilang Kesalahan Interface Kesalahan dalam struktur data Kesalahan dalam akses database eksternal Kesalahan performa Kesalahan inisialisasi dan terminasi Bagaimana validitas fungsionalitasnya diuji? Jenis input seperti apa yang akan menghasilkan kasus uji yang baik? Apakah sistem sensitif terhadap nilai input tertentu? Bagaimana batasan-batasan kelas diisolasi? Berapa rasio data dan jumlah data yang dapat di toleransi oleh sistem? Apa akibat dari kombinasi spesifik data pada sistem operasi? Menganalisa kebutuhan dan spesifikasi perangkat lunak Pemilihan jenis input yang mungkin menghasilkan output yang benar Pengujian dilakukan dengan input-input yang benar-benar telah diseleksi Pembandingan output yang dihasilkan dengan output yang diharapkan Menentukan fungsionalitas yang harusnya ada pada perangkat lunak yang diuji Blackbox Testing dapat dilakukan di setiap level pembangunan sistem Kelebihan ◦ Dapat memilih subset test yang secara efektif dan efisien dapat menemukan cacat ◦ Membantu meminimalkan testing cost Kelemahan ◦ Tester tidak yakin sepenuhnya atas perangkat lunak yang telah diuji Equivalence Partitioning Boundary Value Analysis/Limit Testing Comparison Testing Sample Testing Robustness Testing Behavior Testing Requirement Testing Performance Testing Endurance Testing Cause-Effect Relationship Testing Divide the input domain into classes of data for which test cases can be generated. Attempting to uncover classes of errors. Based on equivalence classes for input conditions. An equivalence class represents a set of valid or invalid states An input condition is either a specific numeric value, range of values, a set of related values, or a boolean condition. Equivalence classes can be defined by: If an input condition specifies a range or a specific value, one valid and two invalid equivalence classes defined. If an input condition specifies a boolean or a member of a set, one valid and one invalid equivalence classes defined. Test cases for each input domain data item developed and executed. Requirements of the subprogram to be tested (initial&final state) ◦ The subprogram takes an integer input in the range [-100,100] ◦ The output of the subprogram is the sign of the input value (the value 0 is considered positive) Two valid equivalence class ◦ The input range [-100,0] which contains the subset of integer, will produce negative sign as an output ◦ The input range [0,100] will produce positive sign Two invalid equivalence class ◦ The integers strictly less than -100 ◦ The integers strictly more than -100 If a condition concerning the input data specifies a range of values (e/g: the counter can take values 1 to 999), define a valid equiv. Class [1,999] and two invalid equivalence class (counter < 1, and counter > 99). If a condition concerning the input data specifies the number of values (a thing can contain 1 to 6 name), define a valid equivalence class and two invalid equivalence classes (no name and more than 6 names) If a condition concerning the input data specifies a set of values and the CSU tested processes each value differently (e/g: BUS, TAXI, TRUCK, TRAIN), define a valid equivalence class for each value and an invalid equivalence class (e/g MOTORCYCLE). If an input condition is expressed by a sentence containing ‘must be’ (e/g the first character must be a letter), define a valid equivalence class ( a letter) and an invalid equivalence class ( not a letter) Requirements ◦ Given three values, represent the length of side of triangle, determine if it is equilateral, isosceles and scalene Three valid equivalence class ◦ 3 equal values positive ◦ 3 positive values and 2 which are equal and the sum of two is greater than the third value ◦ 3 positive values and the sum of two values is greater than the third value Two invalid equivalence classes ◦ 2 positive values and a negative/zero ◦ 3 positive values such that the sum of two is equal/less Large number of errors tend to occur at boundaries of the input domain. BVA leads to selection of test cases that exercise boundary values. BVA complements equivalence partitioning. Rather than select any element in an equivalence class, select those at the ''edge' of the class. Examples: ◦ For a range of values bounded by a and b, test (a-1), a, (a+1), (b-1), b, (b+1). ◦ If input conditions specify a number of values n, test with (n-1), n and (n+1) input values. ◦ Apply 1 and 2 to output conditions (e.g., generate table of minimum and maximum size). ◦ If internal program data structures have boundaries (e.g., buffer size, table limits), use input data to exercise structures on boundaries.