Hanoi University of Science and Technology Kim th

  • Slides: 56
Download presentation
Hanoi University of Science and Technology Kiểm thử phần mềm Kiểm thử hộp đen

Hanoi University of Science and Technology Kiểm thử phần mềm Kiểm thử hộp đen Nguyen Thanh Hung Software Engineering Department

Nội dung 1. Quy tri nh kiê m đi nh. 2. Kiểm thư hô

Nội dung 1. Quy tri nh kiê m đi nh. 2. Kiểm thư hô p đen và các kỹ thuật. 3. Tô ng kết. 2

Quy trình kiểm định 3

Quy trình kiểm định 3

Lợi ích của việc kiểm định: Phát hiện lỗi sớm v Định lý: Việc

Lợi ích của việc kiểm định: Phát hiện lỗi sớm v Định lý: Việc kiểm định hỗ trợ cho việc cải thiện chất lượng bằng cách tìm kiếm các sai sót sớm trong việc phát triển vòng đời. 4

Kiểm thử hộp đen v Khái niệm § Là kiểm thử yêu cầu chức

Kiểm thử hộp đen v Khái niệm § Là kiểm thử yêu cầu chức năng § Đối tượng: module, hệ thống con, toàn hệ thống § Đặc trưng: • • Thuyết minh: các chức năng đủ & vận hành đúng Thực hiện: qua giao diện Cơ sở: đặc tả, điều kiện vào/ra và cấu trúc dữ liệu Ít chú ý đến logic nội tại của nó 5

Mô hình khái niệm kiểm thử hộp đen 6

Mô hình khái niệm kiểm thử hộp đen 6

Mục đích kiểm thử hộp đen v Ti m ca c loa i sai

Mục đích kiểm thử hộp đen v Ti m ca c loa i sai lie n quan: § Chư c na ng: đủ, đu ng đă n § Giao diẹ n: va o, ra: đu , phu hơ p, đu ng, tiẹ n lơ i § Câ u tru c, truy cạ p dư liẹ u: tho ng suô t, đu ng đă n § Thư c thi: tro i cha y, ki p thơ i, chi u lô i, phu c hô i § Khơ i đâ u - kê t thu c: mô i tiê n tri nh tho ng suô t 7

Câu hỏi cho kiểm thử hộp đen v Ca c ca u ho i

Câu hỏi cho kiểm thử hộp đen v Ca c ca u ho i tạ p trung tra lơ i : § Hiẹ u lư c cu a chư c na ng (chư c na ng, hiẹ u suâ t, giao diẹ n) đa t đu ơ c đê n đa u? § Lơ p đâ u va o na o cho ca c ca kiê m thư tô t? § Sư nha y ca m cu a mo đun vơ i gia tri va o na o? § Ca c bie n cu a lơ p dư liẹ u đu ơ c co lạ p chu a? § Chiu lô i vơ i nhi p điẹ u/khô i lu ơ ng dư liẹ u nhu thê na o? § Tô hơ p dư liẹ u đạ c biẹ t a nh hu ơ ng gi đê n hoa t đọ ng hẹ thô ng? § Như ng tiê n tri nh na o (khơ i đâ u, kê t thu c) chu a tho ng suô t? 8

Vấn đề và tiêu chuẩn lựa chọn v Vấn đề: § Các tiến trình

Vấn đề và tiêu chuẩn lựa chọn v Vấn đề: § Các tiến trình của mỗi chức năng hệ thống đủ lớn § Các dữ liệu dày đặc, đa dạng § Không dự kiến tới mọi sự bất thường v Tiêu chuẩn hướng đến: § Thu go n ca kiê m thư đê n mư c co thê (i t, đo n gia n). § Pha t hiẹ n sai tre n lơ p dư liẹ u, sô đạ c biẹ t (kho ng pha i 1 sai cu thê gă n vơ i 1 kiê m thư cu thê ) 9

Mục tiêu v Tìm hiểu các kỹ thuật phổ biến và hiệu quả nhất

Mục tiêu v Tìm hiểu các kỹ thuật phổ biến và hiệu quả nhất cho kiểm thử hộp đen: § Boundary Testing (Kiểm thử biên) § Equivalence Class Testing (Kiểm thử lớp tương đương) § Decision Table (Bảng quyết định) § Error Guess Testing (Kiểm thử đoán lỗi) 10

Kiểm thử hộp đen - Black-box testing v Đinh nghĩa § Kiểm thử hộp

