Microsoft Word Chuong05 doc Chương 5 Kỹ thuật kiểm thử hộp ₫en 5 1 Tổng quát về kiểm thử hộp ₫en Đối tượng ₫ược kiểm thử là 1 thành phần phần mềm (TPPM) TPPM có thể là 1 hàm chức năng, 1 module chức n[.]
Chương Kỹ thuật kiểm thử hộp ₫en 5.1 Tổng quát kiểm thử hộp ₫en Đối tượng ₫ược kiểm thử thành phần phần mềm (TPPM) TPPM hàm chức năng, module chức năng, phân hệ chức năng… Nói chung, chiến lược kiểm thử hộp ₫en thích hợp cho cấp ₫ộ kiểm thử từ kiểm thử ₫ơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiếm thử ₫ộ chấp nhận người dùng Kiểm thử hộp ₫en (black-box testing) chiến lược kiểm thử TPPM dựa vào thông tin ₫ặc tả yêu cầu chức TPPM tương ứng Đây chiến lược kiểm thử theo góc nhìn từ ngồi vào, người tham gia kiểm thử hộp ₫en khơng cần có kiến thức thông tin thực TPPM cần kiểm thử (mã nguồn thành phần phần mềm, thuật giải ₫ược dùng, liệu ₫ược xử lý…) Qui trình kiểm thử hộp ₫en tổng quát gồm bước : Phân tích ₫ặc tả yêu cầu chức mà TPPM cần thực Dùng kỹ thuật ₫ịnh nghĩa testcase xác ₫ịnh (sẽ giới thiệu sau) ₫ể ₫ịnh nghĩa testcase Định nghĩa testcase xác ₫ịnh thông tin sau : Giá trị liệu nhập ₫ể TPPM xử lý (hoặc hợp lệ khơng hợp lệ) Trạng thái TPPM cần có ₫ể thực testcase Giá trị liệu xuất mà TPPM phải tạo ₫ược Kiểm thử testcase ₫ã ₫ịnh nghĩa So sánh kết thu ₫ược với kết kỳ vọng testcase, từ ₫ó lập báo cáo kết kiểm thử Vì chiến lược kiểm thử hộp ₫en thích hợp cho mức ₫ộ kiểm thử nên nhiều người ₫ã nghiên cứu tìm hiểu ₫ưa nhiều kỹ thuật kiểm thử khác nhau, chọn kỹ thuật có nhiều ưu ₫iểm ₫ược dùng phổ biến nhất, ₫ó : Kỹ thuật phân lớp tương ₫ương (Equivalence Class Partitioning) Kỹ thuật phân tích giá trị biên (Boundary value analysis) Kỹ thuật dùng bảng ₫ịnh (Decision Tables) Kỹ thuật kiểm thử n thần kỳ (Pairwise) Kỹ thuật dùng bảng chuyển trạng thái (State Transition) Kỹ thật phân tích vùng miền (domain analysis) Kỹ thuật dựa ₫ặc tả Use Case (Use case) Kỹ thuật dùng lược ₫ồ quan hệ nhân (Cause-Effect Diagram) 5.2 Kỹ thuật phân lớp tương ₫ương Tinh thần kỹ thuật cố gắng phân testcase thành nhiều nhóm (họ) khác : testcase họ kích hoạt TPPM thực hành vi Mỗi nhóm testcase thỏa mãn tiêu chuẩn ₫ược gọi lớp tương ₫ương, ta cần xác ₫ịnh testcase ₫ại diện cho nhóm dùng testcase ₫ể kiểm thử TPPM Như ta ₫ã giảm nhiều testcase cần ₫ịnh nghĩa kiểm thử, chất lượng kiểm thử không bị giảm sút so với vét cạn Điều dựa vào kỳ vọng hợp lý sau ₫ây : Nếu testcase lớp tương ₫ương ₫ó gây lỗi TPPM testcase lớp gây lỗi Nếu testcase lớp tương ₫ương ₫ó khơng gây lỗi TPPM testcase lớp không gây lỗi Vấn ₫ề có cần ₫ịnh nghĩa lớp tương ₫ương ₫ại diện testcase chứa giá trị không hợp lệ theo ₫ặc tả hay không ? Điều phụ thuộc vào tinh thần kiểm thử : Nếu ta dùng tinh thần kiểm thử theo hợp ₫ồng (Testing-byContract) khơng cần ₫ịnh nghĩa lớp tương ₫ương ₫ại diện testcase chứa giá trị không hợp lệ theo ₫ặc tả khơng cần thiết Cịn ta dùng tinh thần kiểm thử phòng vệ (Defensive Testing), nghĩa kiểm thử hồn hảo, phải ₫ịnh nghĩa lớp tương ₫ương ₫ại diện testcase chứa giá trị không hợp lệ theo ₫ặc tả ₫ể xem TPPM phản ứng với testcase Thí dụ ta cần kiểm thử TPPM “quản lý nguồn nhân lực” với ₫ặc tả chức sau : lần nhận hồ sơ xin việc, TPPM ₫ịnh dựa vào tuổi ứng viên theo bảng sau : Tuổi ứng viên Kết 0-16 Không thuê 16-18 Thuê dạng bán thời gian 18-55 Thuê toàn thời gian 55-99 Không thuê Lưu ý bảng ₫ặc tả chức phía có lỗi giá trị ₫ầu và/hoặc cuối luật, giả sử chưa phát lỗi Chúng ta thấy cách phát dễ dàng lỗi Phân tích ₫ặc tả chức TPPM cần kiểm thử slide trước, ta thấy có lớp tương ₫ương, lớp chứa testcase ứng với chế ₫ộ xử lý TPPM : khơng th q trẻ, th dạng bán thời gian, th tồn thời gian, khơng thuê già Ứng với lớp tương ₫ương, ta ₫ịnh nghĩa testcase ₫ại diện, thí dụ ta chọn testcase sau : Testcase : {Input : tuổi, Output : không thuê} Testcase : {Input : 17 tuổi, Output : thuê bán thời gian} Testcase : {Input : 35 tuổi, Output : thuê toàn thời gian} Testcase : {Input : 90 tuổi, Output : khơng th} Trong thí dụ trên, thay phải kiểm thử vét cạn 100 testcase, ta kiểm thử testcase → chí phí giảm lớn, chất lượng kiểm thử hy vọng không bị giảm sút bao Tại hy vọng chất lượng kiểm thử dùng lớp tương ₫ương không giảm sút nhiều ? Hãy xét ₫oạn code mà người lập trình bình thường viết xử lý TPPM cần kiểm thử slide trước : if (applicantAge >= && applicantAge = 16 && applicantAge = 18 && applicantAge = 55 && applicantAge