Nhập môn kiểm thử phần mềm - Chương 1: Tổng quan trình bày các nội dung chính: vai trò của kiểm thử, kiểm thử phần mềm là gì, quy trình kiểm thử phần mềm, các nguyên lý tổng quát, vai trò và thái độ.
Nhập môn kiểm thử phần mềm Chương – Tổng quan Trần Duy Hoàng – tdhoang@fit.hcmus.edu.vn Nội dung Tại kiểm thử quan trọng? Kiểm thử phần mềm gì? Qui trình kiểm thử phần mềm Các nguyên lý tổng quát Vai trò thái độ Nhập môn kiểm thử phần mềm 1/8/2013 Lỗi phần mềm Hành vi người Error (Mistake) Hệ xuất chương trình, tài liệu Bug (Fault/Defect) Khi thực thi chương trình Failure Hệ không mong đọi Incident Nhập môn kiểm thử phần mềm 1/8/2013 Lỗi phần mềm A person makes an error … that creates a fault in the software … that can cause a failure in operation Nhập môn kiểm thử phần mềm 1/8/2013 Độ tin cậy (Reliability) Độ tin cậy xác suất phần mềm không phát sinh lỗi thời gian điều kiện xác định Liệu hệ thống không tồn lỗi? Liệu hệ thống đáng tin cậy tồn lỗi? Liệu hệ thống không lỗi đáng tin cậy? Nhập môn kiểm thử phần mềm 1/8/2013 Tại có lỗi? Phần mềm viết người Biết nhiều thứ, thứ Có kỹ năng, khơng hồn hảo Ln phạm sai lầm Làm việc điều kiện căng thẳng để kịp bàn giao tiến độ Không có thời gian kiểm tra, giả định bị sai Hệ thống chưa hồn chỉnh Nhập mơn kiểm thử phần mềm 1/8/2013 Chi phí lỗi Có thể lớn: Ariane 5: tỉ đô la, Mariner space probe to Venus: 250 triệu đô la, American Airlines: 50 triệu la Có thể gây chết người: Therac-25 Airbus & Korean Airlines Có thể khơng đáng kể: bất tiện, ảnh hưởng khơng nhìn thấy Khơng tuyến tính: lỗi nhỏ có hậu lớn Nhập mơn kiểm thử phần mềm 1/8/2013 Tại kiểm thử cần thiết? Vì: Phần mềm tồn lỗi Đánh giá độ tin cậy Chi phí lỗi cao Tránh bị kiện từ khách hàng Giữ uy tính kinh doanh Khơng vì: Lấp khoản thời gian ngày hoàn thành ngày bàn giao Chứng minh phần mềm không lỗi Kiểm thử phần kế hoạch dự án Nhập môn kiểm thử phần mềm 1/8/2013 Nội dung Tại kiểm thử quan trọng? Kiểm thử phần mềm gì? Qui trình kiểm thử phần mềm Các nguyên lý tổng quát Vai trò thái độ Nhập môn kiểm thử phần mềm 1/8/2013 Kiểm thử phần mềm gì? Kiểm thử phần mềm trình thực thi chương trình với mục đích tìm lỗi The Art of Software Testing Là hoạt động kiểm tra xem phần mềm có chạy xác hay khơng (Verification) có thoả mãn yêu cầu khách hàng hay không (Validation) nhằm hướng tới mục tiêu Chất lượng cho phần mềm 10 Nhập môn kiểm thử phần mềm 1/8/2013 Thiết kế Các bước thiết kế ca kiểm thử 19 Xác định điều kiện cần thiết lập, mô tả liệu đầu vào, kết mong chờ Mô tả bước chi tiết Xem xét khảo sát độ bao phủ Xem xét test cases bước kiểm tra Nhập môn kiểm thử phần mềm 1/8/2013 Ca kiểm thử (test case) Test case Test case tốt Được thiết kế để phát lỗi chương trình Kiểm thử thành cơng Dữ liệu để kiểm tra hoạt động chương trình Phát lỗi Mục đích 20 Chứng minh tồn lỗi Không chứng minh khơng có lỗi Nhập mơn kiểm thử phần mềm 1/8/2013 Nội dung test case Mô tả Kết mong muốn Chức muốn kiểm thử Dữ liệu đầu vào Môi trường thử nghiệm Thứ tự thao tác Dữ liệu đầu Màn hình, thời gian phản hồi Kết thực tế 21 Nhập môn kiểm thử phần mềm 1/8/2013 Thực Mục đích: thực ca kiểm thử, ghi nhận kết Kết quả: bảng báo cáo (Test result) 22 Nhập môn kiểm thử phần mềm 1/8/2013 Thực Các bước thực kiểm thử Xác lập khởi động môi trường Thực bước (bằng tay script) Đánh giá trình kiểm thử 23 Hồn tất chu kỳ Thẩm định kết Bị dừng treo xác định nguyên nhân lỗi, khắc phục lập lại Thẩm định kết quả: bảo đảm kết nhận đáng tin cậy Nhập môn kiểm thử phần mềm 1/8/2013 Đánh giá trình kiểm thử Mục đích: xem xét đánh giá kết kiểm tra, liệt kê lỗi, định yêu cầu thay đổi, thống kê số liệu Kết quả: báo báo kiểm thử (Test report) Lưu ý: bước đánh giá mang tính tồn cục 24 Nhập mơn kiểm thử phần mềm 1/8/2013 Nội dung Tại kiểm thử quan trọng? Kiểm thử phần mềm gì? Qui trình kiểm thử phần mềm Các nguyên lý tổng qt Vai trị thái độ 25 Nhập mơn kiểm thử phần mềm 1/8/2013 Các nguyên lý tổng quát Phơi bày diện lỗi Cho thấy lỗi tồn Giảm xác suất lỗi chưa phát Không thể vét cạn hết trường hợp Không thể kiểm nghiệm triệt để phần mềm Thay vào đó: Phân tích rủi ro Độ ưu tiên Kiểm tra sớm 26 Nên bắt đầu sớm chu kỳ phá triển Nhập môn kiểm thử phần mềm 1/8/2013 Các nguyên lý tổng quát Gom nhóm lỗi Nghịch lý thuốc trừ sâu (Pesticide paradox) Nguyên lý Pareto: 20% module gây 80% lỗi cô lập, tập trung module khả nghi Sử dụng kỹ thuật, ca kiểm thử nhiều lần khơng tìm lỗi Ca kiểm thử phải xem xét thay đổi thường xuyên Phụ thuộc ngữ cảnh 27 Thực khác ngữ cảnh khác Nhập môn kiểm thử phần mềm 1/8/2013 Các nguyên lý tổng quát Ảo tưởng “không lỗi” (Absence-of-errors fallacy) 28 Việc tìm sửa chữa lỗi vô nghĩa hệ thống xây dựng xong vô dụng Nhập môn kiểm thử phần mềm 1/8/2013 Nội dung Tại kiểm thử quan trọng? Kiểm thử phần mềm gì? Qui trình kiểm thử phần mềm Các nguyên lý tổng quát Vai trò thái độ 29 Nhập môn kiểm thử phần mềm 1/8/2013 Vai trò QA, QC QC – Quality Control Những hoạt động, kỹ thuật nhằm đảm bảo chất lượng sản phẩm QA – Quality Assurance Những kế hoạch, hoạt động mang tính hệ thống nhằm đảm bảo trình sản xuất tạo sản phẩm có chất lượng Định nghĩa ISO 9000 30 Nhập môn kiểm thử phần mềm 1/8/2013 Vai trò QA, QC QC Sản phẩm Phản ứng Tìm lỗi Ví dụ 31 Kiểm duyệt Kiểm thử Thanh tra Kiểm tra lại QA Tiến trình Tiên đốn, ước tính Ngăn ngừa lỗi Ví dụ Đảm bảo chất lượng Định nghĩa tiến trình Chọn lựa công cụ Huấn luyện Nhập môn kiểm thử phần mềm 1/8/2013 Thái độ Tester Cẩn thận (Cautious) Tò mò (Curious) Điều xảy …? Nó hoạt động nào? Tại xảy ra? Good testers are hard to fool Chỉ trích, phê phán (Critical) Phỏng đốn khơng kết luận Tập thừa nhận “Tơi khơng biết” Có người khác kiểm tra lại Tiến hành đốn bác bỏ Tích cực tìm kiếm phản chứng Can đảm (Courageous) 32 Nhập mơn kiểm thử phần mềm 1/8/2013 Thảo luận 33 Nhập môn kiểm thử phần mềm 1/8/2013 ... 12 Nhập môn kiểm thử phần mềm 1/ 8/2 013 Nội dung Tại kiểm thử quan trọng? Kiểm thử phần mềm gì? Qui trình kiểm thử phần mềm Các nguyên lý tổng quát Vai trò thái độ 13 Nhập môn kiểm thử. .. Chứng minh phần mềm không lỗi Kiểm thử phần kế hoạch dự án Nhập môn kiểm thử phần mềm 1/ 8/2 013 Nội dung Tại kiểm thử quan trọng? Kiểm thử phần mềm gì? Qui trình kiểm thử phần mềm Các nguyên lý tổng... 24 Nhập mơn kiểm thử phần mềm 1/ 8/2 013 Nội dung Tại kiểm thử quan trọng? Kiểm thử phần mềm gì? Qui trình kiểm thử phần mềm Các nguyên lý tổng quát Vai trò thái độ 25 Nhập môn kiểm thử