Kiểm thử hộp đen - Black-box testing v Đinh nghĩa § Kiểm thử hộp đen: kiểm thử bỏ qua chi tiết, cấu trúc bên trong hệ thống và chỉ tập trung vào kết quả đầu ra. v �Kiểm thử hộp đen thường sử dụng: § § Boundary Testing (Kiểm thử biên) Equivalence Class Testing (Kiểm thử lớp tương đương) Decision Table (Bảng quyết định) Error Guess Testing (Kiểm thử đoán lỗi) 11

Kiểm thử hộp đen (2) v. Những khái niệm cần nhớ: § Không thể

Kiểm thử hộp đen (2) v. Những khái niệm cần nhớ: § Không thể thử nghiệm tất cả các trường hợp nếu chỉ áp dụng duy nhất một kỹ thuật. § Trộn một số kỹ thuật với nhau sẽ thực tế hơn. § Khi sử dụng kỹ thuật kiểm thử hộp đen, cần nắm vững các đặc tả. § Kiểm thử hộp đen không chỉ áp dụng vào chức năng phần mềm mà còn cả thuộc tính phi chức năng, chẳng hạn như bảo mật, hiệu suất, khả năng sử dụng. 12

Phân vùng tương đương v Định nghĩa § Phân vùng tương đương (Equivalence Partitioning):

Phân vùng tương đương v Định nghĩa § Phân vùng tương đương (Equivalence Partitioning): chia các miền đầu vào của chương trình thành các tập dữ liệu có cùng đặc điểm mà từ đó các trường hợp kiểm thử có thể tiền hành kiểm thử. § Cố gắng tìm ra một trường hợp kiểm thử mà bao phủ số lỗi nhiều nhất để giảm tối thiểu số lượng các trường hợp kiểm thử 13

Phân vùng tương đương 14

Phân vùng tương đương 14

Phân vùng tương đương v Các kiểu phân vùng tương đương § Valid equivalence

Phân vùng tương đương v Các kiểu phân vùng tương đương § Valid equivalence (tương đương hợp lệ): các lớp mà dữ liệu thuộc lớp này là hợp lệ. § Invalid equivalence: các lớp mà dữ liệu thuộc lớp này là không hợp lệ. v Các bước thiết kế trường hợp thử nghiệm (test case) § Xác định các lớp tương đương. § Xác định các trường hợp thử nghiệm (test case). 15

Xác định các lớp tương đương(1) v Điều cần biết về phân lớp tương

Xác định các lớp tương đương(1) v Điều cần biết về phân lớp tương đương: § Không có phương pháp chuẩn để xác định một lớp tương đương. § Đặc tả thông số kỹ thuật khác nhau có thể sử dụng các phương pháp xác định khác nhau. § Chất lượng của các trường hợp thử nghiệm có thể bị ảnh hưởng bởi các lớp tương đương khác nhau. § Các hướng dẫn sau đây có thể hữu ích khi xác định các lớp tương đương. 16

Xác định các lớp tương đương(2) v Hướng dẫn: 1. Nếu một điều kiện

Xác định các lớp tương đương(2) v Hướng dẫn: 1. Nếu một điều kiện đầu vào xác định cụ thể một mức của các giá trị, thì xác định được một lớp tương đương hợp lệ và một lớp tương đương không hợp lệ. 2. Nếu một điều kiện đầu vào quy định cụ thể số lượng các giá trị, thì xác định được một lớp tương đương hợp lệ và một lớp tương đương không hợp lệ. 3. Nếu một điều kiện đầu vào xác định một tập hợp các giá trị đầu vào và có một lý do để tin rằng chương trình xử lý mỗi một giá trị khác nhau, thì xác định được một lớp hợp lệ tương đương cho mỗi một giá trị và một lớp tương đương không hợp lệ. 17

Xác định các lớp tương đương(3) 4. Nếu một điều kiện đầu vào quy

Xác định các lớp tương đương(3) 4. Nếu một điều kiện đầu vào quy định cụ thể "phải là“ , chẳng hạn như "ký tự đầu tiên của bộ nhận diện phải là một chữ, “ thì xác định được một lớp tương đương hợp lệ và một lớp tương đương không hợp lệ. 5. Nếu có bất kỳ lý do để tin rằng chương trình không xử lý các yếu tố trong một lớp tương đương giống nhau, thì ta phân chia lớp tương đương vào các lớp tương đương nhỏ hơn. 18

Xác định các Test Cases v Các bước 1. Đặt một số duy nhất

