Bài giảng Công nghệ phần mềm: Chương 5 - Hoàng Thị Hà
lượt xem 2
download
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!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: 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/2018 14
- 5. Các phương pháp thiết kế test case 05/10/2018 15
- 5.1. Phân hoạch tương đương • Equivalence partitioning – 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 05/10/2018 16
- Partition testing • Input và output thường tập trung thành các nhóm, mỗi nhóm chứa các thành viên có tính chất giống nhau. • Mỗi nhóm đó là một phân hoạch tương đương (equivalence partition) hoặc miền (domain) mà với mỗi điểm trong đó chương trình hoạt động gần như nhau • Cần chọn test case cho từng phân hoạch equivalence partition 05/10/2018 17
- Binary search equiv. partitions 05/10/2018 18
- Phân hoạch tương đương - Ví dụ 05/10/2018 19
- Mở rộng các test case • 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 05/10/2018 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Công nghệ phần mềm: Chương 1 - ThS. Nguyễn Khắc Quốc
61 p | 143 | 18
-
Bài giảng Công nghệ phần mềm: Bài 1 - TS. Lê Nguyễn Tuấn Thành
142 p | 233 | 17
-
Bài giảng Công nghệ phần mềm nâng cao: Giới thiệu môn học - Phạm Ngọc Hùng
14 p | 167 | 14
-
Tập bài giảng Công nghệ phần mềm - Phạm Hùng Phú, Nguyễn Văn Thẩm (Biên soạn)
291 p | 61 | 13
-
Bài giảng Công nghệ phần mềm: Chương 1 - ĐH Công nghệ TP.HCM
77 p | 37 | 13
-
Bài giảng Công nghệ phần mềm: Bài 1 - Học viện Kỹ thuật Quân sự
45 p | 21 | 11
-
Bài giảng Công nghệ phần mềm: Chương 0 - ThS. Trần Sơn Hải
5 p | 122 | 10
-
Bài giảng Công nghệ phần mềm: Yêu cầu phần mềm
66 p | 107 | 10
-
Bài giảng Công nghệ phần mềm: Chương 1 - ThS. Dương Thành Phết
19 p | 139 | 9
-
Bài giảng Công nghệ phần mềm: Chương 1 - Trường ĐH Công nghiệp TP. HCM
48 p | 43 | 9
-
Bài giảng Công nghệ phần mềm - Phần 1: Giới thiệu chung về công nghệ phần mềm
52 p | 89 | 8
-
Bài giảng Công nghệ phần mềm: Các quy trình phần mềm
31 p | 126 | 8
-
Bài giảng Công nghệ phần mềm: Chương 1 - ThS. Đinh Thị Lương
40 p | 14 | 6
-
Bài giảng Công nghệ phần mềm ứng dụng: Bài 1 - ThS. Thạc Bình Cường
58 p | 61 | 6
-
Bài giảng Công nghệ phần mềm - Chương 1: Tổng quan về CNPM
13 p | 113 | 5
-
Bài giảng Công nghệ phần mềm - Phần 1: Giới thiệu công nghệ phần mềm
52 p | 79 | 5
-
Bài giảng Công nghệ phần mềm: Phần 1 - Vũ Thị Hương Giang
52 p | 50 | 3
-
Bài giảng Công nghệ phần mềm: Chương 1 - ThS. Trần Sơn Hải
52 p | 73 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn