Bài giảng Công nghệ phần mềm: Chương 5 - Hoàng Thị Hà
Số trang: 61
Loại file: pdf
Dung lượng: 746.40 KB
Lượt xem: 17
Lượt tải: 0
Xem trước 7 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Công nghệ phần mềm: Chương 5 Kiểm thử phần mềm, cung cấp cho người học những kiến thức như: Kiểm thử là gì; Mục đích (Testing objectives); Nguyên tắc kiểm thử (Testing principles); Các kỹ thuật kiểm thử; Các phương pháp thiết kế test case; Các mức độ (giai đoạn) kiểm thử. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Công nghệ phần mềm: Chương 5 - Hoàng Thị Hà Chương 5: Kiểm thử phần mềm (Software testing) GV: Hoàng Thị Hà Email: htha@vnua.edu.vn Nội dung 1. Kiểm thử là gì 2. Mục đích (Testing objectives) 3. Nguyên tắc kiểm thử (Testing principles) 4. Các kỹ thuật kiểm thử 5. Các phương pháp thiết kế test case – Kiểm thử theo phân vùng tương đương (Equivalence partitioning) – Kiểm thử theo đường cơ bản (Basic path) – Kiểm thử theo giá trị biên (Boundary value analysis) 6. Các mức độ (giai đoạn) kiểm thử 05/10/2018 2 1. Kiểm thử là gì • “Test chứng tỏ sự có mặt của lỗi, không chứng tỏ rằng không có lỗi.” —Edsger W. Dijkstra • Một lỗi (fault, “defect”, “bug,”) là một phần tử phần cứng hoặc phần mềm có sai sót mà có thể gây sự cố hệ thống • Mục tiêu: Tìm lỗi 05/10/2018 3 “Program testing can be used to show the presence of bugs, but never to show their absence!” Edsgar Dijkstra Notes on Structured Programming, 1970 05/10/2018 4 2. Mục đích của kiểm thử (Verification,Validation và Testing) • Kiểm chứng (Verification) – có đúng đặc tả không, có đúng thiết kế không – phát hiện lỗi lập trình – Một test thành công là test cho thấy hệ thống hoạt động không đúng • Thẩm định (Validation) – có đáp ứng nhu cầu người dùng không – có hoạt động hiệu quả không – phát hiện lỗi phân tích, lỗi thiết kế (lỗi mức cao) • Test = Verification and Validation – Mục tiêu là phát hiện lỗi PM, đánh giá tính dùng được của PM – Thứ tự thực hiện: Verification -> Validation 05/10/2018 5 3. Các nguyên tắc kiểm thử • Kiểm thử không phải là gỡ rối (Debugging) • Kiểm thử không bao giờ có thể phát hiện hoàn toàn 100% lỗi • Các phép kiểm thử phải tương ứng với các yêu cầu hệ thống • Mỗi phép kiểm thử nên được lập kế hoạch từ rất sớm trước khi tiến hành kiểm thử 05/10/2018 6 Yêu cầu kiểm thử • Tính lặp lại – kiểm thử phải lặp lại được (kiểm tra xem lỗi đã được sửa hay chưa) – dữ liệu/trạng thái phải mô tả được • Tính hệ thống – đảm bảo kiểm tra hết các trường hợp (coverage) • Được lập tài liệu 05/10/2018 7 Ca kiểm thử (test case) • Một test case (ca kiểm thử) là một lựa chọn cụ thể về input được dùng khi kiểm thử hoạt động của chương trình • Ca kiểm thử tốt • được thiết kế để phát hiện một lỗi của chương trình • Kiểm thử thành công: phát hiện ra lỗi • Mục đích: • − Chứng minh được sự tồn tại của lỗi • − Không chứng minh được sự không có lỗi 05/10/2018 8 Nôi dung của test case 05/10/2018 9 Quy trình kiểm thử phần mềm Dữ liệu Kết quả Test case test test Chạy So sánh Thiết kế các Chuẩn bị chương trình kết quả với test case dữ liệu test với dữ liệu test các test case Báo cáo kiểm thử (test report) 05/10/2018 10 Testing policies Chính sách kiểm thử • Chỉ có kiểm thử toàn diện vét cạn tất cả các trường hợp thực thi (exhaustive testing) mới có thể chứng tỏ rằng một chương trình không có lỗi – Kiểm thử toàn diện là bất khả thi • Thực tế, việc kiểm thử chỉ thực hiện với một tập con của tập tất cả các trường hợp có thể xảy ra. • Chính sách kiểm thử xác định phương pháp chọn các test hệ thống. Ví dụ – Test tất cả các chức năng truy nhập được từ các menu; – Test các tổ hợp chức năng truy nhập được từ cùng một menu; – Ở đầu cần đến input của người dùng, test tất cả các chức năng với cả input sai và input đúng. 05/10/2018 11 4. Các kỹ thuật kiểm thử chương trình • Kiểm thử chức năng (functional testing) – dựa trên đặc tả chức năng – phát hiện các sai sót về chức năng – không quan tâm đến cách cài đặt • Kiểm thử cấu trúc (structured testing) – kiểm thử có nghiên cứu mã nguồn – phân tích thứ tự thực hiện các lệnh 05/10/2018 12 Kiểm thử chức năng • Functional 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,… 05/10/2018 13 Kiểm thử cấu trúc • 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 05/10/201 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Công nghệ phần mềm: Chương 5 - Hoàng Thị Hà Chương 5: Kiểm thử phần mềm (Software testing) GV: Hoàng Thị Hà Email: htha@vnua.edu.vn Nội dung 1. Kiểm thử là gì 2. Mục đích (Testing objectives) 3. Nguyên tắc kiểm thử (Testing principles) 4. Các kỹ thuật kiểm thử 5. Các phương pháp thiết kế test case – Kiểm thử theo phân vùng tương đương (Equivalence partitioning) – Kiểm thử theo đường cơ bản (Basic path) – Kiểm thử theo giá trị biên (Boundary value analysis) 6. Các mức độ (giai đoạn) kiểm thử 05/10/2018 2 1. Kiểm thử là gì • “Test chứng tỏ sự có mặt của lỗi, không chứng tỏ rằng không có lỗi.” —Edsger W. Dijkstra • Một lỗi (fault, “defect”, “bug,”) là một phần tử phần cứng hoặc phần mềm có sai sót mà có thể gây sự cố hệ thống • Mục tiêu: Tìm lỗi 05/10/2018 3 “Program testing can be used to show the presence of bugs, but never to show their absence!” Edsgar Dijkstra Notes on Structured Programming, 1970 05/10/2018 4 2. Mục đích của kiểm thử (Verification,Validation và Testing) • Kiểm chứng (Verification) – có đúng đặc tả không, có đúng thiết kế không – phát hiện lỗi lập trình – Một test thành công là test cho thấy hệ thống hoạt động không đúng • Thẩm định (Validation) – có đáp ứng nhu cầu người dùng không – có hoạt động hiệu quả không – phát hiện lỗi phân tích, lỗi thiết kế (lỗi mức cao) • Test = Verification and Validation – Mục tiêu là phát hiện lỗi PM, đánh giá tính dùng được của PM – Thứ tự thực hiện: Verification -> Validation 05/10/2018 5 3. Các nguyên tắc kiểm thử • Kiểm thử không phải là gỡ rối (Debugging) • Kiểm thử không bao giờ có thể phát hiện hoàn toàn 100% lỗi • Các phép kiểm thử phải tương ứng với các yêu cầu hệ thống • Mỗi phép kiểm thử nên được lập kế hoạch từ rất sớm trước khi tiến hành kiểm thử 05/10/2018 6 Yêu cầu kiểm thử • Tính lặp lại – kiểm thử phải lặp lại được (kiểm tra xem lỗi đã được sửa hay chưa) – dữ liệu/trạng thái phải mô tả được • Tính hệ thống – đảm bảo kiểm tra hết các trường hợp (coverage) • Được lập tài liệu 05/10/2018 7 Ca kiểm thử (test case) • Một test case (ca kiểm thử) là một lựa chọn cụ thể về input được dùng khi kiểm thử hoạt động của chương trình • Ca kiểm thử tốt • được thiết kế để phát hiện một lỗi của chương trình • Kiểm thử thành công: phát hiện ra lỗi • Mục đích: • − Chứng minh được sự tồn tại của lỗi • − Không chứng minh được sự không có lỗi 05/10/2018 8 Nôi dung của test case 05/10/2018 9 Quy trình kiểm thử phần mềm Dữ liệu Kết quả Test case test test Chạy So sánh Thiết kế các Chuẩn bị chương trình kết quả với test case dữ liệu test với dữ liệu test các test case Báo cáo kiểm thử (test report) 05/10/2018 10 Testing policies Chính sách kiểm thử • Chỉ có kiểm thử toàn diện vét cạn tất cả các trường hợp thực thi (exhaustive testing) mới có thể chứng tỏ rằng một chương trình không có lỗi – Kiểm thử toàn diện là bất khả thi • Thực tế, việc kiểm thử chỉ thực hiện với một tập con của tập tất cả các trường hợp có thể xảy ra. • Chính sách kiểm thử xác định phương pháp chọn các test hệ thống. Ví dụ – Test tất cả các chức năng truy nhập được từ các menu; – Test các tổ hợp chức năng truy nhập được từ cùng một menu; – Ở đầu cần đến input của người dùng, test tất cả các chức năng với cả input sai và input đúng. 05/10/2018 11 4. Các kỹ thuật kiểm thử chương trình • Kiểm thử chức năng (functional testing) – dựa trên đặc tả chức năng – phát hiện các sai sót về chức năng – không quan tâm đến cách cài đặt • Kiểm thử cấu trúc (structured testing) – kiểm thử có nghiên cứu mã nguồn – phân tích thứ tự thực hiện các lệnh 05/10/2018 12 Kiểm thử chức năng • Functional 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,… 05/10/2018 13 Kiểm thử cấu trúc • 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 05/10/201 ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Công nghệ phần mềm Công nghệ phần mềm Kiểm thử phần mềm Software testing Phương pháp thiết kế test case Nguyên tắc kiểm thử Kỹ thuật kiểm thửGợi ý tài liệu liên quan:
-
62 trang 390 3 0
-
Bài giảng Kiểm thử phần mềm: Bài 2
34 trang 299 0 0 -
Giáo trình Công nghệ phần mềm nâng cao: Phần 2
202 trang 215 0 0 -
Giáo trình Công nghệ phần mềm nâng cao: Phần 1
151 trang 189 0 0 -
Báo cáo chuyên đề Công nghệ phần mềm: Pattern searching
68 trang 184 0 0 -
Lecture Introduction to software engineering - Week 3: Project management
68 trang 161 0 0 -
Xây dựng mô hình và công cụ hỗ trợ sinh tác tử giao diện
13 trang 160 0 0 -
6 trang 153 0 0
-
Cuộc chiến Phân kỳ - Tích hợp nhiều tranh cãi bậc nhất trong giới marketing
3 trang 148 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 146 0 0