Xác định các Test Cases v Các bước 1. Đặt một số duy nhất cho mỗi lớp tương ứng. 2. Thiết kế một test case bao gồm nhiều lớp tương ứng hợp lệ đã được phát hiện nhất có thể cho đến khi tất cả các lớp tương ứng hợp lệ được phủ bởi test case. 3. Thiết kế một test case bao gồm một và chỉ một trong số các lớp tương ứng không hợp lệ đã được phát hiện ra cho đến khi các test case của bạn bao phủ hết các lớp không hợp lệ tương ứng. Chú ý: Để có thể thực hiện việc xây dựng các test case dễ dàng hơn chúng ta có thể sử dụng bảng sau để phát hiện Điều kiện Lớp tương đương hợp lệ Số thứ Lớp tương tự đương không hợp lệ Số thư tự 19

Ví dụ (1) v Ví dụ § Một hàm miêu tả như sau: next.

Ví dụ (1) v Ví dụ § Một hàm miêu tả như sau: next. Date(month, day, year): hàm đưa ra ngày tiếp theo của ngày nhập vào 1≤month ≤ 12, 1≤day ≤ 31, 1900≤year ≤ 2060 § Có 2 ví dụ về cách phân lớp cho hàm này. Hai cách phân lớp này có ảnh hưởng rất lớn từ việc xác định các lớp tương đương. 20

Ví dụ (2) - Cách phân lớp thứ nhất v Cách 1: § Bảng

Ví dụ (2) - Cách phân lớp thứ nhất v Cách 1: § Bảng phân loại các lớp tương đương và số thứ tự của chúng: Điều kiện Lớp tương đương hợp lệ Số thứ Lớp tương tự đương không hợp lệ Số thư tự Tháng [1, 12] 1 Tháng < 1 4 Tháng > 12 5 Ngày < 1 6 Ngày > 31 7 Năm < 1900 8 Năm > 2060 9 Ngày Năm [1, 31] [1900, 2060] 2 3 21

Ví dụ (3) - Cách phân lớp thứ nhất v Các trường hợp kiểm

Ví dụ (3) - Cách phân lớp thứ nhất v Các trường hợp kiểm thử của cách 1: 1. Các lớp 1, 2, 3 có đầu vào (6, 16, 2006), kết quả mong muốn là (6, 17, 2006). 2. Các lớp 4, 2, 3 có đầu vào (-2, 16, 2006), kết quả mong muốn là “Input Error!” 3. Các lớp 5, 2, 3 có đầu vào (20, 16, 2006), kết quả mong muốn là ”Input Error!” 4. Các lớp 1, 6, 3 có đầu vào (5, 0, 2006), kết quả mong muốn là ”Input Error!” 5. Các lớp 1, 7, 3 có đầu vào (5, 40, 2006), kết quả mong muốn là ”Input Error!” 6. Các lớp 1, 2, 8 có đầu vào (5, 10, 1812), kết quả mong muốn là ”Input Error!” 7. Các lớp 1, 2, 9 có đầu vào (5, 10, 3006), kết quả mong muốn là ”Input Error!” 22

Ví dụ (4) - Cách phân lớp thứ nhất v Các vấn đề của

Ví dụ (4) - Cách phân lớp thứ nhất v Các vấn đề của cách phân lớp 1: § Độ phức tạp của cách phân lớp này như thế nào? § Năm nhuận liệu có được tính đến? § Các trường hợp đã bao phủ trường hợp ngày 31 tháng 12? § Cuối cùng thì cách phân lớp này đã hợp lý chưa? 23

Ví dụ (5) - Cách phân lớp thứ hai Điều kiện Lớp tương đương

Ví dụ (5) - Cách phân lớp thứ hai Điều kiện Lớp tương đương hợp lệ Số thứ tự Lớp tương đương Số không hợp lệ thư tự Tháng Các tháng 31 ngày trừ tháng 12 1 Tháng <1 11 Các tháng 30 ngày 2 Tháng >12 12 Tháng 2 3 Tháng 12 4 [1, 28] 5 Ngày < 1 13 29 6 Ngày > 31 14 30 7 31 8 Năm nhuận 9 Năm <1900 15 Năm không nhuận 10 Năm > 2060 16 Ngày Năm 24

Ví dụ (6) - Cách phân lớp thứ hai v Các trương hợp kiểm

