Bài giảng Software Testing and Quality Assurance: Black/White box testin

Nội dung

Functional testing

Phân hoạch tương đương

Black box testing

Structural testing

White box testing

Black/White box testing

Xác định đường đi

Độ phức tạp thuật toán

pdf 29 trang phuongnguyen 4120
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Software Testing and Quality Assurance: Black/White box testin", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Software Testing and Quality Assurance: Black/White box testin

Bài giảng Software Testing and Quality Assurance: Black/White box testin
1Software Testing and Quality Assurance
Black/White box testing
Dr. Dao Nam Anh
Faculty of Information Technology
University of Technology and Management
2Resources
► Pressman, Software Engineering, McGraw Hill (chapter 18 
& 19)
► Sommerville, Software Engineering, Addison-Wesley 
(chapter 22 & 23)
► Software Testing and QA Theory and Practics, Chapter 7, 
WILEY Publish
► Foundations Of Software Testing, Istqb Certification, 
Dorothy Graham, Erik Van Veenendaal, Isabel Evans, Rex 
Black
► Jovanović, Irena, Software Testing Methods and 
Techniques
► Lâm Quang Vũ, 
3Nội dung
►Functional testing 
►Phân hoạch tương đương 
►Black box testing 
►Structural testing 
►White box testing
►Black/White box testing
►Xác định đường đi
►Độ phức tạp thuật toán
4Functional testing
Phân hoạch tương đương 
• Không thể kiểm thử mọi trường hợp
• Chia dữ liệu thành các miền có cùng hành vi
• Tạo một test case cho từng miền
• Tạo test case cho biên của các miền
- nhiều lỗi xuất hiện với giá trị biên
5Functional testing
Phân hoạch tương đương 
6Functional testing
Phân hoạch tương đương 
Ví dụ: Hàm tính trị tuyệt đối
- miền dữ liệu ≥ 0
- miền dữ liệu < 0
Input: 100, -20, 0
Expect: 100, 20, 0
7Functional testing
Phân hoạch tương đương 
Tạo test case cho các trường hợp đặc biệt
- biên của số trong máy tính 
(vd. 32767, -32768)
- số không (0)
- số âm, số thập phân
- dữ liệu sai kiểu
- dữ liệu ngẫu nhiên
8Functional testing
Black box testing 
Dựa trên đặc tả chức năng
• Test case được thiết kế để kiểm tra chức năng
• Phát hiện các khiếm khuyết so với đặc tả
• Không quan tâm đến cách cài đặt (mã nguồn)
- Phát hiện sai sót, thiếu sót chức năng
- Sai sót về giao diện của mô đun
- Kiểm tra tính hiệu quả
- Phát hiện lỗi khởi tạo, lỗi kết thúc,
9Functional testing
Black box testing 
10
Structural testing
White box testing
Xây dựng ca kiểm thử dựa trên phân tích mã 
nguồn
• Xây dựng bộ test case để kiểm tra mọi dòng 
lệnh
• Phân tích các lệnh rẽ nhánh, vòng lặp
• Phù hợp với các mô đun nhỏ
• Là sự bổ sung cho kiểm thử chức năng
11
Structural testing
Black/White box testing
12
Structural testing
Xác định đường đi
• flow chart (đồ thị)
13
Structural testing
 Đường đi trong mô đun
Phân tích mô đun để xác định đường đi
• Đường đi là thứ tự thực hiện các lệnh từ 
điểm bắt đầu đến điểm kết thúc của mô 
đun
• Thiết kế các test case để kiểm thử mọi 
đường đi
14
Structural testing
Xác định đường đi
• flow chart (đồ thị)
15
Structural testing
Xác định đường đi
• Đánh số các khối lệnh
- đánh số các khối lệnh, câu lệnh điều kiện
- đánh số các hợp điểm của luồng lệnh
• Rút gọn flow chart (đồ thị)
- các khối tuần tự được tích hợp thành một khối
- tích hợp khối tuần tự vào câu lệnh điều kiện kế tiếp
16
Structural testing
Đường đi độc lập
• Không thể chọn mọi đường đi
- chọn các đường đi độc lập
• Đường đi độc lập
- có ít nhất một cặp khối lệnh (một cạnh của đồ thị) 
chưa xuất hiện trong các đường đi đã có
• Bộ các đường đi độc lập là một tập hợp thỏa mãn
- mọi khối lệnh đều được thực hiện ít nhất một lần
- mọi điều kiện đều được kiểm thử với hai trường 
hợp true và false
17
Structural testing
Đường đi độc lập
►Có thể tồn tại nhiều bộ đường đi độc lập
►Số đường đi tối thiểu cần kiểm tra -> độ
phức tạp thuật toán
18
Structural testing
 Độ phức tạp thuật toán
Độ phức tạp lớn thì xác suất xuất hiện lỗi cao
►Không nên tạo các mô đun có độ phức tạp 
►-> phân rã mô đun (tạo các mô đun thứ cấp 
để giảm độ phức tạp)
19
Structural testing
Xác định đường đi
20
Structural testing
Xác định đường đi
21
Structural testing
Xác định đường đi
► Vòng lặp
22
Structural testing
Xác định đường đi
► Vòng lặp
23
Structural testing
Xác định đường đi
► Testing of simple loops: 
0 iterations (no looping), 
minimum number of iterations (possibly 0), 
minimum+1 iterations, 
typical number of iterations, 
maximum-1 iterations, 
maximum number of iterations, 
maximum+1 iterations (should not be feasible)
► for ( j=0; j < 999; ++j ) {  }
24
Structural testing
Xác định đường đi
Testing of serial loops:
– if there is no data-flow 
relationship between the 
loops, test them both as 
simple loops
– if there is a data-flow 
relationship between the 
loops, test them as if the 
loops were nested
25
Structural testing
Xác định đường đi
Testing of nested loops:
– There would be too many tests when repeating all the inner 
loop tests every time an outer loop is iterated, so:
1. The innermost loop is tested first using the simple-loop 
strategy. The other loops are iterated their minimum number 
of times.
2. Set up the looping conditions of the previously tested loop 
such that it will be iterated a suitable number of times 
(minimum, typical, or maximum).
3. Proceed to testing the outer loop which is nesting the 
previously tested one, using the simple-loop strategy. (The 
outer loops are iterated their minimum number of times, the 
inner loops are iterated their suitable number of times.)
4. Repeat the steps 2 and 3, until the outermost loop has been 
tested. 
5. Set up a test that will iterate all loops their maximum number 
of times.
26
Structural testing
Xác định đường đi
Testing of unstructured 
(”spaghetti”) loops: test the loop 
with an equivalent simple / serial 
/ nested loop as model
– spaghetti code should be 
rewritten into structured form, for 
testing as well as for 
maintenance purposes
27
Structural testing
 Độ phức tạp thuật toán
Độ phức tạp V(G) của flow chart G:
1. Số miền của đồ thị G
2. V(G) = E - N + 2
E: số cạnh
N: số đỉnh
3. V(G) = P + 1
P: số các nút điều kiện
28
Structural testing
 Độ phức tạp thuật toán
29
Q & A

File đính kèm:

  • pdfbai_giang_software_testing_and_quality_assurance_blackwhite.pdf