Công nghệ phần mềm Tổng quan kiểm thử đảm bảo chất lượng phần mềm Nội dung • • • • • • • Kiểm chứng thẩm định Đảm bảo chất lượng Quy trình kiểm thử Ca kiểm thử Mơ tả tốn kiểm thử qua biểu đồ Venn Kiểm thử hộp đen kiểm thử hộp trắng Một số công cụ hỗ trợ kiểm thử Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Yêu cầu khách hàng đặc tả yêu cầu • PM phát triển để phục vụ yêu cầu KH • Yêu cầu khách hàng biểu diễn đặc tả yêu cầu • Thất bại = PM không đáp ứng đặc tả – Đặc tả sai? – Thiết kế sai? – Cài đặt sai? Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Verification and Validation • Verification (kiểm chứng) – Kiểm tra sản phẩm có cài đặt thiết kế không? – Phát lỗi lập trình so với thiết kế • Validation (Thẩm định) – Kiểm tra xem sản phẩm có đáp ứng yêu cầu KH khơng? (chức phi chức năng) – Tìm lỗi phân tích thiết kế • Verification -> Validation (V&V) Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN V&V: tĩnh động • V&V tĩnh: – Khơng thực thi/chạy chương trình – Xét duyệt yêu cầu, thiết kế, mã nguồn – Tiến hành giai đoạn phát triển PM – Khó đánh giá tính hiệu PM • V&V động (Kiểm thử PM) – Thực thi/chạy chương trình – Là cách kiểm tra yêu cầu phi chức Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Chất lượng độ tin cậy • Chất lượng = thỏa mãn sp so với đặc tả • Chất lượng PM = “độ tốt, độ tuyệt hảo” – – – – – – – Tính đắn (đúng đặc tả) Tính hiệu Độ tin cậy Khả kiểm thử Dề học, dề sử dụng Dễ bảo trì … • Độ tin cậy yếu tố để đánh giá chất lượng SP – Là độ đo quan trọng Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Kiểm thử PM • Là hoạt động chủ chốt nhằm đánh giá chất lượng • Có thể lỗi, khơng thể khẳng định khơng cịn lỗi – Có thể khẳng định hết lỗi kiểm thử vét cạn, cách khơng khả thi thực tế • Một kiểm thử thành công kiểm thử phát lỗi Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN ©Ian Sommerville Các hoạt động kiểm thử Điều kiện kiểm thử (“Cái gì”): phần tử kiện cần kiểm tra Làm để kiểm tra được: thực Thiết kế Xác định Xây dựng Xây dựng ca kiểm thử (mã, liệu) Chạy Chạy hệ thống với ca kiểm thử So sánh So sánh kết thu kết mong đợi Kết kiểm thử Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Ca kiểm thử (test case) Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Bộ kiểm thử (các ca kiểm thử) TC_id tc1 Inputs 123 EO tc2 tc3 458 462 20 17 Note … Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 10 So sánh kiểm thử hộp trắng hộp đen • Hộp trắng – Số đường nhiều vơ hạn – Kiểm tra làm, khơng phải cần làm – Khơng thích hợp cho kiểm thử hệ thống tích hợp • Hộp đen – Dễ bùng nổ tổ hợp số ca kiểm thử (dữ liệu liệu sai) – Thường khơng ca kiểm thử có phát lỗi cụ thể hay khơng – Thích hợp cho tất cấp độ kiểm thử • Cần hai • Kiểm thử hộp trắng hộp đen hai thái cực kiểm thử • Việc lựa chọn ca kiểm thử nằm phụ thuộc vào – – – – Số đường logic Tính chất liệu đầu vào Khối lượng tính toán Độ phức tạp cấu trúc liệu giải thuật • Hai chiến lược bổ sung cho Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN • 18 So sánh kiểm thử hộp trắng hộp đen Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 19 Kiểm thử gỡ lỗi (debugging) • Kiểm thử – Khẳng định có lỗi • Gỡ lỗi (debugging) – Định vị sửa lỗi • Gỡ lỗi thơng thường phải lập giả thuyết hành vi chương trình kiểm tra giả thuyết để tìm lỗi Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 20 Phân loại lỗi sai Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 21 Các mức kiểm thử • Đơn vị – Tìm lỗi đơn vị • Tích hợp – Tìm lỗi ghép đơn vị • Hệ thống – Tìm lỗi hệ thống tích hợp xong, trước phát hành, chuyển giao • Chấp thuận – Người sử dụng dùng thử xem hệ thống đáp ứng mong muốn chưa – Còn gọi kiểm thử alpha Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 22 Các mức kiểm thử Mã đơn vị KT đơn vị Mã đơn vị KT đơn vị Hệ thống kiểm thử Tài liệu thiết kế Tài liệu phân tích yêu cầu KT tích hợp KT hệ thống Hệ thống tích hợp Mã đơn vị Hướng dẫn sử dụng Hệ thống đầy đủ KT đơn vị Người phát triển thực Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 23 Các mức kiểm thử (tiếp) Dựa hiểu biết khách hàng yêu cầu Yêu cầu chất lượng Hệ thống kiểm thử chức KT chất lượng Hệ thống thẩm định KT chấp thuận Môi trường NSD Hệ thống chấp nhận Khách hàng thực KT cài đặt Hệ thống dùng Người phát triển thực Hiểu biết người sử dụng Hệ thống sử dụng Người sử dụng dùng Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 24 Kiểm thử đơn vị Mục đích: Tìm khác biệt đặc tả cài đặt đơn vị Đơn vị: lớp, hàm, đối tượng, gói, mơ-đun Mơi trường kiểm thử đơn vị: Kết kiểm thử Bộ điều khiển Các ca kiểm thử Đơn vị kiểm thử Stub Stub Mô-đun giả lập Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 25 Kiểm thử tích hợp • Mục tiêu: – Phát vấn đề ghép mơ-đun/thành phần với • Các vấn đề – Bên trong: thành phần • Gọi: call/message passing/… • Tham số: kiểu, số lượng, thứ tự, giá trị • Kết trả về: ai, kiểu, trình tự – Bên ngồi: • Ngắt (wrong handler?) • Thời gian vào – Tương tác Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 26 Kiểm thử hệ thống • Liên quan đến yếu tố bên ngồi hệ thống • Khơng kiểm tra chức – Khả dụng (usability) • Giao diện, thông báo, dễ học, dễ nhớ – Hiệu • Khả đáp ứng/Tìm khả đáp ứng – Tài nguyên sử dụng Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 27 Kiểm thử chấp thuận • Có hai loại kiểm thử chấp nhận – Bởi quan phát triển gọi BAT – Bởi người dùng gọi UAT • Mục đích: kiểm tra hài lịng người sử dụng • Cơ sở: mong muốn người dùng (không xét đến tài liệu đặc tả) • Mơi trường: thật • Người thực hiện: cho người sử dụng • Các ca kiểm thử: – Sử dụng lại từ kiểm thử hệ thống – Do người dùng thiết kế Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN • 28 Khi nên dừng kiểm thử • Hết thời gian, hết ngân sách • Đạt mức độ bao phủ mong muốn • Đạt tần suất hỏng hóc mong muốn Bộ mơn Cơng nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 29 Kiểm thử hồi qui • Khi hệ thống chỉnh sửa (sửa lỗi, thêm/bớt chức năng, ) toàn bộ kiểm thử cần phải chạy lại – Đảm bảo tính hoạt động tốt khơng bị ảnh hưởng chỉnh sửa • Kiểm thử lại tự động trước lưu thay đổi vào kho (repo.) • Cần chiến lược kiểm thử tăng dần với hệ thống lớn Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 30 Nhiều công cụ hỗ trợ loại kiểm thử • • • • • • • • • Kiểm thử đơn vị: Achoo, JUnit, Pex/Moles, PyUnit, … Tự động kiểm thử: TestComplete, … Kiểm thử hiệu tải: JMeter, … Kiểm thử giao diện: Ranorex, Abbot, Guitar, … Kiểm thử tổ hợp: AETG, FireEye, … Kiểm thử dựa mơ hình: Spec Explorer, … Phân tích bao phủ: Corbertura, … Quản lý lỗi (defects): Bugzilla, … … Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 31 Tổng kết • • • • • • • Kiểm chứng thẩm định Đảm bảo chất lượng Quy trình kiểm thử Ca kiểm thử Mơ tả tốn kiểm thử qua biểu đồ Venn Kiểm thử hộp đen kiểm thử hộp trắng Một số công cụ hỗ trợ kiểm thử Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 32