Ví dụ (6) - Cách phân lớp thứ hai v Các trương hợp kiểm thử của cách 2: 1. Các lớp 1, 5, 9 có đầu vào (7, 16, 2006), kết quả mong muốn là (7, 17, 2006). 2. Các lớp 2, 6, 10 có đầu vào (4, 29, 2006), kết quả mong muốn là (4, 30, 2006). 3. Các lớp 3, 7, 9 có đầu vào (2, 30, 2000), kết quả mong muốn là ”Input Error!” 4. Các lớp 4, 8, 10 có đầu vào (12, 31, 2001), kết quả mong muốn là (1, 1, 2002). 5. Các lớp 11, 5, 9 có đầu vào (-2, 10, 2004), kết quả mong muốn là ”Input Error!” 6. Các lớp 12, 5, 9 có đầu vào (15, 10, 2004), kết quả mong muốn là ”Input Error!” 7. Các lớp 1, 13, 9 có đầu vào (8, -2, 2004), kết quả mong muốn là ”Input Error!” 25

Ví dụ (7) - Cách phân lớp thứ hai v Các trương hợp kiểm

Ví dụ (7) - Cách phân lớp thứ hai v Các trương hợp kiểm thử của cách 2: 8. Các lớp 1, 14, 9 có đầu vào (8, 2000, 2004), kết quả mong muốn là ”Input Error!” 9. Các lớp 1, 5, 15 có đầu vào (3, 19, 1830), kết quả mong muốn là ”Input Error!” 10. Các lớp 1, 5, 16 có đầu vào (3. 19. 3000), kết quả mong muốn là ”Input Error!” 26

Ví dụ (8) - Cách phân lớp thứ hai v Các vấn đề của

Ví dụ (8) - Cách phân lớp thứ hai v Các vấn đề của cách phân lớp 2: § Cách phân lớp 1 và 2 cách nào tốt hơn? § Cách này đã thực sự hoàn hảo chưa? § Phân vùng tương đương có là thuật toán thích hợp cho bài toàn tìm ngày tiếp theo không? 27

Boundary Testing (Kiểm thử biên) v Định nghĩa § Phân tích giá trị biên

Boundary Testing (Kiểm thử biên) v Định nghĩa § Phân tích giá trị biên là một phương pháp thiết kế các trường hợp kiểm thử bổ sung cho phân vùng tương đương. Nó dẫn đến việc lựa chọn các trường hợp kiểm thử tại “cạnh” của lớp. v �Nguyên tắc § Với 1 phạm vi (a, b), các giá trị a, b, 1 số nhỏ hơn a, 1 số nhỏ hơn b, một số lớn hơn a, một số lớn hơn b tất cả đều phải được kiểm tra. VD: Nếu a, b là số nguyên, bạn phải test a, b, a-1, b-1, a+1, b+1 § Nếu có một số giá trị, thì các giá trị max, min, trước và sau min, max phải được kiểm tra § Nếu nội bộ các cấu trúc dữ liệu chương trình qui định các biên, hãy thiết kế 1 test case để kiểm tra cấu trúc dữ liệu tại biên của nó § Các hướng dẫn có thể được áp dụng với các điều kiện đầu ra 28

Boundary Testing (Kiểm thử biên) v Trong quá trình kiểm thử biên, chú ý

Boundary Testing (Kiểm thử biên) v Trong quá trình kiểm thử biên, chú ý đên các kiểu sau: § Số § Ký tự § Vị trí § Số lượng § Tốc độ § Địa điểm § Kích thước v Bên cạnh các nguyên tắc, cần phải kiểm tra các mục dưới đây: § Đầu tiên/Cuối cùng, Đầu tiên-1/Cuối cùng-1 § Bắt đầu/Kết thúc, Bắt đầu-1/Kết thúc+1 § Hơn/Kém, Chỉ hơn/Chỉ kém § Rỗng/Đầy, Ít hơn rỗng/Nhiều hơn đầy 29

Boundary Testing (Kiểm thử biên) v Bên cạnh các nguyên tắc, cần phải kiểm

Boundary Testing (Kiểm thử biên) v Bên cạnh các nguyên tắc, cần phải kiểm tra các mục dưới đây: § Ngắn nhất/Dài nhất, Thậm chí Ngắn hơn/Dài hơn § Chậm nhất/Nhanh nhất, Thậm chí Chậm hơn/Nhanh hơn § Sớm nhất/Muộn nhất, Thậm chí Sớm hơn/Muộn hơn § Lớn nhất/Nhỏ nhất, Lớn nhất+1/Nhỏ nhất-1 § Cao nhất/Thấp nhất, Cao nhất+1/Thấp nhất-1 § Tiếp theo/Xa nhất từ v �Biên con (Sub-boundary) § Biên con là những biên không được định nghĩa trong đặc tả, mà ở bên trong phần mềm. § Những biên này cũng cần được test như các biên thông thường. 30

