• 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[r]
Trang 1Software Testing and Quality Assurance
Black/White box testing
Dr Dao Nam Anh Faculty of Information Technology University of Technology and Management
Trang 2► 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
Trang 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
Trang 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
Trang 5Functional testing
Phân hoạch tương đương
Trang 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
Trang 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
Trang 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,…
Trang 9Functional testing
Black box testing
Trang 10Structural 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ỏ