Ví dụ(1) 31

Ví dụ(1) 31

Ví dụ (2) v Ghi chú § Chỉ xem xét đến 1 biến thể

Ví dụ (2) v Ghi chú § Chỉ xem xét đến 1 biến thể của biên tại một thời điểm, và những biên khác sẽ có giá trị bình thường. Ví dụ, khi kiểm thử biên tháng, hãy để ngày và năm giá trị bình thường. § Tập kiểm tra là chưa đầy đủ. Hãy nhớ rằng kiểm thử biên là một phương pháp kiểm thử bổ sung. Nó nên được áp dụng cùng với các phương pháp khác. 32

Bảng quyết định v Định nghĩa Bao gồm 4 vùng gọi là stub điều

Bảng quyết định v Định nghĩa Bao gồm 4 vùng gọi là stub điều kiện (condition stub), entry điều kiện (condition entry), stub hành động (action stub) và entry hành động (action entry): 1. Stub điều kiện là một danh sách tên gọi của các điều kiện 2. Stub hành động nêu tên các hành động sẽ thường xuyên có hoặc được khởi tạo nếu thỏa mãn các điều kiện. 3. Entry điều kiện là sự kết hợp của các điều kiện. 4. Entry hành động là những hành động diễn ra dưới sự kết hợp của các điều kiện. 5. Mỗi cột trong bảng là một luật mà quy định các điều kiện theo đó những hành động có tên trong stub hành động sẽ diễn ra. v �Mối quan hệ với trường hợp kiểm thử (test case) § Một luật là một test case, có nghĩa là, các giá trị trong entry điều kiện là đầu vào test và các hành động phù hợp là kết quả được kì vọng. 33

Ví dụ Bảng Quyết định v Đây là bảng quyết định mô tả các

Ví dụ Bảng Quyết định v Đây là bảng quyết định mô tả các kịch bản khi đọc một cuốn sách 34

Mục không áp dụng được(1) v Để giảm số trưởng hợp thử nghiệm, chúng

Mục không áp dụng được(1) v Để giảm số trưởng hợp thử nghiệm, chúng ta có thể kết hợp các quy tắc có kết quả hành động tương tự 35

Mục không áp dụng được(2) v “-” biểu diễn mục không cần xem xét

Mục không áp dụng được(2) v “-” biểu diễn mục không cần xem xét v Số lượng các quy tắc được giảm xuống còn 4 và các trường hợp thử nghiệm giảm cho phù hợp 36

Bảng Quyết định v Các loại của bảng quyết định § Bảng quyết định

Bảng Quyết định v Các loại của bảng quyết định § Bảng quyết định đầu vào giới hạn: Giá trị của mỗi điều kiện là 2 thành phần, đó là, Y/N, T/F, 1/0, v. v. . § Bảng quyết định đầu vào mở rộng: Mỗi điều kiện có nhiều giá trị v Cách để thiết kế các trường hợp thử nghiệm § Bước: 1. TÌm các điều kiện và các hành động bằng cách phân tích đặc tả 2. Làm đầy các điều kiện và các hành động trong cuống điều kiện và cuống hành động 3. Làm đầy các tổ hợp của điều kiện vào dựa trên logic 4. Làm đầy hành động vào dựa trên tổ hợp các điều kiện và đặc tả 37

Bảng Quyết định Đầu vào Giới hạn(1) v Ví dụ § Một chức năng

Bảng Quyết định Đầu vào Giới hạn(1) v Ví dụ § Một chức năng được mô tả như sau: nhập 3 số nguyên biểu diễn độ dài các cạnh của 1 tam giác và đầu ra 1 thông điệp là trạng thái của tam giác là đều hay không đều. § a, b, c là đầu vào số nguyên và bảng quyết định là: 38

Bảng Quyết định Đầu vào Giới hạn(2) v Các trường hợp thử nghiệm: §

Bảng Quyết định Đầu vào Giới hạn(2) v Các trường hợp thử nghiệm: § Quy tắc 1: Đầu vào = (60, 16, 26), Kết quả mong đợi = Không phải 1 tam giác § Quy tắc 2: Đầu vào = (50, 0), Kết quả mong đợi = Không phải 1 tam giác § Quy tắc 3: Đầu vào = (0, 0, 0), Kết quả mong đợi = Không phải 1 tam giác § Quy tắc 4: Đầu vào = (60, 60), Kết quả mong đợi = Đều § Quy tắc 5: Tổ hợp không tồn tại trong thực tế § Quy tắc 6: Tổ hợp không tồn tại trong thực tế § Quy tắc 7: Đầu vào = (60, 26), Kết quả mong đợi = Cân § Quy tắc 8: Tổ hợp không tồn tại trong thực tế § Quy tắc 9: Đầu vào = (60, 26, 60), Kết quả mong đợi = Cân § Quy tắc 10: Đầu vào = (26, 60), Kết quả mong đợi = Cân § Quy tắc 11: Đầu vào = (30, 40, 50), Kết quả mong đợi = Không cân v Các trường hợp thử nghiệm: § Có 8 trường hợp thử nghiệm § Trường hợp thử nghiệm này chỉ kiểm tra tính logic của phần mềm 39

Bảng Quyết định Đầu vào Mở rộng(1) v Ví dụ: § Một chức năng

Bảng Quyết định Đầu vào Mở rộng(1) v Ví dụ: § Một chức năng được mô tả kiểu như: next. Date(month, day, year) là 1 hàm mà đầu ra của ngày tiếp theo của ngày đầu vào. 1 month 12, 1 day 31, 1900 year 2060. § Nếu bạn chọn 1 bảng quyết định đầu vào giới hạn, sẽ có 256 quy tắc. 1. Giá trị của tháng có thể là 1 trong những cái sau: • • M 1 = {tháng có 31 ngày, trừ tháng 12} M 2 = {tháng có 30 ngày} M 3 = {tháng 2} M 4 = {tháng 12} 2. Giá trị của ngày có thể là 1 trong những cái sau: • • • D 1 = {Từ 1 đến 27} D 2 = {28} D 3 = {29} D 3 = {30} D 3 = {31} 40

Bảng Quyết định Đầu vào Mở rộng(2) v Ví dụ 3. Giá trị của

Bảng Quyết định Đầu vào Mở rộng(2) v Ví dụ 3. Giá trị của năm có thể là 1 trong những cái sau: • • Y 1 = {năm nhuận} Y 1 = {năm không nhuận} Bảng quyết định: 41

Bảng Quyết định Đầu vào Mở rộng (3) v Các trường hợp thử nghiệm

Bảng Quyết định Đầu vào Mở rộng (3) v Các trường hợp thử nghiệm § § § § Quy tắc 1: Đầu vào = (7, 16, 2001) Kết quả mong đợi = (7, 17, 2001) Quy tắc 2: Đầu vào = (7, 31, 2001) Kết quả mong đợi = (8, 1, 2001) Quy tắc 3: Đầu vào = (4, 25, 2000) Kết quả mong đợi = (4, 26, 2000) Quy tắc 4: Đầu vào = (9, 30, 1999) Kết quả mong đợi = (10, 1, 1999) Quy tắc 5: Đầu vào = (11, 31, 2000) Kết quả mong đợi = “Input Error!” Quy tắc 6: Đầu vào = (2, 15, 2004) Kết quả mong đợi = (2, 16, 2004) Quy tắc 7: Đầu vào = (2, 29, 2004) Kết quả mong đợi = (3, 1, 2004) Quy tắc 8: Đầu vào = (2, 31, 2004) Kết quả mong đợi = “Input Error!” Quy tắc 9: Đầu vào = (2, 16, 2005) Kết quả mong đợi = (2, 17, 2005) Quy tắc 10: Đầu vào = (2, 28, 2005) Kết quả mong đợi = (3, 1, 2005) Quy tắc 11: Đầu vào = (2, 29, 2005) Kết quả mong đợi = “Input Error!” Quy tắc 12: Đầu vào = (12, 26, 2005) Kết quả mong đợi = (17, 2005) Quy tắc 13: Đầu vào = (12, 31, 2005) Kết quả mong đợi = (1, 1, 2006) 42

Bảng Quyết định v Nhớ những điều sau đây: § Nên sử dụng bảng

Bảng Quyết định v Nhớ những điều sau đây: § Nên sử dụng bảng quyết định khi kiểm tra logic. § Để giảm bớt số trường hợp kiểm thử, có thể sử dụng các bảng quyết định mở rộng đầu vào. § Bảng quyết định không phải là một kỹ thuật mà chỉ có thể sử dụng để thiết kế các trường hợp thử nghiệm. 43

Dự đoán lỗi (Error Guessing) v Định nghĩa § Việc thiết kế các trường

Dự đoán lỗi (Error Guessing) v Định nghĩa § Việc thiết kế các trường hợp kiểm thử dựa trên kinh nghiệm và trực giác của một kiểm định viên. § Thường được dùng như một phương pháp bổ sung. v �Các bước § Hầu như là một tiến trình dựa trên trực giác và không được chuẩn bị trước. • Liệt kê một danh sách các lỗi có thể xảy ra và các tình huống dễ gây ra lỗi • Thiết kế các test case dựa trên danh sách đó 44

Đặc tả(1) v Các chức năng của hệ thống: § Căn cứ vào tuổi

Đặc tả(1) v Các chức năng của hệ thống: § Căn cứ vào tuổi và số điểm hiện tại trong giấy phép lái xe, tính toán ra một nửa năm bảo hiểm của người được hưởng bảo hiểm dựa trên các khoản trong bảng 1. § Đầu vào • Tuổi của người được bảo hiểm: integer[16, 100] • Số điểm hiện tại trong giấy phép lái xe: Integer[0, 12] § Đầu ra • Hợp đồng bảo hiểm trong nửa năm § Tiến trình 1. Tính toán giá trị tuyệt đối của tuổi. Dựa trên số tuổi của người được bảo hiểm trong giấy phép lái xe, tính toán giá trị tuyệt đối tuổi dựa vào bảng 1, sau đó chuyển sang bước 2. Nếu tuổi nằm ngoài khoảng cho phép, tiến trình kết thúc với một thông báo “Warning: Age should between 16 and 100. (including 16 but not 100)” 45

Đặc tả(2) v Tiến trình 2. Tính chiết khấu lái xe an toàn. Dựa

Đặc tả(2) v Tiến trình 2. Tính chiết khấu lái xe an toàn. Dựa trên điểm hiện tại trong giấy phép lái xe, tính chiết khấu lái xe an toàn theo bảng 1. Nếu điểm hiện tại trong giấy phép lái xe ít hơn ngưỡng tương ứng, lấy giá trị chiết khấu và chuyển sang bước 3. Nếu điểm hiện tại trong giấy phép lái xe là lớn hơn hoặc bằng ngưỡng, nhưng nhỏ hơn 12, thiết lập giá trị chiết khấu về 0 và chuyển sang bước 3. Nếu điểm bằng hoặc hơn 12, tiến trình sẽ kết thúc bằng cách hiển thị các thông tin "tổng phí bảo hiểm của bạn là $ 0". 3. Phí bảo hiểm = Tỷ lệ bảo hiểm cơ bản * giá trị tuyệt đối tuổi – chiết khấu bảo hiểm. 4. Tỷ lệ bảo hiểm cơ bản = 500 46

Trả lời v Các bước § Để có được những test case tốt, áp

Trả lời v Các bước § Để có được những test case tốt, áp dụng mỗi kỹ thuật kiểm thử hộp đen là chưa đủ: 1. Thực hiện phân vùng tương để chia nhỏ vấn đề. 2. 3. 4. 5. Sử dụng bảng quyết định mở rộng để kiểm thử logic Sử dụng giá trị biên để kiểm thử các biên. Sử dụng đoán lỗi để bổ sung cho tập kiểm thử. Kết quả cuối cùng nên kết hợp với những câu trả lời trước đó. 47

Xác định các lớp tương đương Dựa trên các đặc tả ta có: v

Xác định các lớp tương đương Dựa trên các đặc tả ta có: v Tuổi: 1. Những khoảng xác định: [16, 25), [25, 35), [35, 45), [45, 60), [60, 100) 2. Những khoảng không xác định: [- , 16), [100, + ) v Điểm: 1. Những khoảng xác định: [0, 1), [1, 3), [3, 5), [5, 7), [7, 12), 12 2. Những khoảng không xác định: [- , 0), [12, + ) 48

Bảng quyết định v Sử dụng bảng quyết định với các mục mở rộng

Bảng quyết định v Sử dụng bảng quyết định với các mục mở rộng để kiểm tra tính logic Tuổi [16, 25) [25, 35) [35, 45) Điểm [0, 1) [1, 12) 12 [0, 3) [3, 12) 12 [0, 5) [5, 12) 12 Age modulus 2. 8 0 1 1 0 Chiết khấu 50 0 0 100 0 0 1350. 0 1400. 0 850. 0 900. 0 400. 0 500. 0 Bảo hiểm N/A Tuổi [45, 60) [60, 100) Điểm [0, 7) [7, 12) 12 [0, 5) [5, 12) 12 Age modulus 0. 8 0 1. 5 0 Chiết khấu 150 0 0 200 0 0 250. 0 400. 0 550. 0 750. 0 0 Bảo hiểm N/A 49

Giá trị biên (1) v Dùng giá trị biên để kiểm tra biên của

Giá trị biên (1) v Dùng giá trị biên để kiểm tra biên của mỗi khoảng xác định, mỗi giá trị một lần Tuổi: [16, 25), Điểm: [0, 1), [1, 12), 12 Tuổi Điểm Kết quả mong đợi 15 0 Lỗi! 16 0 1350 17 0 1350 20 0 1350 23 0 1350 24 0 1350 25 0 850 20 -1 Lỗi! 20 1 1400 20 2 1400 20 11 1400 20 12 Lỗi! 20 13 Lỗi! 50

Giá trị biên (2) v Dùng giá trị biên để kiểm tra biên của

Giá trị biên (2) v Dùng giá trị biên để kiểm tra biên của mỗi khoảng xác định, mỗi giá trị một lần Tuổi: [25, 35), Điểm: [0, 3), [3, 12), 12 Tuổi Điểm Kết quả mong đợi 24 2 1400 25 2 850 26 2 850 30 2 850 33 2 850 34 2 850 35 2 400 30 -1 Lỗi! 30 0 850 30 1 850 30 2 850 30 3 900 30 4 900 30 11 900 30 12 Lỗi! 30 13 Lỗi! 51

Giá trị biên (3) v Dùng giá trị biên để kiểm tra biên của

Giá trị biên (3) v Dùng giá trị biên để kiểm tra biên của mỗi khoảng xác định, mỗi giá trị một lần Tuổi: [35, 45), Điểm: [0, 5), [5, 12), 12 Tuổi Điểm Kết quả mong đợi 34 3 900 35 3 400 36 3 400 40 3 400 43 3 400 44 3 400 45 3 250 40 -1 Lỗi! 40 0 40 3 400 40 4 400 40 5 500 40 6 500 40 11 500 40 12 Lỗi! 40 13 Lỗi! 52

Giá trị biên (4) v Dùng giá trị biên để kiểm tra biên của

Giá trị biên (4) v Dùng giá trị biên để kiểm tra biên của mỗi khoảng xác định, mỗi giá trị một lần Tuổi: [45, 60), Điểm: [0, 7), [7, 12), 12 Tuổi Điểm Kết quả mong đợi 44 4 400 45 4 250 46 4 250 55 4 250 58 4 250 59 4 250 60 4 550 55 -1 Lỗi! 55 0 250 55 1 250 55 6 250 55 7 400 55 8 400 55 11 400 55 12 Lỗi! 55 13 Lỗi! 53

Giá trị biên (5) v Dùng giá trị biên để kiểm tra biên của

Giá trị biên (5) v Dùng giá trị biên để kiểm tra biên của mỗi khoảng xác định, mỗi giá trị một lần Tuổi: [60, 100), Điểm: [0, 5), [5, 12), 12 Tuổi Điểm Kết quả mong đợi 59 3 250 60 3 550 61 3 550 80 3 550 98 3 550 99 3 550 100 3 Lỗi! 80 -1 Lỗi! 80 0 550 80 1 550 80 3 550 80 4 550 80 5 750 80 6 750 80 11 750 80 12 Lỗi! 80 13 Lỗi! 54

Đoán lỗi v Sử dụng đoán lỗi để tìm ra tập các phép thử

Đoán lỗi v Sử dụng đoán lỗi để tìm ra tập các phép thử Trường tuổi Trường điểm Tuổi Điểm Kết quả mong đợi f 16 0 Lỗi! -50 1 Lỗi! 50. 5 1 Lỗi! &$ 1 Lỗi! 050 1 Lỗi! -2147483648 1 Lỗi! 2147483647 1 Lỗi! Tuổi Điểm Kết quả mong đợi 50 g Lỗi! 50 -2 Lỗi! 50 2. 5 Lỗi! 50 02 Lỗi! 50 -2147483648 Lỗi! 50 2147483647 Lỗi! 50 *&^%() Lỗi! 55

Tổng kết v Kỹ thuật kiểm thử hộp đen có thể kiếm tra chức

Tổng kết v Kỹ thuật kiểm thử hộp đen có thể kiếm tra chức năng và phi chức năng của phần mềm dựa trên các đặc tả. v Kỹ thuật kiểm thử hộp đen phổ biến bao gồm kiểm thử biên, phân vùng tương đương, bảng quyết định và đoán lỗi. v �Để có được những tập kiểm thử tốt, việc áp dụng chỉ một kỹ thuật là chưa đủ. 56