ISO/IEC/IEEE 29119-4:2015
KỸ THUẬT HỆ THỐNG VÀ PHẦN MỀM - KIỂM THỬ PHẦN MỀM - PHẦN 4: CÁC KỸ THUẬT KIỂM THỬ
Software and systems engineering - Software testing - Part 4: Test Techniques
Lời nói đầu
TCVN 12849-4:2020 hoàn toàn tương đương ISO/IEC/IEEE 29119-4:2015.
TCVN 12849-4:2020 do Viện Khoa học Kỹ thuật Bưu điện biên soạn, Bộ Thông tin và Truyền thông đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố.
Lời giới thiệu
Mục đích của tiêu chuẩn này là đưa ra một chuẩn quốc tế định nghĩa các kỹ thuật thiết kế kiểm thử phần mềm (còn được gọi là kỹ thuật thiết kế ca kiểm thử hoặc các phương pháp kiểm thử) có thể được sử dụng trong quy trình Thiết kế và chuẩn bị kiểm thử được định nghĩa trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013). Tiêu chuẩn này không mô tả cụ thể quy trình Thiết kế và chuẩn bị kiểm thử; thay vào đó, nó mô tả một tập các kỹ thuật kiểm thử phần mềm mà có thể được sử dụng trong tiêu chuẩn TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2). Mục đích là mô tả một loạt các kỹ thuật mà được chấp nhận rộng rãi trong ngành công nghiệp kiểm thử phần mềm.
Các kỹ thuật thiết kế kiểm thử được trình bày trong tiêu chuẩn này có thể được sử dụng để xây dựng các ca kiểm thử, cung cấp bằng chứng để chứng minh rằng các yêu cầu hạng mục kiểm thử đã được đáp ứng và /hoặc có xuất hiện lỗi trong một hạng mục kiểm thử (tức là các yêu cầu không được đáp ứng). Để xác định một tập các kỹ thuật kiểm thử mà có thể được áp dụng trong các tình huống cụ thể, có thể sử dụng kiểm thử dựa trên rủi ro (kiểm thử dựa trên rủi ro được trình bày trong TCVN 12849- 1:2020 (ISO/IEC/IEEE 29119-1) và TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013).
CHÚ THÍCH: "Hạng mục kiểm thử" là một sản phẩm công việc đang được kiểm thử (xem TCVN 12849-1:2020 (ISO/IEC/IEEE 29119-1)).
Ví dụ 1: "Các hạng mục kiểm thử" bao gồm các hệ thống, các hạng mục phần mềm, các đối tượng, các lớp, các yêu cầu tài liệu, các đặc tả thiết kế và hướng dẫn sử dụng.
Để thiết kế các ca kiểm thử, mỗi kỹ thuật kiểm thử đều tuân theo đầy đủ các bước trong quy trình Thiết kế và chuẩn bị kiểm thử được định nghĩa trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) được trình bày trong Hình 1 dưới đây.
Tiêu chuẩn này không đưa ra hướng dẫn về toàn bộ các hoạt động trong quy trình Thiết kế và chuẩn bị kiểm thử, tiêu chuẩn này chỉ đưa ra hướng dẫn về cách thức thực hiện chi tiết ba hoạt động được mô tả dưới đây đối với từng kỹ thuật kiểm thử:
- Xác định các điều kiện kiểm thử (TD2);
- Xác định các hạng mục bao phủ kiểm thử (TD3);
- Xây dựng các ca kiểm thử (TD4).
Mỗi điều kiện kiểm thử là một khía cạnh có thể kiểm thử được của một hạng mục kiểm thử, chẳng hạn như một hàm, sự chuyển đổi trạng thái, tính năng, thuộc tính chất lượng, hoặc phần tử cấu trúc được xác định như một cơ sở kiểm thử. Việc này có thể đạt được bằng cách thỏa thuận với các bên liên quan về các thuộc tính được kiểm thử hoặc bằng cách áp dụng một hoặc nhiều kỹ thuật thiết kế kiểm thử.
Ví dụ 2: Nếu điều kiện kết thúc kiểm thử đối với kiểm thử chuyển đổi trạng thái xác định đã đạt được độ bao phủ tất cả các trạng thái thì các điều kiện kiểm thử có thể là các trạng thái mà bao phủ hạng mục kiểm thử. Ví dụ khác về điều kiện kiểm thử là các lớp tương đương và các giá trị biên giữa chúng.
Các hạng mục bao phủ kiểm thử là thuộc tính của mỗi điều kiện kiểm thử có thể được bao phủ trong quá trình kiểm thử. Một điều kiện kiểm thử có thể là cơ sở cho một hoặc nhiều hạng mục bao phủ kiểm thử.
Ví dụ 3: Nếu một biến cụ thể được xác định là một điều kiện kiểm thử thì các hạng mục bao phủ kiểm thử tương ứng có thể chính là biên và có thể là hai bên của biên.
Ca kiểm thử là một tập các điều kiện tiên quyết, đầu vào (bao gồm cả hành động nếu có) và kết quả mong đợi.
Điều 5 hoặc 6 của tiêu chuẩn này không đưa ra hướng dẫn cụ thể về cách thức thực hiện các hoạt động trong quy trình Thiết kế và chuẩn bị kiểm thử của TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) đó là hoạt động TD1 (Xác định các tập tính năng), TD5 (Tập hợp các bộ kiểm thử) và TD6 (Xác định các thủ tục kiểm thử) vì các hoạt động này tương tự đối với tất cả các kỹ thuật kiểm thử.
Hình 1 - Quy trình thiết kế và chuẩn bị kiểm thử được trình bày trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013)
ISO/IEC/TR 19759 (SWEBOK) định nghĩa hai kiểu yêu cầu: yêu cầu về chức năng và yêu cầu về chất lượng. ISO/IEC 25010 định nghĩa tám đặc tính chất lượng phần mềm (bao gồm cả tính năng) có thể được sử dụng để xác định các kiểu kiểm thử có thể được áp dụng để kiểm thử một hạng mục kiểm thử cụ thể. Phụ lục A ánh xạ các kỹ thuật thiết kế kiểm thử mà áp dụng cho các đặc tính chất lượng kiểm thử được định nghĩa trong ISO/IEC 25010.
Những thực hành về kỹ thuật kiểm thử dựa trên kinh nghiệm như kiểm thử thăm dò và những thực hành về các kỹ thuật kiểm thử khác như kiểm thử dựa trên mô hình không được trình bày trong tiêu chuẩn này, tiêu chuẩn này chỉ mô tả các kỹ thuật thiết kế ca kiểm thử. Những thực hành về kiểm thử như kiểm thử thăm dò được trình bày trong TCVN 12849-1:2020 (ISO/IEC/IEEE 29119-1:2013).
Các mẫu tải liệu kiểm thử và các ví dụ về tài liệu kiểm thử được tạo ra trong quá trình kiểm thử được quy định trong tiêu chuẩn TCVN 12849-3:2020 (ISO/IEC/IEEE 29119-3:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 3: Tài liệu kiểm thử. Các kỹ thuật kiểm thử trong tiêu chuẩn này không mô tả cách thức xây dựng các ca kiểm thử (ví dụ: chúng không bao gồm các thông tin hoặc hướng dẫn về việc gán các ký hiệu nhận dạng (từ định danh), không bao gồm những mô tả về ca kiểm thử, những ưu tiên, truy xuất nguồn gốc, hoặc các điều kiện tiên quyết). Thông tin về cách thức xây dựng các ca kiểm thử có thể được trình bày trong TCVN 12849-3:2020 (ISO/IEC/IEEE 29119-3:2013).
Tiêu chuẩn này cung cấp cho các bên liên quan khả năng thiết kế các ca kiểm thử để kiểm thử phần mềm trong bất kỳ tổ chức nào.
KỸ THUẬT HỆ THỐNG VÀ PHẦN MỀM - KIỂM THỬ PHẦN MỀM - PHẦN 4: CÁC KỸ THUẬT KIỂM THỬ
Software and systems engineering - Software testing - Part 4: Test Techniques
Tiêu chuẩn này trình bày các kỹ thuật thiết kế kiểm thử có thể được sử dụng trong quy trình Thiết kế và chuẩn bị kiểm thử nêu trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử.
Tiêu chuẩn này là tài liệu sử dụng cho các kỹ sư kiểm thử, người quản lý kiểm thử, các nhà phát triển và người quản lý dự án, đặc biệt là những người chịu trách nhiệm quản lý và thực hiện kiểm thử phần mềm.
1.1 Mục đích sử dụng
Các yêu cầu trong tiêu chuẩn này được đưa ra trong Điều 5 và Điều 6. Các tổ chức hoặc các dự án cụ thể có thể không cần thiết phải sử dụng tất cả các kỹ thuật được định nghĩa trong tiêu chuẩn này. Do đó, các tổ chức hoặc các dự án chỉ cần lựa chọn một tập các kỹ thuật phù hợp với dự án hoặc tổ chức của họ. Có hai cách triển khai mà tổ chức hoặc cá nhân có thể xác nhận phù hợp với các điều khoản của tiêu chuẩn này - đó là phù hợp hoàn toàn và phù hợp có sửa đổi. Tổ chức hoặc cá nhân sẽ xác nhận xem liệu rằng sẽ phù hợp hoàn toàn hoặc phù hợp có sửa đối với tiêu chuẩn này.
1.2 Sự phù hợp hoàn toàn
Sự phù hợp hoàn toàn đạt được bằng cách chứng minh rằng tất cả các yêu cầu của tập các kỹ thuật được lựa chọn trong trong Điều 5 và/ hoặc tính độ bao phủ kiểm thử tương ứng trong Điều 6 được đáp ứng.
Ví dụ: Một tổ chức có thể lựa chọn chỉ phù hợp với một kỹ thuật được định nghĩa trong tiêu chuẩn này như kỹ thuật phân tích giá trị biên chẳng hạn. Trong kịch bản này, tổ chức sẽ chỉ phải yêu cầu cung cấp chứng cử rằng họ thỏa mãn các yêu cầu của kỹ thuật đó để xác nhận phù hợp với tiêu chuẩn này.
1.3 Sự phù hợp có sửa đổi
Sự phù hợp có sửa đổi đạt được bằng cách chứng minh rằng tập con các yêu cầu đã chọn từ một tập các kỹ các kỹ thuật được lựa chọn và/ hoặc các phương pháp tính độ bao phủ kiểm thử tương ứng đó đã được đáp ứng. Nếu cần phải sửa đổi, phải đưa ra được lý lẽ (hoặc trực tiếp hoặc tham chiếu) tại sao các yêu cầu của các kỹ thuật được nêu trong Điều 5 hoặc các phương pháp tính độ bao phủ kiểm thử được nêu trong Điều 6 của tiêu chuẩn này không được tuân theo. Tất cả những quyết định về việc sửa đổi phải được ghi lại cùng với lý do về việc sửa đổi, kể cả việc xem xét đến những rủi ro có thể áp dụng. Những quyết định về việc sửa đổi phải được các bên liên quan chấp thuận.
Các tài liệu viện dẫn sau rất cần thiết cho việc áp dụng tiêu chuẩn này. Đối với các tài liệu viện dẫn ghi năm công bố thì áp dụng phiên bản được nêu. Đối với các tài liệu viện dẫn không ghi năm công bố thì áp dụng phiên bản mới nhất, bao gồm cả các sửa đổi, bổ sung (nếu có).
TCVN 12849-1:2020 (ISO/IEC/IEEE 29119-1:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 1: Khái niệm và định nghĩa)
TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử
TCVN 12849-3:2020 (ISO/IEC/IEEE 29119-3:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 3: Tài liệu kiểm thử
ISO/IEC/IEEE 24765:2017 Systems and software engineering - Vocabulary (Kỹ thuật hệ thống và phần mềm - Từ vựng).
Tiêu chuẩn này sử dụng các thuật ngữ và định nghĩa nêu trong ISO/IEC/IEEE 24765 và các thuật ngữ, định nghĩa dưới đây:
CHÚ THÍCH: Việc sử dụng các thuật ngữ trong tiêu chuẩn này là để tiện tham khảo và không bắt buộc phải phù hợp với tiêu chuẩn này. Các thuật ngữ và định nghĩa dưới đây được đưa ra nhằm giúp người dùng nắm bắt và dễ đọc tiêu chuẩn này. Điều khoản này chỉ bao gồm các thuật ngữ then chốt liên quan đến tiêu chuẩn này. Điều khoản này không cung cấp danh sách đầy đủ các thuật ngữ kiểm thử. Tiêu chuẩn ISO/IEC/IEEE 24765 Kỹ thuật hệ thống và phần mềm - Từ vựng có thể được dùng tham chiếu cho các thuật ngữ không được định nghĩa tại Điều này.
4.1
Dạng Backus-Naur (Backus-Naur Form)
Siêu ngôn ngữ hình thức được sử dụng để định nghĩa cú pháp của một ngôn ngữ trong một định dạng văn bản.
4.2
Lựa chọn cơ sở (base choice)
Xem thuật ngữ giá trị cơ sở.
4.3
Giá trị cơ sở (base value)
Giá trị thạm số đầu vào được sử dụng trong “kiểm thử lựa chọn cơ sở”, các giá trị này thường được chọn là các giá trị tiêu biểu hoặc đại diện cho tham số đó. Do đó, nó cũng được gọi là lựa chọn cơ sở.
4.4
c-use
Xem thuật ngữ sử dụng dữ liệu để tính toán.
4.5
Sử dụng dữ liệu để tính toán (computation data use)
Sử dụng giá trị của một biến trong bất kỳ câu lệnh nào.
4.6
Điều kiện (Condition)
Biểu thức Boolean không chứa các toán tử Boolean.
Ví dụ: “A
4.7
Luồng điều khiển (Control flow)
Chuỗi các hoạt động được thực hiện trong khi thực thi một hạng mục kiểm thử.
4.8
Đường đi con của luồng điều khiển (control flow sub-path)
Chuỗi các câu lệnh có thể thực hiện trong một hạng mục kiểm thử.
4.9
Định nghĩa của dữ liệu (data definition)
Câu lệnh thực hiện gán một giá trị cho một biến. Định nghĩa của dữ liệu cũng được gọi là định nghĩa của một biến.
4.10
Cặp định nghĩa dữ liệu - sử dụng biến để tính toán (data definition c-use pair)
Cặp lệnh định nghĩa dữ liệu và lệnh sử dụng biến để tính toán, trong đó câu lệnh sử dụng biến để tính toán sử dụng giá trị được định nghĩa trong câu lệnh định nghĩa của dữ liệu.
4.11
Cặp định nghĩa dữ liệu- sử dụng biến để kiểm tra điều kiện (data definition p-use pair)
Cặp lệnh định nghĩa của dữ liệu và lệnh sử dụng biến để kiểm tra điều kiện, trong đó câu lệnh sử dụng biến để kiểm tra điều kiện sử dụng giá trị được định nghĩa trong câu lệnh định nghĩa của dữ liệu.
4.12
Cặp định nghĩa - sử dụng dữ liệu (data definition-use pair)
Cặp lệnh định nghĩa của dữ liệu và lệnh sử dụng dữ liệu, trong đó câu lệnh sử dụng dữ liệu sử dụng giá trị được định nghĩa trong câu lệnh định nghĩa của dữ liệu.
4.13
Sử dụng dữ liệu (data use)
Câu lệnh có thể thực thi sử dụng giá trị của một biến được truy cập.
4.14
Kết quả quyết định (decision outcome)
Kết quả của một quyết định (để xác định luồng điều khiển).
4.15
Quy tắc quyết định (decision rule)
Sự kết hợp của các điều kiện (hay còn gọi là các nguyên nhân) và các hành động (hay còn gọi là các kết quả) để tạo thành một kết quả cụ thể trong kỹ thuật kiểm thử bảng quyết định và đồ thị nguyên nhân - kết quả.
4.16
Cặp định nghĩa - sử dụng (definition-use pair)
Cặp lệnh định nghĩa của dữ liệu và lệnh sử dụng biến để kiểm tra điều kiện hoặc sử dụng biến để tính toán, trong đó lệnh sử dụng dữ liệu sử dụng giá trị được định nghĩa trong câu lệnh định nghĩa của dữ liệu.
4.17
Đường định nghĩa - sử dụng (definition-use path)
Đường đi con của luồng điều khiển xuất phát từ định nghĩa của một biến tới sử dụng biến để kiểm tra điều kiện (p-use) hoặc sử dụng biến để tính toán (c-use) của biến đó.
4.18
Điểm bắt đầu (entry point)
Điểm trong một hạng mục kiểm thử mà tại đó việc thực thi của hạng mục kiểm thử có thể bắt đầu.
CHÚ THÍCH 1 đối với điểm bắt đầu: Một điểm bắt đầu là một câu lệnh có thể thực thi được trong hạng mục kiểm thử mà có thể được lựa chọn bởi một quá trình bên ngoài như là điểm bắt đầu cho một hoặc nhiều đường qua hạng mục kiểm thử. Nó thường là câu lệnh có thể thực thi đầu tiên trong hạng mục kiểm thử.
4.19
Câu lệnh có thể thực thi được (executable statement)
Câu lệnh mà khi được viết, được dịch sang mã nguồn sẽ được thực thi theo thủ tục khi hạng mục kiểm thử đang chạy và có thể thực hiện một hành động trên dữ liệu chương trình.
4.20
Điểm kết thúc (exit point)
Câu lệnh có thể thực thi cuối cùng trong một hạng mục kiểm thử.
CHÚ THÍCH 1 đối với điểm kết thúc: Một điểm kết thúc là một điểm Cuối cùng của một đường đi qua một hạng mục kiểm thử, là một câu lệnh có thể thực thi được trong hạng mục kiểm thử mà hoặc là kết thúc hạng mục kiểm thử hoặc quay lại điều khiển một qui trình bên ngoài. Đây thường là câu lệnh có thể thực thi cuối cùng trong hạng mục kiểm thử.
4.21
p-use
Xem thuật ngữ sử dụng dữ liệu để kiểm tra các điều kiện.
4.22
Cặp P-V (P-V pair)
Kết hợp của một tham số hạng mục kiểm thử với một giá trị được gán cho tham số đó, được sử dụng như là một điều kiện kiểm thử và hạng mục bao phủ trong các kỹ thuật thiết kế kiểm thử tổ hợp.
4.23
Đường đi (Path)
Một chuỗi các câu lệnh thực thi trong một hạng mục kiểm thử.
4.24
Xác nhận (Predicate)
Biểu thức lô-gic trả về giá trị Đúng hoặc Sai, thông thường để đưa ra hướng đường thực thi trong mã nguồn.
4.25
Sử dụng dữ liệu để kiểm tra các điều kiện (predicate data use)
Sử dụng dữ liệu kết hợp với kết quả quyết định của predicate của một câu lệnh quyết định.
4.26
Đường đi con (sub-path)
Đường đi mà là một phần của một đường đi lớn hơn.
4.27
Mô hình kiểm thử (test model)
Đại diện của một hạng mục kiểm thử được sử dụng trong suốt quá trình thiết kế ca kiểm thử.
4.28
Định nghĩa của một biến (variable definition)
Xem phần thuật ngữ định nghĩa của dữ liệu.
5 Các kỹ thuật thiết kế kiểm thử
Tiêu chuẩn này định nghĩa các kỹ thuật thiết kế kiểm thử dựa trên đặc tả (Điều 5.2), kiểm thử dựa trên cấu trúc (Điều 5.3) và kiểm thử dựa trên kinh nghiệm (Điều 5.4). Trong kiểm thử dựa trên đặc tả, cơ sở để kiểm thử (ví dụ: các yêu cầu, các đặc tả, các mô hình hoặc nhu cầu người dùng) được sử dụng làm nguồn thông tin chính để thiết kế các ca kiểm thử. Trong kiểm thử dựa trên cấu trúc, cấu trúc của một hạng mục kiểm thử (ví dụ: mã nguồn hoặc cấu trúc của một mô hình) được sử dụng làm nguồn thông tin chính để thiết kế các ca kiểm thử. Trong ca kiểm thử dựa trên kinh nghiệm, kiến thức và kinh nghiệm của kỹ sư kiểm thử được sử dụng làm nguồn thông tin chính khi thiết kế ca kiểm thử. Đối với kiểm thử dựa trên đặc tả, kiểm thử dựa trên cấu trúc và kiểm thử dựa trên kinh nghiệm, cơ sở kiểm thử được sử dụng để tạo ra các kết quả mong đợi. Các kỹ thuật thiết kế kiểm thử này được sử dụng kết hợp sẽ tăng thêm hiệu quả kiểm thử.
Mặc dù các kỹ thuật được trình bày trong tiêu chuẩn này được phân loại thành: Kỹ thuật kiểm thử dựa trên cấu trúc, kỹ thuật kiểm thử dựa trên đặc tả hay kỹ thuật kiểm thử dựa trên kinh nghiệm, nhưng trong thực tế một trong số các kỹ thuật này có thể được dùng thay thế cho nhau (ví dụ: kiểm thử nhánh có thể được sử dụng để thiết kế các ca kiểm thử để kiểm thử các đường lô-gic thông qua giao diện đồ họa người dùng của một hệ thống dựa trên Internet). Ví dụ này được minh họa trong phụ lục E. Mặc dù mỗi kỹ thuật được định nghĩa độc lập với các kỹ thuật khác, nhưng trong thực tế chúng có thể được sử dụng kết hợp với các kỹ thuật khác.
Ví dụ: Các hạng mục bao phủ kiểm thử được xác định khi áp dụng phương pháp phân vùng tương đương có thể được sử dụng làm các tham số đầu vào của các ca kiểm thử được xây dựng theo phương pháp kiểm thử kịch bản.
Tiêu chuẩn này dùng các thuật ngữ Kiểm thử dựa trên đặc tả và kiểm thử dựa trên cấu trúc; các kỹ thuật kiểm thử này còn được gọi là “kiểm thử hộp đen” và “kiểm thử hộp trắng” (hoặc kiểm thử tính rõ ràng của hộp). Các thuật ngữ “hộp đen” và “hộp trắng” được đề cập ở đây muốn nói đến việc thấy rõ hoặc không thấy rõ cấu trúc bên trong của hạng mục kiểm thử. Trong kỹ thuật kiểm thử hộp đen, không nhìn thấy được cấu trúc bên trong của hạng mục kiểm thử (do đó được gọi là hộp đen). Trong khi đó, đối với kiểm thử hộp trắng, thấy được cấu trúc mã nguồn bên trong của chương trình. Một kỹ thuật khác được áp dụng bằng cách kết hợp kiến thức của kiểm thử dựa trên đặc tả và kiểm thử dựa trên cấu trúc được m gọi “kiểm thử hộp xám”.
Tiêu chuẩn này xác định cách mà các bước chung của quy trình Thiết kế và chuẩn bị kiểm thử như TD2 (xác định các điều kiện kiểm thử), TD3 (xác định các hạng mục bao phủ kiểm thử), bước TD4 (xây dựng các ca kiểm thử) được định nghĩa trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) (xem phần giới thiệu) sẽ được áp dụng cho từng kỹ thuật. Tiêu chuẩn này không đưa ra các định nghĩa cụ thể của các kỹ thuật mà nó miêu tả cách thức từng kỹ thuật sẽ sử dụng trong tất cả tình huống. Người sử dụng tiêu chuẩn này có thể tham chiếu phụ lục B, phụ lục C, phụ lục D và phụ lục E để xem các ví dụ chi tiết minh họa cách thức áp dụng các kỹ thuật thiết kế kiểm thử.
Các kỹ thuật thiết kế kiểm thử được định nghĩa trong tiêu chuẩn này được trình bày trong Hình 2. Các kỹ thuật được sử dụng bởi các nhà nghiên cứu hoặc nhóm những người kiểm thử không được đề cập trong tiêu chuẩn này.
Hình 2 - Các kỹ thuật thiết kế kiểm thử được trình bày trong tiêu chuẩn này
Trong số 6 hoạt động trong quy trình Thiết kế và chuẩn bị kiểm thử (được trình bày trong Hình 1), các kỹ thuật thiết kế kiểm thử cung cấp hướng dẫn cụ thể việc Xác định các điều kiện kiểm thử (TD2), xác định các hạng mục bao phủ kiểm thử (TD3) và xây dựng các ca kiểm thử (TD4). Do đó, mỗi kỹ thuật kiểm thử được định nghĩa theo các thuật ngữ của ba hoạt động này.
Có nhiều mức trong các bước TD2 (xác định các điều kiện kiểm thử), TD3 (xác định các hạng mục bao phủ kiểm thử), TD4 (xây dựng các ca kiểm thử). Trong mỗi kỹ thuật kiểm thử, thuật ngữ “mô hình” được sử dụng để mô tả việc chuẩn bị một hạng mục kiểm thử để xác định các điều kiện kiểm thử trong bước TD2 (ví dụ: mô hình luồng điều khiển được yêu cầu để xác định các điều kiện kiểm thử cho tất cả các kỹ thuật kiểm thử dựa trên cấu trúc). Trong một số trường hợp, có thể đòi hỏi sử dụng toàn bộ mô hình làm điều kiện kiểm thử, ngược lại trong một số trường hợp khác, chỉ cần sử dụng một phần của mô hình làm điều kiện kiểm thử.
Ví dụ 1: Trong kiểm thử chuyển đổi trạng thái, nếu yêu cầu phải bao phủ tất cả các trạng thái thì có thể sử dụng môt mô hình trạng thái đầy đủ làm điều kiện kiểm thử. Ngoài ra, nếu yêu cầu phải bao phủ các quá trình chuyển đổi giữa các trạng thái thì mỗi một quá trình chuyển đổi có thể được coi như là một điều kiện kiểm thử.
Ngoài ra, do một số kỹ thuật kiểm thử dùng chung các khái niệm cơ bản nên các định nghĩa có thể có các đề mục giống nhau.
Ví dụ 2: Cả hai kỹ thuật phân vùng tương đương và phân tích giá trị biên đều đề cập đến khái niệm về phân lớp tương đương.
Trong bước xây dựng các ca kiểm thử (TD4) của mỗi một kỹ thuật thiết kế kiểm thử, các ca kiểm thử được xây dựng có thể “hợp lệ" (có nghĩa là chúng chứa các giá trị đầu vào mà hạng mục kiểm thử trả về kết quả là đúng) hoặc “không hợp lệ” (có nghĩa là chúng chứa ít nhất một giá trị đầu vào mà hạng mục kiểm thử tra về kết quả là sai bằng một thông báo lỗi). Trong một số kỹ thuật, chẳng hạn như kỹ thuật phân vùng tương đương và kỹ thuật phân tích giá trị biên, các ca kiểm thử không hợp lệ thường được xây dựng bằng phương pháp “một - một” để tránh việc che giấu lỗi để đảm bảo mỗi ca kiểm thử chỉ có một giá trị đầu vào không hợp lệ, trong khi đó các ca kiểm thử hợp lệ được xây dựng theo phương pháp “giảm tối thiểu” nhằm làm giảm tối số lượng các ca kiểm thử mà vẫn bao phủ hết các hạng mục bao phủ kiểm thử hợp lệ (xem Điều 5.2.1.3 và 5.2.3.3).
CHÚ THÍCH: Các ca kiểm thử không hợp lệ có thể được gọi là “các ca kiểm thử sai”.
Mặc dù các kỹ thuật kiểm thử định nghĩa trong tiêu chuẩn này được trình bày trong các điều khoản riêng (như thể chúng không liên quan với nhau) nhưng trong thực tế chúng lại có thể kết hợp với nhau khi áp dụng.
Ví dụ 3: Kỹ thuật phân tích giá trị biên có thể được sử dụng để lựa chọn các giá trị đầu vào kiểm thử, kỹ thuật kiểm thử từng cặp có thể được sử dụng để thiết kế các ca kiểm thử từ các giá trị đầu vào kiểm thử. Kỹ thuật phân vùng tương đương được có thể được sử dụng để lựa chọn các phân lớp và các lớp dùng cho phương pháp cây phân loại và kiểm thử được lựa chọn có thể được sử dụng để xây dựng các ca kiểm thử từ các lớp.
Các kỹ thuật kiểm thử được trình bày trong tiêu chuẩn này cũng có thể dược sử dụng kết hợp với các kiểu kiểm thử được trình bày trong phụ lục A. Ví dụ, kỹ thuật phân vùng tương đương có thể được sử dụng để xác định nhóm người dùng (các điều kiện kiểm thử) và người dùng đại diện (các hạng mục bao phủ kiểm thử) từ các nhóm trong các ca kiểm thử được kiểm thử trong khi kiểm thử tính khả dụng.
Điều 5 trình bày các định nghĩa về các kỹ thuật kiểm thử. Điều 6 trình bày các phương pháp tính độ bao phủ tương ứng với từng kỹ thuật kiểm thử. Các ví dụ minh họa cho mỗi kỹ thuật được trình bày cụ thể. trong các phụ lục B, C, D và E. Mặc dù các ví dụ của mỗi một kỹ thuật kiểm thử minh họa việc áp dụng các kỹ thuật theo phương pháp thủ công, tuy nhiên trong thực tế, có thể sử dụng kiểm thử tự động để hỗ trợ một vài kiểu thiết kế và thực thi kiểm thử (ví dụ các công cụ phân tích độ bao phủ câu lệnh có thể được sử dụng để hỗ trợ kỹ thuật kiểm thử dựa trên cấu trúc). Phụ lục A trình bày các ví dụ về cách thức áp dụng các kỹ thuật thiết kế kiểm thử định nghĩa trong chuẩn này có thể được áp dụng để kiểm thử các đặc tính chất lượng phần mềm định nghĩa trong tiêu chuẩn ISO/IEC 25010.
5.2 Các kỹ thuật kiểm thử dựa trên đặc tả
5.2.1.1 Xác định các điều kiện kiểm thử (TD2)
Kỹ thuật phân vùng tương đương (BS 7925-2:1998, Myers đưa ra năm 1979) sử dụng một mô hình hạng mục kiểm thử để phân chia đầu vào và đầu ra thành các vùng tương đương (còn được gọi là “các phân vùng” hay “các lớp tương đương”), trong đó mỗi phân vùng tương đương sẽ được coi là một điều kiện kiểm thử. Những phân vùng tương đương này sẽ được xác định từ cơ sở kiểm thử, trong đó mỗi phân vùng được lựa chọn sao cho tất cả các giá trị nằm trong phân vùng tương đương có thể được xử lý như nhau bởi các hạng mục kiểm thử (tức là chúng có thể được coi là “tương đương”). Kỹ thuật phân vùng tương đương có thể tạo ra cho cả các giá trị đầu vào và đầu ra hợp lệ và không hợp lệ.
Ví dụ: Đối với một hạng mục kiểm thử coi các ký tự là chữ cái in thường là đầu vào (hợp lệ), có thể xác định được các phân vùng tương đương đầu vào không hợp lệ bao gồm các phân vùng tương đương chứa các số nguyên, số thực, các chữ cái in hoa, các biểu tượng và các ký tự điều khiển tùy thuộc vào yêu cầu mức độ chính xác trong quá trình kiểm thử.
CHÚ THÍCH 1: Đối với các phân vùng tương đương đầu ra, các phân vùng đầu vào tương ứng được tạo ra dựa trên quy trình được miêu tả trong đặc tả của các hạng mục kiểm thử. Các đầu vào kiểm thử sau đó được lựa chọn từ các phân vùng đầu vào.
CHÚ THÍCH 2: Các phân vùng đầu ra không hợp lệ tương ứng với bất kỳ đầu ra nào mà chưa được xác định rõ ràng. Do không xác định được nên việc nhận biết các phân vùng tương đương thường dựa trên tính chủ quan của kỹ sư kiểm thử. Dạng thiết kế kiểm thử mang tính chủ quan này có thể xuất hiện khi áp dụng các kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm như đoán lỗi.
CHÚ THÍCH 3: Phân tích miền (Beizer 1995) được coi là sự kết hợp của kỹ thuật phân vùng tương đương và phân tích giá trị biên.
5.2.1.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi phân vùng tương đương được coi là một hạng mục bao phủ kiểm thử (tức là đối với kỹ thuật phân vùng tương đương thì các điều kiện kiểm thử và các hạng mục bao phủ kiểm thử chính là các phân vùng tương đương nhau).
5.2.1.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các hạng mục bao phủ kiểm thử (tức là các phân vùng tương đương). Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn một phương pháp dưới đây khi kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi các ca kiểm thử, có hai phương pháp phổ biến (được trình bày trong BS 7925-2: 1998; Myers 1979) là:
1) Phương pháp phân vùng tương đương một - một, trong đó xây dựng một ca kiểm thử bao phủ một vùng tương đương cụ thể;
2) Phương pháp phân vùng tương đương tối thiểu hóa, trong đó xây dựng một số lượng tối thiểu các ca kiểm thử bao phủ tất cả các phân vùng tương đương ít nhất một lần.
CHÚ THÍCH: Các phương pháp khác dùng để kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi ca kiểm thử được mô tả trong Điều 5.2.5 (các kỹ thuật thiết kế kiểm thử tổ hợp).
b) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có dựa trên phương pháp đã chọn ở bước a);
c) Xác định giá trị đầu vào để thực hiện các hạng mục bao phủ kiểm thử được bao phủ bởi ca kiểm thử và xác định giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác theo yêu cầu của các ca kiểm thử;
d) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sử kiểm thử;
e) Lặp lại các bước từ b) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.2 Phương pháp cây phân loại
5.2.2.1 Xác định các điều kiện kiểm thử (TD2)
Phương pháp cây phân loại (được Grochtmann và Grimm đưa ra năm 1993) sử dụng một mô hình các hạng mục kiểm thử để phân vùng các đầu vào của hạng mục kiểm thử và biểu diễn chúng dưới dạng sơ đồ cây được gọi là cây phân loại. Đầu vào của các hạng mục kiểm thử được phân chia thành "các phân lớp", trong đó mỗi phân lớp bao gồm một tập các "lớp" rời nhau (không chồng chéo nhau) và thường gọi là các lớp con, các phân lớp này phải đầy đủ (gồm tất cả các phân lớp của tất cả các đầu vào có liên quan đến miền hạng mục kiểm thư đã được mô hình hóa và đã được xác định). Đối với phương pháp cây phân loại, mỗi phân lớp sẽ là một điều kiện kiểm thử. "Các lớp" là kết quả của quá trình phân chia các phân lớp, các lớp này có thể được phân chia nhỏ thành các "lớp con" tùy thuộc vào mức độ chính xác yêu cầu trong khi kiểm thử. Các phân lớp và các lớp có thể được xây dựng cho cả dữ liệu đầu vào hợp lệ và không hợp lệ, tùy thuộc vào mức độ bao phủ kiểm thử quy định. Mối quan hệ thứ bậc giữa các phân lớp, các lớp và các lớp con được biểu diễn dưới dạng một mô hình cây, trong đó miễn đầu vào của các hạng mục kiểm thử là nút gốc, các phân lớp là các nút nhánh, và các lớp hoặc lớp con là các nút lá.
CHÚ THÍCH: Quá trình phân vùng trong phương pháp cây phân loại tương tự như phân vùng tương đương. Sự khác biệt chính là trong phương pháp cây phân loại, các phân vùng (là các phân lớp và các lớp) phải hoàn toàn tách rời nhau, trong khi đó ở phân vùng tương đương, các phân lớp và các lớp có thể chồng lấn nhau tùy thuộc vào cách kỹ thuật phân vùng được áp dụng. Ngoài ra, phương pháp cây phân loại phải thiết kế một cây phân loại mà mô tả trực quan về các điều kiện kiểm thử.
5.2.2.2 Xác định các hạng mục bao phủ kiểm thử(TD3)
Các hạng mục bao phủ kiểm thử được xác định bằng cách kết hợp các lớp bằng một phương pháp kết hợp được lựa chọn dưới đây.
Ví dụ: Có hai phương pháp dùng để kết hợp các lớp vào trong các hạng mục bao phủ kiểm thử, đó là:
- Phương pháp tối thiểu hóa, trong đó các lớp được đưa ra trong các hạng mục bao phủ kiểm thử để tạo ra một số lượng tối thiểu các hạng mục bao phủ kiểm thử mà bao phủ tất cả các lớp ít nhất một lần;
- Phương pháp tối đa hóa, trong đó các lớp được đưa ra trong các hạng mục bao phủ kiểm thử để mỗi kết hợp của các lớp được bao phủ bởi ít nhất một hạng mục bao phủ kiểm thử.
CHÚ THÍCH 1: Các phương pháp khác dùng để kết hợp các hạng mục bao phủ kiểm thử được mô tả trong Điều 5.2.5 (các kỹ thuật thiết kế kiểm thử tổ hợp).
CHÚ THÍCH 2: Các hạng mục bao phủ kiểm thử thường được minh họa bằng một bảng kết hợp (xem hình B.5 trong điều B.2.2.5).
CHÚ THÍCH 3: Bản xuất bản đầu tiên của phương pháp cây phân loại (được Grochtmann và Grimm đưa ra năm 1993) sử dụng các thuật ngữ "tối thiểu" và "tối đa" thay cho "tối thiểu hóa" và" tối đa hóa".
5.2.2.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các hạng mục bao phủ kiểm thử. Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Dựa trên phương pháp kết hợp các lớp được tạo ra trong bước TD3, kết hợp các ca kiểm thử hiện có vẫn chưa được bao phủ bởi một ca kiểm thử nào;
b) Xác định các giá trị đầu vào cho bất kỳ lớp nào mà chưa có một giá trị được gán;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.3.1 Xác định các điều kiện kiểm thử (TD2)
Phân tích giá trị biên (BS 7925-2: 1998; được Myers đưa ra năm 1979) sử dụng một mô hình hạng mục kiểm thử để phân chia các đầu vào và đầu ra của hạng mục kiểm thử thành cac tập và các tập con (phân vùng và phân vùng con) có các biên xác định, trong đó mỗi biên là một điều kiện kiểm thử. Các biên sẽ được xác định từ cơ sở kiểm thử.
Ví dụ: Đối với một phân vùng được xác định là các số nguyên từ 1 đến 10, có hai biên là 1 va 10. Trong đó biên dưới là 1 và biên trên là 10, đây chính là những điều kiện kiểm thử.
CHÚ THÍCH: Đối với các biên đầu ra, các phân vùng đầu vào tương ứng được xác định dựa trên phương thức được mô tả trong đặc tả của các hạng mục kiểm thử. Đầu vào kiểm thử sau đó được lựa chọn từ các phân vùng đầu vào.
5.2.3.2 Xác định các hạng mục bao phủ kiểm thử(TD3)
Áp dụng một trong hai tùy chọn dưới đây khi xác định các hạng mục bao phủ kiểm thử:
- Kiểm thử hai giá trị biên;
- Kiểm thử ba giá trị biên.
Đối kiểm thử hai giá trị biên, hai hạng mục bao phủ kiểm thử được xác định cho mỗi biên (điều kiện kiểm thử) tương ứng với các giá trị trên biên và cách phía ngoài biên của phân vùng tương đương một khoảng cách. Khoảng cách này sẽ được xác định là giá trị nhỏ nhất cho các kiểu dữ liệu được xem xét.
Đối với kiểm thử ba giá trị biên, ba hạng mục bao phủ kiểm thử được xác định cho mỗi biên (điều kiện kiểm thử) tương ứng với các giá trị trên biên và cách mỗi bên của biên của phân vùng tương đương một khoảng cách. Khoảng cách này sẽ được xác định là giá trị nhỏ nhất cho các kiểu dữ liệu được xem xét.
CHÚ THÍCH 1: Một số phân vùng có thể chỉ có một biên duy nhất được xác định trong cơ sở kiểm thử. Ví dụ, phân vùng thuộc dạng số "tuổi ≥ 70" có một biên dưới nhưng không có biên trên. Trong một vài trường hợp một giá trị được tạo ra khi thực thi thực tế có thể được sử dụng làm giá trị biên, chẳng hạn như giá trị lớn nhất được chấp nhận bởi các trường đầu vào (những quyết định như vậy cần phải được ghi vào văn bản, ví dụ như ghi vào trong tài liệu đặc tả kiểm thử).
CHÚ THÍCH 2: Kiểm thử hai giá trị biên thích hợp với hầu hết các tình huống; Tuy nhiên, kiểm thử ba giá trị biên có chỉ thể được dùng cho một số trường hợp (ví dụ như kiểm thử tính chính xác để kiểm tra xem liệu có lỗi nào xuất hiện khi kỹ sư kiểm thử và lập trình viên xác định các biên của các biến trong các hạng mục kiểm thử không).
CHÚ THÍCH 3: Trong cả kiểm thử hai giá trị biên và kiểm thứ ba giá trị biên, các phân vùng tiếp giáp nhau (tức là các phân vùng có chung một biên) sẽ có các hạng mục bao phủ kiểm thử giống hệt nhau, trong trường hợp này, thực tế chỉ thực hiện các giá trị giống nhau này một lần. Đối với ví dụ về các biên giống nhau, xem điều B.2.3.4.3.
5.2.3.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các hạng mục bao phủ kiểm thử. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn một phương pháp dưới đây khi kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi các ca kiểm thử, có hai phương pháp phổ biến (BS 7925-2: 1998; Myers 1979) là:
1) Phương pháp phân tích giá trị biên một - một, tức là xây dựng một ca kiểm thử để thực hiện một và chỉ một giá trị biên cụ thể;
2) Phương pháp phân tích giá trị biên tối thiểu hóa, tức là xây dựng một số lượng tối thiểu các ca kiểm thư để bao phủ tất cả các giá trị biên ít nhất một lần.
CHÚ THÍCH 1: Đối với phương pháp phân tích giá trị biên tối thiểu hóa, mỗi ca kiểm thử có thể bao phủ nhiều hạng mục bao phủ kiểm thử.
CHÚ THÍCH 2: Các phương pháp khác dùng để kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi ca kiểm thử được mô tả trong 5.2.5 (kỹ thuật thiết kế kiểm thử tổ hợp).
b) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có dựa trên phương pháp lựa chọn trong bước a);
c) Xác định giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác theo yêu cầu bởi các trường hợp thử mà chưa được lựa chọn ở bước b);
d) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho các cơ sở kiểm thử;
e) Lặp lại các bước b) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.4.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử cú pháp (Beizer 1995; Burnstein 2003) sử dụng một mô hình các đầu vào một hạng mục kiểm thử làm cơ sở để thiết kế kiểm thử. Mô hình cú pháp này được đại diện là một số quy tắc, trong đó mỗi quy tắc định nghĩa một định dạng của một tham số đầu vào bằng các thuật ngữ như “chuỗi”, "lặp đi lặp lại của", hoặc "những lựa chọn giữa" các thành phần trong cú pháp. Cú pháp này có thể được biểu diễn nguyên bản hoặc dưới dạng sơ đồ. Trong kiểm thử cú pháp, điều kiện kiểm thử sẽ là toàn bộ hoặc một phần mô hình của đầu vào các hạng mục kiểm thử.
Ví dụ 1: Backus Naur-form là siêu ngôn ngữ chính thức có thể được sử dụng để định nghĩa cú pháp cho một mục kiểm thử dưới một định dạng văn bản.
Ví dụ 2: Có thể sử dụng một cây cú pháp trừu tượng để biểu diễn cú pháp chính thức dưới dạng sơ đồ.
5.2.4.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử cú pháp, các hạng mục bao phủ kiểm thử được xác định dựa trên hai mục tiêu: kiểm thử những trường hợp đúng, trong đó các hạng mục bao phủ kiểm thử được xác định để bao phủ cú pháp hợp lệ, và kiểm thử những trường hợp không hợp lệ, trong đó các hạng mục bao phủ kiểm thử được xác định để cố ý vi phạm các quy tắc của cú pháp. Đối với kiểm thử những trường hợp đúng, các hạng mục bao phủ kiểm thử sẽ là "những tùy chọn" của cú pháp, còn đối với kiểm thử những trường hợp không hợp lệ, các hạng mục bao phủ kiểm thử sẽ là “những đột biến” của cú pháp.
Có thể sử dụng các hướng dẫn dưới đây để xác định "các tùy chọn" (có thể sử dụng những hướng dẫn thay thế nếu thích hợp):
- Khi mà lựa chọn được quy định bằng cú pháp, một "tùy chọn" được tạo ra cho mỗi trường hợp cung cấp cho sự lựa chọn đó;
Ví dụ 1: Đối với các tham số đầu vào "màu = xanh dương I đỏ I xanh lá" (trong đó dấu I đại diện cho toán tử Boolean "OR"), ba tùy chọn "xanh dương","đỏ" và "xanh lá" chính là các hạng mục bao phủ kiểm thử.
- Khi mà một lặp lại được quy định bằng cú pháp, ít nhất hai "tùy chọn" được tạo ra cho lặp lại đó; một với số lần lặp tối thiểu và một với nhiều hơn số lần lặp tối thiểu;
Ví dụ 2: Đối với tham số đầu vào là "chữ cái = [A - z I a - z] + "(trong đó dấu "+" đại diện cho "một hoặc nhiều"), hai tùy chọn "một chữ cái" và "nhiều hơn một chữ cái" chính là các hạng mục bao phủ kiểm thử.
Khi mà việc lặp lại được quy định với số lần lặp tối đa, ít nhất hai "tùy chọn" được tạo ra cho lặp lại đó; một với số lần lặp tối đa và một với nhiều hơn số lần lặp tối đa.
Ví dụ 3: Đối với các tham số đầu vào là "chữ cái = (A - z I a - z]100" (trong đó “100” đại diện cho một chữ cái có thể được lựa chọn lên đến 100 lần), hai tùy chọn đó là "100 chữ cái" và "trên 100 chữ cái" chính là các hạng mục bao phủ kiểm thử.
Có thể sử dụng các hướng dẫn dưới đây để tạo ra "những đột biến" (có thể sử dụng những hướng dẫn thay thế nếu thích hợp);
- Đối với bất kỳ đầu vào nào, cú pháp đã định nghĩa có thể đột biến gây ra các đầu vào không hợp lệ ("đột biến").
Ví dụ 4: Đối với các tham số đầu vào "màu = xanh dương I đỏ I xanh lá", nếu lựa chọn "màu vàng" sẽ là "đột biến" vì trong các tham số đầu vào không có "màu vàng". Đây được coi là một đột biến và đó chính là hạng mục bao phủ kiểm thử. Những đột biến khác được trình bày trong điều B.2.4.5.
5.2.4.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử đối với kiểm thử cú pháp được xây dựng để bao phủ các tùy chọn và các đột biến. Sử dụng các bước dưới đây khi xây dựng cac ca kiểm thử:
a) Lựa chọn một phương pháp dưới đây khi kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi các ca kiểm thử, có đó hai phương pháp phổ biến là:
1) Phương pháp một - một, trong đó mỗi ca kiểm thử được tạo ra để thực hiện duy nhất một tùy chọn, một lần lặp và/ hoặc một đột biến cụ thể;
2) Phương pháp tối thiểu hóa, trong đó các tùy chọn, các lần lặp và/ hoặc các đột biến có trong các ca kiểm thử sao cho chỉ cần tạo ra một số lượng tối thiểu các ca kiểm thử mà bao phủ được tất cả các tùy chọn, các lần lặp và/ hoặc các đột biến ít nhất một lần.
CHÚ THÍCH: Các phương pháp khác dùng để kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi ca kiểm thử được mô tả trong Điều 5.2.5 (các kỹ thuật thiết kế kiểm thử tổ hợp).
b) Lựa chọn các hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có;
c) Xác định giá trị đầu vào để thực hiện (các) hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử và xác định giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác theo yêu cầu của ca kiểm thử;
d) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
e) Lặp lại các bước từ b) đến d) cho đến khi tạo ra tất cả các tùy chọn, những lặp đi lặp lại và / hoặc các đột biến cú pháp.
5.2.5 Các kỹ thuật thiết kế kiểm thử tổ hợp
5.2.5.1 Tổng quan
Các kỹ thuật thiết kế kiểm thử tổ hợp được sử dụng để xây dựng một tập con các ca kiểm thử có ý nghĩa và có thể quản lý được mà bao phủ các điều kiện kiểm thử và các hạng mục bao phủ kiểm thử có thể tạo ra trong khi kiểm thử. Các tổ hợp được xác định theo các tham số hạng mục kiểm thử và các giá trị mà các tham số này có thể có được. Nếu có nhiều tham số (mỗi tham số có nhiều giá trị rời rạc) ảnh hưởng lẫn nhau, kỹ thuật này cho phép giảm đáng kể số lượng các ca kiểm thử quy định mà không ảnh hưởng đến độ bao phủ chức năng.
5.2.5.2 Xác định các điều kiện kiểm thử (TD2)
Các tham số hạng mục kiểm thử biểu diễn các khía cạnh cụ thể của các hạng mục kiểm thử có liên quan đến kiểm thử, nó tương ứng với các tham số đầu vào đối với các hạng mục kiểm thử, cũng có thể sử dụng các khía cạnh khác của hạng mục kiểm thử.
Ví dụ 1: Trong kiểm thử cấu hình, tham số có thể là các yếu tố môi trường khác nhau, chẳng hạn như hệ điều hành và trình duyệt.
Mỗi tham số hạng mục kiểm thử có thể đưa ra các giá trị khác nhau. Để sử dụng trong kỹ thuật này thì tập các giá trị phải là hữu hạn và có thể quản lý được. Một số tham số hạng mục kiểm thử có thể bị hạn chế để chỉ đưa ra một tập nhỏ các giá trị trong khi các tham số hạng mục kiểm thử khác có thể ít bị hạn chế hơn khi đưa ra một tập nhỏ các giá trị.
Ví dụ 2: Một tham số hạng mục kiểm thử có thể hạn chế đến một số nhỏ các giá trị, đó là tham số "ngày trong tuần" chỉ có thể có bảy giá trị cụ thể đó là "[Thứ hai I Thứ ba I Thứ tư I Thứ năm I Thứ sáu I Thứ bảy I Chủ nhật]".
Ví dụ 3: Một tham số hạng mục kiểm thử ít bị hạn chế hơn là một tham số bao gồm bất kỳ số thực nào mà tồn tại một dãy số vô hạn.
Đối với các tham số hạng mục kiểm thử không bị hạn chế, cần phải áp dụng các kỹ thuật thiết kế kiểm thử khác, chẳng hạn như phân vùng tương đương hoặc phân tích giá trị biên để giảm một tập lớn các giá trị có thể đối với một tham số xuống một tập con có thể quản lý được.
Các điều kiện kiểm thử đối với kiểm thử tổ hợp tương tự với tất cả các kỹ thuật thiết kế kiểm thử tổ hợp; mỗi điều kiện thử sẽ là một tham số hạng mục kiểm thử được lựa chọn (P) với một giá trị cụ thể (V), sẽ tạo thành một cặp PV.
5.2.5.3 Kiểm thử tất cả các tổ hợp
5.2.5.3.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử “tất cả các tổ hợp” (Grindal, Offutt and Andler đưa ra năm 2005), các hạng mục bao phủ kiểm thử sẽ là các phần tử của một tập các tổ hợp khác nhau của các cặp PV sao cho mỗi tham số được bao phủ ít nhất một lần trong tập các tổ hợp này.
5.2.5.3.2 Xây dựng các ca kiểm thử (TD4)
Xây dựng các ca kiểm thử trong đó mỗi ca kiểm thử thực thi một tổ hợp duy nhất các cặp PV. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có chưa được bao phủ bởi một ca kiểm thử nào;
b) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho cơ sở kiểm thử;
c) Lặp lại các bước từ a) và b) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Số lượng tối thiểu các ca kiểm thử cần thiết để đạt được 100% độ bao kiểm thử tất cả các tổ hợp tương ứng với số cặp PV được kếi hợp cho từng tham số hạng mục kiểm thử.
5.2.5.4 Kiểm thử từng cặp
5.2.5.4.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử từng cặp (Grindal, Offutt và Andler đưa ra năm 2005), các hạng mục bao phủ kiểm thử là các cặp độc nhất của cặp PV, trong đó mỗi cặp PV trong một cặp dùng cho một tham số hạng mục kiểm thử khác nhau. Thay vì tất cả các tổ hợp có thể có của các tham số (như đã quy định đối với kiểm thử tất cả các hợp), kỹ thuật này bao gồm tất cả các cặp giá trị được chọn trong toàn bộ tập các giá trị, do đó việc thực hiện các hạng mục kiểm thử có ít ca kiểm thử hơn sẽ rất hiệu quả. Kiểm thử từng cặp cũng được gọi là là kiểm thử "tất cả các cặp".
5.2.5.4.2 Xây dựng các ca kiểm thử (TD4)
Trước tiên phải xác định các cặp PV, sau đó sẽ xây dựng các ca kiểm thử để thực hiện các cặp PV, trong đó mỗi ca kiểm thử thực thi một hoặc nhiều cặp PV. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có, trong đó mỗi cặp của các cặp PV bao gồm một cặp các giá trị tham số khác nhau mà chưa được bao gồm trong một ca kiểm thử nào;
b) Xác định các giá trị hợp lệ tùy ý cho bất kỳ tham số khác có mặt trong các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi tất cả các cặp khác nhau của cặp PV đã được thực hiện.
Không dễ để tính toán được số lượng tối thiểu các ca kiểm thử quy định để đạt được 100% độ bao phủ kiểm thử từng cặp. Một tập gần như tối ưu các trường hợp kiểm có thể được coi là chấp nhận được và có thể được tính toán bằng cách sử dụng một trong ba tùy chọn dưới đây:
- Xác định một tập gần như tối ưu các ca kiểm thử bằng cách sử dụng một thuật toán;
- Sử dụng một công cụ tự động (thực hiện một thuật toán) để xác định một tập gần như tối ưu các ca kiểm thử;
- Sử dụng các mảng trực giao (Mandl 1985) để xác định một tập gần như tối ưu các ca kiểm thử.
5.2.5.5 Kiểm thử từng lựa chọn
5.2.5.5.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử từng lựa chọn (hoặc kiểm thử 1-wise) (Grindal, offutt và Andler đưa ra năm 2005), các hạng mục bao phủ kiểm thử là các phần tử của một tập các cặp PV sao cho mỗi giá trị tham số có mặt ít nhất một lần trong tập này.
5.2.5.5.2 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các cặp PV, trong đó mỗi ca kiểm thử thực thi một hoặc nhiều cặp PV mà trước đó chưa có mặt trong một ca kiểm thử nào. Sử dụng các bước dưới đây để xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có, trong đó ít nhất một hạng mục bao phủ kiểm thử được lựa chọn có mặt trong một ca kiểm thử trước đó;
b) Xác định các giá trị hợp lệ tùy ý cho bất kỳ tham số khác có mặt trong các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
Số lượng tối thiểu các ca kiểm thử cần thiết để đạt được 100% độ bao phủ kiểm thử từng lựa chọn tương ứng với số lượng tối đa các giá trị mà bất kỳ một trong những tham số hạng mục kiểm thử có thể có.
5.2.5.6 Kiểm thử lựa chọn cơ sở
5.2.5.6.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử lựa chọn cơ sở (Grindal, offutt và Andler đưa ra năm 2005), các hạng mục bao phủ kiểm thử la các tập chứa các cặp PV cho từng tham số đầu vào, trong đó tất cả các tham số, ngoại trừ một tham số được thiết lập làm giá trị “cơ sở” và tham số cuối cùng được thiết lập là một trong các giá trị hợp lệ khác.
CHÚ THÍCH: Có một số phương pháp lựa chọn các giá trị cơ sở cho từng tham số. Ví dụ, các giá trị cơ sở này có thể được lựa chọn từ hồ sơ hoạt động, từ các đường đi tiêu biểu trong kiểm thử kịch bản, từ các hạng mục bao phủ kiểm thử được xác định trong quá trình phân vùng tương đương hoặc từ các giá trị mặc định (được sử dụng thường xuyên nhất) cho các tham số.
5.2.5.6.2 Xây dựng các ca kiểm thử (TD4)
Trước tiên phải xác định được các cặp PV, tiếp đến lựa chọn những giá trị cơ sở cho mỗi tham số. Các ca kiểm thử sẽ được xây dựng bằng cách thiết lập tất cả các tham số đầu vào nhưng để lại hai tham số, trong đó một tham số thiết lập là giá trị cơ sở của nó và tham số còn lại thiết lập là một giá trị hợp lệ cho đến khi đạt được mức độ bao phủ kiểm thử các cặp PV. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xây dựng các ca kiểm thử cơ sở bằng cách thiết lập từng tham số là giá trị "cơ sở";
b) Tạo ra một ca kiểm thử mới bằng cách thiết lập một tham số là giá trị hợp lệ (không phải giá trị cơ sở trong khi vẫn giữ được một tập còn lại các tham số cho các giá trị lựa chọn cơ sở;
c) Xác định các kết quả mong đợi của các ca kiểm thử mới bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước b) và c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.6 Kiểm thử bảng quyết định
5.2.6.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử bảng quyết định (được nêu trong BS 7925-2:1998, Myers 1979) sử dụng một mô hình các mối quan hệ lô-gic (các quy tắc quyết định) giữa các điều kiện (các nguyên nhân) và các hành động (các kết quả) cho hạng mục kiểm thử dưới dạng bảng quyết định, trong đó:
Mỗi điều kiện Boolean xác định hai phân vùng tương đương đầu vào cho hạng mục kiểm thử, một tương ứng với các trường hợp "đúng", và một tương ứng với các trường hợp "sai";
- Mỗi hành động là một kết quả mong đợi hoặc là sự kết hợp các kết quả cho hạng mục kiểm thử được biểu diễn như một điều kiện Boolean;
- Một bộ các quy tắc quyết định xác định các mối quan hệ cần thiết giữa các điều kiện và các hành động.
Trong kiểm thử bảng quyết định, các điều kiện kiểm thử sẽ là các điều kiện và các hành động.
CHÚ THÍCH: Nếu các điều kiện bao gồm nhiều giá trị hơn là chỉ gồm các giá trị Boolean, sẽ tạo được bảng quyết định "mục vào mở rộng", việc kiểm thử có thể được thực hiện bằng kỹ thuật phân vùng tương đương.
5.2.6.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử bảng quyết định, mỗi quy tắc quyết định xác định mối quan hệ giữa các điều kiện và các hành động của các hạng mục kiểm thư. Mỗi quy tắc quyết định này được coi là một hạng mục bao phủ kiểm thử
5.2.6.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các quy tắc quyết định (các hạng mục bao phụ kiểm thử), trong đó mỗi ca kiểm thử xác định các mối quan hệ giữa đầu vào và đầu ra, và mỗi quy tắc quyết định tương ứng với một kết hợp khác nhau của các điều kiện Boolean. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử từ bảng quyết định để thực thi là một ca kiểm thử;
b) Xác định các giá trị đầu vào thỏa mãn (các) điều kiện đầu vào của (các) quy tắc quyết định được bao phủ bởi các ca kiểm thử và các giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác để thực hiện các ca kiểm thử;
c) Xác định các kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho bảng quyết định;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu bảng quyết định gồm các điều kiện đầu vào thì có thể tạo ra những sự kết hợp không khả thi (ví dụ như "tuổi nhỏ hơn 18" và "tuổi lớn hơn 65" đều cho kết quả đúng). Trong tình huống này các quy tắc quyết định không khả thi như vậy cần được xác định và ghi chép lại và không được sử dụng để xây dựng các ca kiểm thử.
5.2.7 Đồ thị nguyên nhân - kết quả
5.2.7.1 Xác định các điều kiện kiểm thử (TD2)
Đồ thị nguyên nhân - kết quả (BS 7925-2: 1998, Myers 1979, Nursimulu và Probert đưa ra năm 1995) sử dụng một mô hình các mối quan hệ lô-gic (các quy tắc quyết định) giữa các nguyên nhân (ví dụ như các đầu vào) và các kết quả (ví dụ như các đầu ra) cho cac hạng mục kiểm dưới dạng đồ thị nguyên nhân - kết quả, trong đó:
- Mỗi nguyên nhân kiểu Boolean xác định hai phân vùng tương đương đầu vào cho các hạng mục kiểm thử, một tương ứng với các trường hợp “đúng”, và một tương ứng với các trường hợp "sai":
- Mỗi kết quả xác định một điều kiện đầu ra mong đợi hoặc kết hợp các điều kiện đầu ra cho các hạng mục kiểm thử được biểu diễn như một kiểu Boolean.
Các điều kiện kiểm thử sẽ là các nguyên nhân và các kết quả.
Đồ thị nguyên nhân - kết quả minh họa mối quan hệ lô-gic giữa các nguyên nhân và các kết quả giống như một mạng lô-gic Boolean được tạo thành bởi các toán tử Boolean, có thể tạo ra những ràng buộc về mặt cú pháp và ngữ nghĩa thông qua các mối quan hệ giữa nguyên nhân và các mối quan hệ giữa các kết quả (xem hình B.11 và điều B. 12 trong phụ lục B.2.7.4).
5.2.7.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong đồ thị nguyên nhân - kết quả, mỗi quy tắc quyết định xác định mối quan hệ giữa các nguyên nhân và các kết quả của hạng mục kiểm thử được coi là một hạng mục bao phủ kiểm thử.
5.2.7.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các hạng mục bao phủ kiểm thử. Một bảng quyết định tương ứng có thể được tạo ra từ đồ thị nguyên nhân - kết quả và được sử dụng để xây dựng các ca kiểm thử. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn các hạng mục bao phủ kiểm thử được thực thi trong ca kiểm thử hiện có;
b) Xác định các giá trị đầu vào để thực hiện (các) hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử và các giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác để thực hiện các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho đồ thị nguyên nhân - kết quả và/hoặc bảng quyết định.
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức độ bao phủ quy định.
5.2.8 Kiểm thử chuyển đổi trạng thái
5.2.8.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử chuyển đổi trạng thái (BS 7925-2:1998, Copeland đưa ra năm 2004) sử dụng một mô hình các trạng thái, các chuyển tiếp giữa các trạng thái, các sự kiện tạo ra các chuyển tiếp và các hành động do các chuyển tiếp tạo ra. Các trạng thái của mô hình phải rời rạc, dễ nhận biết và hữu hạn về số lượng. Một chuyển tiếp đơn lẻ có thể bị giới hạn bởi một bảo vệ sự kiện mà xác định một tập các điều kiện phải có kết quả đúng thì sự kiện đó mới xảy ra, để cho quá trình chuyển tiếp diễn ra. Trong kiểm thử chuyển đổi trạng thái, các điều kiện kiểm thử có thể là tất cả các trạng thái của mô hình trạng thái, tất cả sự chuyển tiếp của mô hình trạng thái hoặc toàn bộ mô hình trạng thái, tùy thuộc vào các yêu cầu bao phủ của kiểm thử. Mô hình này có thể được biểu diễn dưới dạng sơ đồ trạng thái hoặc bảng trạng thái (mặc dù cũng có thể sử dụng các đại diện khác).
5.2.8.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử chuyển đổi trạng thái, các hạng mục bao phủ kiểm thử sẽ thay đổi tùy thuộc vào điều kiện kết thúc kiểm thử và phương pháp thiết kế kiểm thử được lựa chọn. Điều kiện kết thúc kiểm thử bao gồm nhưng không giới hạn các mục sau:
- Các trạng thái, trong đó các hạng mục bao phủ kiểm thử được xác định để cho phép tất cả các trạng thái trong mô hình trạng thái được "đi qua";
- Các chuyển tiếp đơn (bao phủ 0-switch), trong đó các hạng mục bao phủ kiểm thử được xác định để bao phủ các trạng thái đơn hợp lệ trong mô hình trạng thái;
- Tất cả các chuyển tiếp, trong đó các hạng mục bao phủ kiểm thử được xác định để bao phủ cả các chuyển tiếp hợp lệ trong mô hình trạng thái và các chuyển tiếp "không hợp lệ" (các chuyển tiếp từ các trạng thái được bắt đầu bằng các sự kiện trong mô hình trạng thái mà không có quá trình chuyển đổi hợp lệ nào được xác định);
- Đa chuyển tiếp (bao phủ N-switch), trong đó các hạng mục bao phủ kiểm thử được xác định để bao phủ các chuỗi hợp lệ N + 1 trạng thái trong mô hình trạng thái.
CHÚ THÍCH: Độ bao phủ "1-switch" là một biến thể phổ biến của độ bao phủ “N-switch” mà đòi hỏi các cặp trạng thái phải được thực thi.
5.2.8.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử đối với kiểm thử chuyển đổi trạng thái được tạo ra để thực hiện các hạng mục bao phủ kiểm thử. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử cho ca kiểm thử hiện có;
b) Xác định các giá trị đầu vào để thực hiện (các) hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho các cơ sở kiểm thử (kết quả mong đợi có thể được xác định theo các đầu ra và các trạng thái được mô tả trong mô hình trạng thái);
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.9.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử kịch bản (Desikan và Ramesh đưa ra năm 2007) sử dụng một mô hình các chuỗi tương tác giữa hạng mục kiểm thử và các hệ thống khác (trong ngữ cảnh này, người dùng thường được coi là các hệ thống khác) với mục đích kiểm thử các luồng sử dụng liên quan đến hạng mục kiểm thử. Các điều kiện kiểm thử là một chuỗi các tương tác (tức là một kịch bản) hoặc là tất cả các chuỗi tương tác (tức là tất cả các kịch bản).
Trong kiểm thử kịch bản, bước này sẽ bao gồm việc xác định:
- Kịch bản "chính" là một chuỗi tiêu biểu các hành động được mong đợi của các hạng mục kiểm thử hoặc một lựa chọn tùy ý khi chưa biết được chuỗi tiêu biểu các hành động;
- Các kịch bản "thay thế" đại diện cho các kịch bản thay thế (kịch bản phụ) có thể được xác định thông qua các hạng mục kiểm thử.
CHÚ THÍCH 1: Kịch bản thay thế có thể bao gồm các điều kiện sử dụng bình thường, các điều kiện bắt buộc hoặc các điều kiện khắc nghiệt và những ngoại lệ.
CHÚ THÍCH 2: Kiểm thử kịch bản thường được sử dụng để tiến hành "kiểm thử đầu - cuối" khi kiểm thử chức năng, chẳng hạn như trong quá trình kiểm thử hệ thống hoặc kiểm thử chấp nhận.
Một dạng phổ biến của kiểm thử kịch bản là kiểm thử trường hợp sử dụng (Bath 2008; Hass 2008) sử dụng một mô hình trường hợp sử dụng của các hạng mục kiểm thử mô tả cách thức các hạng mục kiểm thử tương tác với một hoặc nhiều nhân tố với mục đích kiểm thử các chuỗi tương tác (tức là các kịch bản) liên quan đến các hạng mục kiểm thử.
CHÚ THÍCH 3: Trong kiểm thử trường hợp sử dụng, mô hình trường hợp sử dụng sẽ là một kiểu mô hình mô tả cách thức các hành động khác nhau được thực hiện bởi các hạng mục kiểm thử là kết quả các thủ tục khác nhau do các nhân tố thực hiện. Nhân tố có thể là một người dùng hoặc một hệ thống khác.
CHÚ THÍCH 4: Kiểm thử luồng chuyển đổi (Beizer 1995) thường được phân loại là kiểm thử kịch bản.
5.2.9.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các hạng mục bao phủ kiểm thử là những kịch bản chính và kịch bản thay thế (tức là các hạng mục bao phủ kiểm thử cũng giống như các điều kiện kiểm thử). Do đó, không cần thực hiện thêm hành động nào đối với kỹ thuật này.
5.2.9.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử đối với kiểm thử kịch bản được xây dựng bằng cách bao phủ từng kịch bản (hạng mục bao phủ kiểm thử) bằng ít nhất một ca kiểm thử. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm để thử thực hiện ca kiểm thử hiện có;
b) Xác định các giá trị đầu vào để thực hiện (các) hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.10.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử ngẫu nhiên (BS 7925-2: 1998; Craig và Jaskiel 2002; Kaner 1988) sử dụng một mô hình miền đầu vào của các hạng mục kiểm thử mà xác định một tập các giá trị đầu vào có thể. Lựa chọn phân bố đầu vào để tạo ra các giá trị đầu vào ngẫu nhiên. Đối với kiểm thử ngẫu nhiên, toàn bộ miền vào sẽ là điều kiện kiểm thử.
Ví dụ: Các loại phân bố đầu vào bao gồm phân bổ thông thường, phân bố đồng đều và hồ sơ hoạt động.
5.2.10.2 Xác định các hạng mục bao phủ kiểm thử(TD3)
Không có các hạng mục bao phủ kiểm thử đối với kiểm thử ngẫu nhiên.
5.2.10.3 Xây dựng các ca kiểm thử (TD4)
Đối với kiểm thử ngẫu nhiên, các ca kiểm thử được chọn bằng cách lựa chọn ngẫu nhiên các giá trị đầu vào từ miền đầu vào của các hạng mục kiểm thử (hoặc giả ngẫu nhiên nếu sử dụng một công cụ kiểm thử) theo phân bố đầu vào đã chọn. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn một phân bố vào để lựa chọn các đầu vào kiểm thử;
b) Tạo ra các giá trị ngẫu nhiên cho các đầu vào kiểm thử dựa trên phân bố đầu vào được lựa chọn ở bước a);
c) Xác định kết quả mong đợi của ca kiểm thử bằng cách cung cấp (các) đầu vào cho cơ sở kiểm thử;
d) Lặp lại các bước b) và c) cho đến khi kết thúc kiểm thử.
CHÚ THÍCH 1: Việc kiểm thử đòi hỏi phải xác định số kiểm thử đã được thực hiện, thời gian dành để kiểm thử hoặc cách thức hoàn thành kiểm thử.
CHÚ THÍCH 2: Bước b) thường được thực hiện tự động.
5.3 Các kỹ thuật kiểm thử dựa trên cấu trúc
5.3.1.1 Xác định các điều kiện kiểm thử (TD2)
Tạo mã nguồn của các hạng mục kiểm thử mà xác định các câu lệnh có thể thực thi được hoặc không thể thực thi được (BS 7925-2:1998, Myers 1979). Mỗi câu lệnh có thể thực thi được sẽ là một điều kiện kiểm thử.
CHÚ THÍCH: Việc xác định các câu lệnh không thể thực thi được có thể được thực hiện trong bước TD4, sử dụng một công cụ tự động.
5.3.1.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi câu lệnh có thể thực thi được sẽ là một hạng mục bao phủ kiểm thử (tức là các hạng mục bao phủ kiểm thử cũng giống như các điều kiện kiểm thử). Do đó, không cần thực hiện thêm hành động nào đối với kỹ thuật này.
5.3.1.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực hiện;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp các đầu vào kiểm thử tương ứng cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.3.2.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình kiểm thử luồng điều khiển mà xác định các nhánh trong luồng điều khiển của các hạng mục kiểm thử (BS 7925-2: 1998; Điều 4.7.1). Mỗi nhánh trong mô hình luồng điều khiển sẽ là một điều kiện kiểm thử.
Một nhánh là:
- Sự di chuyển có điều kiện của luồng điều khiển từ một nút bất kỳ trong mô hình luồng điều khiển đến nút khác;
- Sự di chuyển không có điều kiện của luồng điều khiển từ một nút bất kỳ đến một nút khác trong mô hình luồng điều khiển;
- Sự di chuyển của luồng điều khiển đến một điểm bắt đầu của các hạng mục kiểm thử khi hạng mục kiểm thử có nhiều hơn một điểm bắt đầu.
CHÚ THÍCH 1: Để đủ bao phủ 100% tất cả các nhánh đòi hỏi tất cả các cung (các đường kết nối các nút hoặc các cạnh) trong đồ thị luồng điều khiển phải được kiểm thử, kể cả các câu lệnh tiếp theo giữa một điểm bắt đầu và điểm kết thúc mà không có các quyết định.
CHÚ THÍCH 2: Kiểm thử nhánh có thể đòi hỏi phải kiểm thử cả các nhánh có điều kiện và các nhánh không có điều kiện, bao gồm cả điểm bắt đầu và điểm kết thúc đối với một hạng mục kiểm thử, tùy thuộc vào mức độ hạng mục bao phủ kiểm thử quy định.
CHÚ THÍCH 3: Lời gọi hàm và lời gọi phương thức không được coi là các điều kiện kiểm thử riêng trong kiểm thử nhánh.
5.3.2.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi nhánh trong mô hình luồng điều khiển sẽ là một hạng mục bao phủ kiểm thử (tức là các hạng mục bao phủ kiểm thử cũng giống như các điều kiện kiểm thử). Do đó, không cần thực hiện thêm hành động nào đối với kỹ thuật này.
5.3.2.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mã sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH 1: Nếu không có nhánh nào trong hạng mục kiểm thử vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và các ca kiểm thử.
CHÚ THÍCH 2: Nếu có nhiều điểm bắt đầu hạng mục kiểm thử, sẽ đòi hỏi phải có đầy đủ ca kiểm thử để bao phủ mỗi điểm bắt đầu.
5.3.3.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình luồng điều khiển các hạng mục kiểm thử để đưa ra các quyết định. Các quyết định chính là các điểm trong hạng mục kiểm thử nơi hai hay nhiều đầu ra (các đường đi con) có thể được thực hiện bằng luồng điều khiển (BS 7925-2:1998, Myers 1979). Các quyết định tiêu biểu được sử dụng cho các lựa chọn đơn giản (ví dụ như lệnh if-then-else trong mã nguồn), để quyết định khi nào thoát khỏi các vòng lặp (ví dụ như lệnh while-loop trong mã nguồn) và trong các câu lệnh (case) switch (ví dụ như case-1-2-3-...-N trong mã nguồn). Trong kiểm thử quyết định, mỗi điều kiện kiểm thử trong mô hình luồng điều khiển sẽ là một quyết định.
5.3.3.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các kết quả quyết định từ mỗi quyết định sẽ được coi là các hạng mục bao phủ kiểm thử.
5.3.3.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực hiện;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu không có các quyết định trong hạng mục kiểm thử thì vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và một ca kiểm thử.
5.3.4 Kiểm thử điều kiện nhánh
5.3.4.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình luồng điều khiển của các hạng mục kiểm thử mà xác định các quyết định và các điều kiện trong các quyết định. Các quyết định là các điểm trong hạng mục kiểm thử nơi mà hai hay nhiều kết quả (các đường đi con) có thể được thực hiện bằng luồng điều khiển (BS 7925-2: 1998, Myers 1979). Các quyết định tiêu biểu được sử dụng cho các lựa chọn đơn giản (ví dụ như lệnh if-then-else trong mã nguồn), để quyết định khi nào thoát khỏi các vòng lặp (ví dụ như lệnh while-loop trong mã nguồn) và sử dụng trong các câu lệnh case (ví dụ như lệnh case-1-2-3-...-N trong mã nguồn, cũng được gọi là các lệnh switch). Trong kiểm thử điều kiện nhánh (BS 7925-2:1998), mỗi quyết định sẽ là một điều kiện kiểm thử.
Ví dụ: Trong mã nguồn chương trình, câu lệnh quyết định "if A OR B AND C then" là một điều kiện kiểm thử có chứa ba điều kiện liên quan đến các toán từ lô-gic.
5.3.4.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử điều kiện nhánh, tất cả các giá trị Boolean (giá trị đúng/sai) của (các) điều kiện trong các quyết định sẽ được coi là các hạng mục bao phủ kiểm thử. Các kết quả quyết định của mỗi quyết định cũng được coi là các hạng mục bao phủ kiểm thử.
5.3.4.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà bao gồm một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định một tập con các đầu vào kiểm thử từ bước b) bao gồm các giá trị Boolean của các điều kiện trong quyết định và kết quả quyết định;
d) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
e) Lặp lại các bước từ a) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu không có các quyết định trong hạng mục kiểm thử thì vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và một ca kiểm thử.
5.3.5 Kiểm thử kết hợp điều kiện nhánh
5.3.5.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình luồng điều khiển của các hạng mục kiểm thử để đưa ra các quyết định và các điều kiện. Trong kiểm thử kết hợp điều kiện nhánh (BS 7925-2:1998), mỗi quyết định sẽ là một điều kiện kiểm thử.
Ví dụ: Trong mã nguồn chương trình, câu lệnh quyết định "if A OR B AND C then" là một điều kiện kiểm thử có chứa ba điều kiện liên quan đến các toán tử lô-gic.
5.3.5.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi kết hợp khả thi các giá trị Boolean của các điều kiện trong mỗi quyết định được coi là một hạng mục bao phủ kiểm thử (BS 7925-2: 1998, Myers 1979). Hạng mục bao phủ này bao gồm các quyết định đơn giản, trong đó các kết hợp có hai đầu ra Boolean riêng biệt của một điều kiện trong một quyết định.
5.3.5.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định tập các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển đã xác định được thực thi;
c) Xác định một tập con của đầu vào kiểm thử từ bước b) bao gồm tổ hợp các giá trị Boolean của các điều kiện trong quyết định;
d) Xác định các kết quả mong đợi bằng cách cung cấp đầu vào kiểm thử đã được lựa chọn cho các cơ sở kiểm thử;
e) Lặp lại các bước từ a) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu không có các quyết định trong hạng mục kiểm thử thì vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và một ca kiểm thử.
5.3.6 Kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC)
5.3.6.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình luồng điều khiển của các hạng mục kiểm thử đề đưa ra các quyết định và các điều kiện. Trong kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC) (BS 7925-2: 1998), mỗi quyết định sẽ là một điều kiện kiểm thử.
Ví dụ: Trong mã nguồn chương trình, câu lệnh quyết định "if A OR B AND C then" là một điều kiện kiểm thử có chứa ba điều kiện liên quan đến các toán tử lô-gic.
5.3.6.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi kết hợp khả thi các giá trị Boolean riêng biệt của các điều kiện trong một quyết định mà làm cho một điều kiện Boolean ảnh hưởng đến đầu ra của các quyết định sẽ được coi là một hạng mục bao phủ kiểm thử.. Nếu một điều kiện ảnh hưởng độc lập đến đầu ra của một quyết định thì sẽ chỉ làm thay đổi điều kiện đó mà không làm thay đổi các điều kiện khác.
CHÚ THÍCH: Hạng mục bao phủ kiểm thử bao gồm các quyết định đơn giản, trong đó các kết hợp gồm hai kết quả Boolean riêng biệt của một điều kiện trong một quyết định.
5.3.6.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định tập các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển đã xác định được thực thi;
c) Xác định một tập con các đầu vào kiểm thử từ bước b) bao gồm các kết hợp của các giá trị Boolean riêng biệt của điều kiện trong các quyết định cho phép một điều kiện Boolean ảnh hưởng độc lập đến đầu ra;
d) Xác định các kết quả mong đợi bằng cách cung cấp đầu vào kiểm thử đã được lựa chọn cho các cơ sở kiểm thử;
e) Lặp lại các bước từ a) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu không có các quyết định trong hạng mục kiểm thử thì vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và một ca kiểm thử.
5.3.7.1 Xác định các điều kiện kiểm thử (TD2)
Trong kiểm thử luồng dữ liệu (Burnstein 2003), một mô hình của các hạng mục kiểm thử sẽ được tạo ra để xác định các đường đi con của luồng điều khiển qua các hạng mục kiểm thử, trong đó mỗi định nghĩa của một biến đã cho được liên kết với (các) sử dụng tiếp theo của cùng một biến và không phải định nghĩa lại giá trị của biến.
"Những định nghĩa" ở đây chính là những câu lệnh định nghĩa của một biến, tức là câu lệnh gán một giá trị mới cho một biến (đôi khi một định nghĩa sẽ định nghĩa một biến có cùng giá trị với giá trị trước đó của nó). "Sử dụng" ở đây chính là câu lệnh sử dụng biến đã có, không phải là câu lệnh gán một giá trị mới cho một biến; "Các sử dụng" có thể được phân biệt thành “p-use” (sử dụng biến để kiểm tra điều kiện) hoặc “c-use” (sử dụng biến để tính toán). P-use có nghĩa là sử dụng một biến để xác định kết quả của một điều kiện trong một quyết định, chẳng hạn như lệnh while-loop, if-then-else, vv. C-use là câu lệnh sử dụng một biến làm đầu vào để tính toán bất kỳ biến nào hoặc của một đầu ra.
Trong kiểm thử luồng dữ liệu, mỗi cặp định nghĩa - sử dụng dành cho một biến trong các hạng mục kiểm thử là một điều kiện kiểm thử.
Có một số dạng kiểm thử luồng dữ liệu, tất cả các dạng này đều dựa trên các điều kiện kiểm thử giống nhau. Có năm dạng kiểm thử luồng dữ liệu được xác định trong tiêu chuẩn này, đó là: Kiểm thử tất cả các định nghĩa của biến, kiểm thử tất cả các c-uses, kiểm thử tất cả các p-uses, kiểm thử tất cả các sử dụng biến và kiểm thử tất cả các đường định nghĩa - sử dụng.
5.3.7.2 Kiểm thử tất cả các định nghĩa của biến
5.3.7.2.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử tất cả các định nghĩa của biến, các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biến đến một vài sử dụng biến ((p-use) hoặc (c-use)) của định nghĩa đó sẽ được coi là các hạng mục bao phủ kiểm thử. Mỗi đường đi con được gọi là một đường "định nghĩa - sử dụng". Kiểm thử “tất cả các định nghĩa của biến” đòi hỏi phải có ít nhất một đường không định nghĩa (có liên quan đến một biến cụ thể) xuất phát từ định nghĩa của biến đến một trong những c-uses hoặc p-use của nó bao phủ tất cả các định nghĩa của biến.
5.3.7.2.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định các định nghĩa chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển xuất phát từ các định nghĩa của biến đã xác định được thực thi;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Trong thực tế, các bước này có thể cần phải thực hiện tự động.
5.3.7.3 Kiểm thử tất cả các c-uses
5.3.7.3.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biến đến từng c-use của định nghĩa đó sẽ được coi là các hạng mục bao phủ kiểm thử. Kiểm thử “tất cả sử dụng biến để tính toán” đòi hỏi phải có ít nhất một đường không định nghĩa (có liên quan đến một biến cụ thể) xuất phát từ một định nghĩa của biến đến một trong những c-use của nó bao phủ tất cả các định nghĩa của biến có liên quan.
5.3.7.3.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển từ các định nghĩa của biến đến một c-use tiếp theo của định nghĩa đó mà chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.3.7.4 Kiểm thử tất cả các p-use
5.3.7.4.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biển đến từng p-use của định nghĩa đó được coi là các hạng mục bao phủ kiểm thử. Kiểm thử “tất cả các p-uses” đòi hỏi phải có ít nhất một đường không định nghĩa (có liên quan đến một biến cụ thể) xuất phát từ một định nghĩa đến một trong những p-use của nó bao phủ tất cả các định nghĩa của biến có liên quan.
5.3.7.4.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển xuất phát từ các định nghĩa của biển đến p-use tiếp theo của định nghĩa đó mà chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định các kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.3.7.5 Kiểm thử tất cả các sử dụng biến
5.3.7.5.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biến đến mỗi sử dụng của biến (cả (p-use) và (c-use)) của định nghĩa đó được coi là các hạng mục bao phủ kiểm thử. Kiểm thử "tất cả các sử dụng biến" đòi hỏi phải có ít nhất một đường đi con xuất phát từ mỗi định nghĩa của một biến đến một trong những sử dụng của nó (không định nghĩa của một biến) được bao phủ.
5.3.7.5.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển từ các định nghĩa của biến đến một p-use hoặc c-use tiếp theo của định nghĩa đó mà chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.3.7.6 Kiểm thử tất cả các đường định nghĩa - sử dụng
5.3.7.6.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biến đến tất cả sử dụng của biến (cả (p-use) và (c-use)) của định nghĩa đó được coi là các hạng mục bao phủ kiểm thử. Kiểm thử "tất cả các đường định nghĩa - sử dụng" đòi hỏi tất cả các đường đi con xuất phát từ mỗi định nghĩa của biến đến mỗi sử dụng của nó (không có định nghĩa của một biến) được bao phủ.
CHÚ THÍCH: Kiểm thử tất cả các đường định nghĩa - sử dụng đòi hỏi tất cả các đường loop-free sub-paths xuất phát từ một định nghĩa của biến đến sử dụng của nó được kiểm thử để đạt được 100% độ bao phủ hạng mục kiểm thử. Điều này khác với kiểm thử tất cả các sử dụng, chỉ cần một đường đi từ mỗi định nghĩa của biến đến mỗi sử dụng của biến được kiểm thử để đạt được 100% độ bao phủ hạng mục kiểm thử.
5.3.7.6.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển từ các định nghĩa của biến đến tất cả p-use và c-use tiếp theo của định nghĩa đó mà chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định kết quả mong đợi của việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.4 Các kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm
5.4.1 Đoán lỗi
5.4.1.1 Xác định các điều kiện kiểm thử (TD2)
Đoán lỗi (BS 7925-2: 1998, Myers 1979) liên quan đến việc lập một danh sách kiểm tra các loại lỗi mà có thể tồn tại trong các hạng mục kiểm thử, kỹ thuật này cho phép kỹ sư kiểm thử xác định đầu vào cho các hạng mục kiểm thử mà có thể gây ra các lỗi, nếu những lỗi này tồn tại trong hạng mục kiểm thử. Trong đoán lỗi, mỗi loại lỗi sẽ là một điều kiện kiểm thử.
CHÚ THÍCH: Danh sách kiểm tra các loại lỗi có thể được tạo ra bằng các biện pháp khác nhau, chẳng hạn như phân loại các lỗi đã biết, lấy thông tin được lưu trong trong hệ thống quản lý sự cố dựa vào kiến thức, kinh nghiệm và / hoặc sự hiểu biết của kỹ sư kiểm thử về (các) hạng mục kiểm thử và / hoặc các hạng mục kiểm thử tương tự hoặc dựa vào những kiến thức của các bên liên quan khác (ví dụ như những người sử dụng hệ thống hoặc các lập trình viên).
5.4.1.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Không có hạng mục bao phủ kiểm thử nào đối với kỹ thuật đoán lỗi.
5.4.1.3 Xây dựng các ca kiểm thử (TD4)
Đối với đoán lỗi, các ca kiểm thử được xây dựng bằng cách lựa chọn một loại lỗi từ danh sách kiểm tra các loại lỗi mà được bao phủ và xây dựng các ca kiểm thử mà có thể phát hiện loại lỗi đó trong các hạng mục kiểm thử nếu nó tồn tại. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) loại lỗi bao phủ các ca kiểm thử hiện có;
b) Xác định các giá trị đầu vào có thể gây ra một lỗi tương ứng với (các) loại lỗi được lựa chọn;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi kết thúc kiểm thử.
Các phương pháp tính độ bao phủ kiểm thử được định nghĩa trong tiêu chuẩn này dựa trên độ bao phủ kiểm thử của các kỹ thuật thiết kế kiểm thử khác nhau. Các mức bao phủ kiểm thử có thể dao động từ 0% đến 100%. Trong mỗi phép tính độ bao phủ, một số hạng mục bao phủ kiểm thử có thể không khả thi. Một hạng mục bao phủ kiểm thử được coi là không khả thi nếu nó không thể thực thi được hoặc không thể được bao phủ bởi một ca kiểm thử. Việc tính toán độ bao phủ sẽ được thực hiện bằng việc có tính đến hoặc không tính đến các hạng mục bao phủ kiểm thử không khả thi; sự lựa chọn này thường sẽ được ghi lại trong bản kế hoạch kiểm thử (được định nghĩa trong TCVN 12849-3:2020 (ISO/IEC/IEEE 29119-3)). Nếu không tính đến một hạng mục bao phủ kiểm thử, việc chứng minh tính không khả thi của nó sẽ được ghi lại trong báo cáo kiểm thử. Trong mỗi phép tính độ bao phủ, nếu không có các hạng mục bao phủ kiểm thử, độ bao phủ 100% đối với kiểu bao phủ đó sẽ được coi là không thể áp dụng được cho hạng mục kiểm thử đó.
Khi tính toán độ bao phủ kiểm thử cho bất kỳ kỹ thuật nào, sẽ sử dụng công thức sau:
- Độ bao phủ là độ bao phủ kỹ thuật thiết kế kiểm thử cụ thể;
- N là số các hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các hạng mục bao phủ kiểm thử được xác định bởi các kỹ thuật thiết kế kiểm thử.
Giá trị N và T của từng kỹ thuật kiểm thử được xác định trong các điều khoản dưới đây. Các phép tính độ bao phủ kiểm thử được trình bày trong các điều khoản dưới đây được dùng cho các kỹ thuật thiết kế kiểm thử được trình bày trong tiêu chuẩn này. Có thể có các phương pháp tính độ bao phủ khác được các tổ chức sử dụng nhưng không được đề cập trong điều khoản này.
Ví dụ: Các phương pháp khác mà có thể được dùng để đánh giá mức độ hoàn thành kiểm thử gồm tính tỷ lệ phần trăm của các yêu cầu được bao phủ trong khi kiểm thử.
6.2 Tính độ bao phủ các kỹ thuật thiết kế kiểm thử dựa trên đặc tả
6.2.1 Độ bao phủ kỹ thuật phân vùng tương đương
Độ bao phủ kỹ thuật phân vùng tương đương được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số lượng các phân vùng được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số phân vùng được xác định.
6.2.2 Độ bao phủ phương pháp cây phân loại
Độ bao phủ phương pháp cây phân loại được tính như sau:
Độ bao phủ phương pháp tối thiểu hóa được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các lớp được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số lớp.
Độ bao phủ phương pháp tối đa hóa được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp các lớp bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số kết hợp của các lớp.
6.2.3 Độ bao phủ kỹ thuật phân tích giá trị biên
Độ bao phủ đổi của kỹ thuật phân tích giá trị biên được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các giá trị biên khác nhau bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các giá trị biên.
Việc quyết định áp dụng kiểm thử 2 giá trị biên hoặc ba giá trị phải được ghi lại trong hồ sơ kiểm thử.
6.2.4 Độ bao phủ kiểm thử cú pháp
Hiện nay chưa có phương pháp tính toán độ bao phủ cho kiểm thử cú pháp.
CHÚ THÍCH: Việc tính toán độ bao phủ kiểm thử cú pháp không thể thực hiện được đo số lượng các tùy chọn và số lượng các đột biến vỏ cùng lớn.
6.2.5 Độ bao phủ kỹ thuật thiết kế kiểm thử tổ hợp
6.2.5.1 Độ bao phủ kiểm thử tất cả các tổ hợp
Độ bao phủ kiểm thử tất cả các tổ hợp được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp của các cặp PV bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các kết hợp cặp PV.
CHÚ THÍCH: Đối với định nghĩa của cặp PV, tham khảo Điều 4.2.3
6.2.5.2 Độ bao phủ kiểm thử từng cặp
Độ bao phủ kiểm thử từng cặp sẽ được tính toán bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các cặp PV khác nhau được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các cặp PV.
6.2.5.3 Độ bao phủ kiểm thử từng lựa chọn
Độ bao phủ kiểm thử từng lựa chọn được tính toán bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số cặp PV được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các cặp PV.
6.2.5.4 Độ bao phủ kiểm thử lựa chọn cơ sở
Độ bao phủ kiểm thử lựa chọn cơ sở được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp lựa chọn cơ sở được bao phủ bởi các ca kiểm thử đã được thực thi (tất cả các kết hợp ngoại trừ hai tham số, một tham số hạng mục kiểm thử được thiết lập giá trị cơ bản và một tham số hạng mục kiểm thử còn lại được thiết lập giá trị hợp lệ), cộng thêm một (khi tất cả các tham số hạng mục kiểm thử thiết lập giá trị cơ sở) nếu được thực hiện;
- T là tổng số kết hợp lựa chọn cơ sở (tất cả các kết hợp nhưng ngoại trừ hai tham số, một tham số hạng mục kiểm thử được thiết lập giá trị cơ bản và một tham số hạng mục kiểm thử còn lại được thiết lập giá trị hợp lệ), cộng thêm một (khi tất cả các tham số hạng mục kiểm thử được thiết lập các giá trị cơ bản).
6.2.6 Độ bao phủ kiểm thử bằng quyết định
Độ bao phủ kiểm thử bảng quyết định được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số quy tắc quyết định khả thi được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các quy tắc quyết định khả thi.
6.2.7 Độ bao phủ kiểm thử đồ thị nguyên nhân - kết quả
Độ bao phủ đồ thị nguyên nhân - kết quả được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số quy tắc quyết định được bao phủ các ca kiểm thử đã được thực thi;
- T là tổng số các quy tắc quyết định khả thi.
6.2.8 Độ bao phủ kiểm thử chuyển đổi trạng thái
Độ bao phủ kiểm thử tất cả các trạng thái được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các trạng trái được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các trạng trái.
Độ bao phủ các chuyển tiếp đơn (độ bao phủ 0-switch) được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số chuyển tiếp hợp lệ được thực hiện bởi các ca kiểm thử;
- T là tổng số chuyển tiếp hợp lệ.
Độ bao phủ tất cả các chuyển tiếp sẽ được tính toán bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số chuyển tiếp lệ và không hợp lệ được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số chuyển đổi hợp lệ và không hợp lệ giữa các trạng thái được xác định bắt đầu bằng các sự kiện hợp lệ.
Độ bao phủ N + 1 chuyển tiếp (độ bao phủ kiểm thử N - switch) được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số N + 1 chuyển tiếp hợp lệ được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số N + 1 các chuyển tiếp hợp lệ.
6.2.9 Độ bao phủ kiểm thử kịch bản
Độ bao phủ kiểm thử kịch bản (bao gồm cả kiểm thử trường hợp sử dụng) được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kịch bản được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các kịch bản.
6.2.10 Độ bao phủ kiểm thử ngẫu nhiên
Hiện nay chưa có phương pháp tính toán độ bao phủ kiểm thử ngẫu nhiên.
6.3 Tính độ bao phủ các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc
6.3.1 Độ bao phủ câu lệnh
Độ bao phủ câu lệnh được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các câu lệnh có thể thực thi được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các câu lệnh có thể thực thi.
6.3.2 Độ bao phủ kiểm thử nhánh
Độ bao phủ kiểm thử nhánh được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đo:
- N là số nhánh được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số nhánh.
CHÚ THÍCH: Đối với các trường hợp mà không có các nhánh trong các hạng mục kiểm thử, bắt buộc phải thực hiện một kiểm thử để đạt được 100% độ bao phủ nhánh.
6.3.3 Độ bao phủ kiểm thử quyết định
Độ bao phủ kiểm thử quyết định được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết quả quyết định được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số kết quả quyết định.
CHÚ THÍCH: Đối với các trường hợp mà không có quyết định trong các hạng mục kiểm thử, bắt buộc phải có một kiểm thử để đạt được 100% độ bao phủ.
6.3.4 Độ bao phủ kiểm thử điều kiện nhánh
Độ bao phủ kiểm thử điều kiện nhánh được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các giá trị Boolean của các điều kiện trong các quyết định cộng với số kết quả quyết định được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các giá trị Boolean của các điều kiện trong các quyết định cộng với tổng số các kết quả quyết định.
CHÚ THÍCH: Đối với các trường hợp mà không có quyết định trong các hạng mục kiểm thử, bắt buộc phải có một kiểm thử để đạt được 100% độ bao phủ điều kiện nhánh.
6.3.5 Độ bao phủ kiểm thử kết hợp điều kiện nhánh
Độ bao phủ kiểm thử kết hợp điều kiện nhánh được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp các giá trị Boolean của các điều kiện trong mỗi quyết định được bao phủ bởi các ca kiểm thử đã thực thi;
- T là tổng số kết hợp khác nhau của các giá trị Boolean của các điều kiện trong các quyết định.
CHÚ THÍCH: Đối với các trường hợp mà không có quyết định trong các hạng mục kiểm thử, bắt buộc phải có một kiểm thử để đạt được 100% độ bao phủ kết hợp điều kiện nhánh.
6.3.6 Độ bao phủ kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC)
Độ bao phủ kiểm thử bao phủ quyết định điều kiện thay đổi được tính toán bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp khả thi khác nhau của các giá trị Boolean riêng biệt của điều kiện trong các quyết định cho phép một điều kiện Boolean ảnh hưởng đến kết qua quyết định được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số kết hợp khác nhau của các giá trị Boolean riêng biệt của điều kiện trong các quyết định cho phép một điều kiện Boolean khác nhau có ảnh hưởng đến kết quả.
CHÚ THÍCH: Đối với các trường hợp mà không cố quyết định trong các hạng mục kiểm thử, bắt buộc phải có một kiểm thử để đạt được 100% độ bao phủ quyết định điều kiện sửa đổi.
6.3.7 Độ bao phủ kiểm thử luồng dữ liệu
6.3.7.1 Độ bao phủ kiểm thử tất cả các định nghĩa của biến
Độ bao phủ kiểm thử tất cả các định nghĩa của biến được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
N là số các định nghĩa liên quan đến các cặp định nghĩa sử dụng dữ liệu được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các cặp định nghĩa sử dụng có trong các định nghĩa.
6.3.7.2 Độ bao phủ kiểm thử tất cả các c-uses
Độ bao phủ kiểm thử tất cả các c-uses được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số cặp định nghĩa dữ liệu - sử dụng biến để tính toán được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các cặp định nghĩa dữ liệu - sử dụng biến để tính toán.
6.3.7.3 Độ bao phủ kiểm thử tất cả các p-uses
Độ bao phủ kiểm thử tất cả các p-uses được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số cặp định nghĩa dữ liệu - sử dụng biến để kiểm tra điều kiện được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số cặp đjnh nghĩa dữ liệu - sử dụng biến để kiểm tra điều kiện.
6.3.7.4 Độ bao phủ kiểm thử tất cả các sử dụng biến
Độ bao phủ kiểm thử tất cả các sử dụng biến được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số lượng các cặp định nghĩa - sử dụng khác nhau được bao phủ bởi các ca kiểm thử được thực thi;
- T là tổng số các cặp định nghĩa - sử dụng từ mỗi định nghĩa đến cả p-use và c-use của các định nghĩa đó.
6.3.7.5 Độ bao phủ kiểm thử tất cả các đường định nghĩa - sử dụng
Độ bao phủ đối với kiểm thử tất cả các đường định nghĩa - sử dụng được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số lượng các đường đi con của luồng điều khiển từ mỗi định nghĩa của biến đến từng sử dụng của nó mà có thể đạt được (không có định nghĩa của biến) được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số đường đi con của luồng điều khiển từ mỗi định nghĩa đến cả p-use và c-use của định nghĩa đó.
6.4 Tính độ bao phủ kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm
6.4.1 Độ bao phủ đoán lỗi
Hiện nay chưa có phương pháp tính toán độ bao phủ cho kỹ thuật đoán lỗi.
Các đặc tính chất lượng kiểm thử
A.1.1 Tổng quan
Kiểm thử phần mềm được thực hiện nhằm xác định xem liệu các tiêu chí chất lượng quy định có đáp ứng được hạng mục kiểm thử. Phụ lục này bao gồm các ví dụ về cách thức các đặc tính chất lượng của phần mềm được định nghĩa trong ISO/IEC 25010 (ISO/IEC 25010:20111 được ánh xạ tới các kỹ thuật thiết kế kiểm thử được định nghĩa trong tiêu chuẩn này. Các kỹ thuật thiết kế kiểm thử được định nghĩa trong tiêu chuẩn này có thể được sử dụng để kiểm thử các đạc tính chất lượng của phần mềm. Ngoài các đặc tính chất lượng phần mềm ra, cũng cần phải lưu ý đến những đặc tính chất lượng khác (ví dụ: tính riêng tư).
Tiêu chuẩn ISO/IEC 25010 trình bày một mô hình chất lượng của phần mềm, mô hình này được trình bày trong hình A.1 dưới đây, nó phân loại các thuộc tính hệ thống/sản phẩm phần mềm thành 8 đặc tính chính đó là: tính năng phù hợp, tính hiệu quả, tính tương thích, tính khả dụng, độ tin cậy, tính bảo mật, khả năng bảo trì và tính khả chuyển. Mỗi đặc tính chất lượng chính này lại bao gồm một tập các đặc tính chất lượng con. Trong một số trường hợp, đòi hỏi phải có những yêu cầu quy định (ví dụ như các chính sách của chính phủ hoặc các luật) để đánh giá các đặc tính chất lượng mà một hệ thống thỏa mãn. Các kỹ thuật thiết kế kiểm thử và các loại kiểm thử khác nhau có thể được sử dụng để kiểm thử từng đặc tính chất lượng (xem Điều A.3 và A.4)
Điều A.2 giới thiệu về các loại kiểm thử mà có thể được sử dụng để kiểm thử các đặc tính chất lượng phần mềm được trình bày trong Hình A.1. Ánh xạ của từng đặc tính chất lượng đến các kiểu kiểm thử được trình bày trong điều A.3. Mối quan hệ giữa các đặc tính chất lượng và các kỹ thuật thiết kế kiểm thử dựa trên đặc tả và các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc được nêu trong tiêu chuẩn này được trình bày trong điều A.4
CHÚ THÍCH: ISO/IEC 25030 (ISO/IEC 25030:2007) có thể được sử dụng để xác định và đưa ra những yêu cầu chất lượng phần mềm mà có thể áp dụng cho một hạng mục kiểm thử. Những yêu cầu này sau đó có thể được sử dụng để xác định các đặc tính chất lượng trong ISO/IEC 25010 (ISO/IEC 25010: 2011) và các loại kiểm thử tương ứng được áp dụng để kiểm thử từng yêu cầu chất lượng.
Hình A.1 - Mô hình chất lượng sản phẩm trong ISO/IEC 25010
A.2 Các loại kiểm thử liên quan đến chất lượng
A.2.1 Kiểm thử khả năng truy cập
Mục đích của kiểm thử khả năng truy cập là để xác định xem liệu người dùng có các yêu cầu truy cập đặc trưng (ví dụ như do tuổi tác, bị khiếm thị hoặc bị khiếm thính) có thể thực hiện được hạng mục kiểm thử với đủ các đặc tính và khả năng (ISO/IEC 25010:2011) không. Kiểm thử khả năng truy cập sử dụng một mô hình hạng mục kiểm thử mà quy định rõ các yêu cầu truy cập của nó, bao gồm các tiêu chuẩn thiết kế truy cập mà hạng mục kiểm thử phải phù hợp. Các yêu cầu truy cập có liên quan đến khả năng của người dùng có nhu cầu truy cập đặc trưng nhằm đạt được các mục tiêu truy cập. Ví dụ như yêu cầu về hạng mục kiểm thử để hỗ trợ những người dùng khiếm thị và/ hoặc khiếm thính.
CHÚ THÍCH: Trang web W3C định nghĩa các chuẩn về khả năng truy cập, bao gồm khả năng truy cập các ứng dụng web và các thiết bị. Để biết thêm chi tiết, tham khảo trang web http://www.w3.org/standards/
A.2.2 Kiểm thử khả năng sao lưu/phục hồi
Mục đích của kiểm thử khả năng sao lưu/phục hồi là để xác định xem nếu trong trường hợp bị lỗi. một hạng mục kiểm thử có thể được khôi phục từ bản sao lưu trạng thái trước khi bị lỗi không. Kiểm thử khả năng sao lưu/ phục hồi sử dụng một mô hình hạng mục kiểm thử quy định các yêu cầu sao lưu và phục hồi của nó, trong đó quy định sự cằn thiết phải sao lưu các trạng thái hoạt động của một hạng mục kiểm thử tại một mốc thời gian nào đó, bao gồm dữ liệu, cấu hình và/hoặc môi trường và khôi phục trạng thái của hạng mục kiểm thử từ bản sao lưu đó. Kiểm thử khả năng sao lưu/phục hồi sau đó tập trung vào kiểm thử tính chính xác của việc sao lưu các hạng mục kiểm thử và tính chính xác của trạng thái phục hồi của hạng mục kiểm thử dựa trên trạng thái lỗi trước đó của nó. Kiểm thử khả năng sao lưu/phục hồi cũng có thể được sử dụng để kiểm chứng xem liệu các thủ tục sao lưu và phục hồi đối với hạng mục kiểm thử có đạt được các mục tiêu phục hồi như quy định không. Kiểu kiểm thử này có thể được thực hiện như một phần của kiểm thử khả năng phục hồi sau khi có sự cố (xem điều A.2.5).
A.2.3 Kiểm thử tương thích
Mục đích của kiểm thử tương thích là để xác định xem liệu hạng mục kiểm thử có thể hoạt động tốt trên các môi trường khác nhau không (tức là các hạng mục kiểm thử này có khả năng cùng tồn tại (tương thích) trong các môi trường khác nhau không). Kiểm thử tương thích cũng có thể được dùng cho nhiều bản sao của cùng một hạng mục kiểm thử hoặc nhiều hạng mục kiểm thử khi chia sẻ một môi trường chung.
Các yêu cầu tương thích đối với các hạng mục kiểm thử bao gồm một trong các yêu cầu nhỏ sau:
- Trình tự cài đặt: (Các) trình tự cài đặt rõ ràng (giả sử tất cả các trình tự cài đặt là hợp lệ) tạo ra một cấu hình mà ở đó từng hạng mục kiểm thử sẽ thực hiện các chức năng quy định của nó một cách chính xác.
- Trình tự cài đặt: (Các) trình tự cài đặt rõ ràng (giả sử tất cả các trình tự cài đặt là hợp lệ) tạo ra môt cấu hình thời gian chạy mà ở đó từng hạng mục kiểm thử sẽ thực hiện các chức năng quy định của nó một cách chính xác.
- Sử dụng đồng thời: Khả năng hai hoặc nhiều hạng mục kiểm thử thực hiện các chức năng quy định trong cùng một môi trường.
- Những hạn chế về môi trường: Những đặc tính của môi trường như bộ nhớ, bộ vi xử lý, kiến trúc, hoặc cấu hình, có thể ảnh hưởng đến khả năng của hạng mục kiểm thử khi thực hiện các chức năng của nó một cách chính xác.
A.2.4 Kiểm thử chuyển đổi
Mục đích của kiểm thử chuyển đổi là để xác định xem liệu dữ liệu hoặc phần mềm có thể tiếp tục có những khả năng quy định sau khi thực hiện những sửa đổi đối về định dạng không, chẳng hạn như chuyển đổi một chương trình từ một ngôn ngữ lập trình này sang ngôn ngữ lập trình khác hoặc chuyển đổi một tập tin dữ liệu phẳng hoặc cơ sở dữ liệu từ một định dạng này sang một định dạng khác. Một dạng kiểm thử chuyển đổi phổ biến đó là kiểm thử sự di trú dữ liệu. Kiểm thử chuyển đổi sử dụng một mô hình các hạng mục kiểm thử mà quy định những yêu cầu chuyển đổi của nó, bao gồm cả những yêu cầu không được thay đổi trong quá trình chuyển đổi, những yêu cầu đó phải là mới, đã được sửa đổi hoặc đã không còn dùng nữa khi chuyển đổi và bất kỳ các chuẩn thiết kế chuyển đổi mà hạng mục kiểm thử phải phù hợp với.
A.2.5 Kiểm thử khả năng phục hồi sau khi có sự cố
Mục đích của kiểm thử khả năng phục hồi sau khi có sự cố là để xác định xem nếu trong trường hợp bị lỗi việc hoạt động của hạng mục kiểm thử có thể được chuyển đến một trang web khác đang hoạt động hay không và liệu nổ có thể bị chuyển trở lại một khi lỗi đã được khắc phục hay không. Kiểm thử khả năng phục hồi sau khi có sự cố sử dụng một mô hình hạng mục kiểm thử (thường là một kế hoạch phục hồi sau khi có sự cố) để xác định các yêu cầu phục hồi sau khi có sự cố, bao gồm các chuẩn thiết kế phục hồi sau khi có sự cố mà phù hợp với hạng mục kiểm thử. Trong kiểm thử khả năng phục hồi sau khi có sự cố, hạng mục kiểm thử có thể là toàn hệ thống vận hành, các thiết bị phụ trợ, con người và các thủ tục. Kiểm thử khả năng phục hồi sau khi có sự cố có thể bao gồm các yếu tố như: các thủ tục do đội ngũ nhân viên vận hành thực hiện, việc di chuyển dữ liệu, phần mềm, con người, văn phòng, các thiết bị khác hoặc dữ liệu được sao lưu đến một vị trí cách biệt.
A.2.6 Kiểm thử chức năng
Mục đích kiểm thử chức năng là để xác định xem liệu các yêu cầu chức năng của hạng mục kiểm thử có đáp ứng không. Ví dụ, kiểu kiểm thử này có thể bao gồm việc xác định xem liệu một chức năng đã được thực hiện theo những yêu cầu quy định chưa. Nó có thể được thực hiện bằng cách sử dụng các kỹ thuật thiết kế kiểm thử dựa trên đặc tả và các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc được quy định tại Điều 5.
A.2.7 Kiểm thử cài đặt
Mục đích của kiểm thử cài đặt là để xác định xem liệu (các) hạng mục kiểm thử có thể được cài đặt, tháo gỡ /gỡ bỏ và/ hoặc nâng cấp như quy định trong tất cả các môi trường quy định không. Kiểm thử khả năng cài đặt sử dụng một mô hình các yêu cầu cài đặt của hạng mục kiểm thử, thường được quy định trong các điều khoản cài đặt, tháo gỡ hoặc nâng cấp các hạng mục (được mô tả trong tài liệu hoặc sách hướng dẫn cài đặt), người thực hiện cài đặt, gỡ bỏ hoặc nâng cấp phải cài đặt, tháo gỡ cài đặt hoặc nâng cấp các nền tảng mục tiêu và các hạng mục kiểm thử.
A.2.8 Kiểm thử khả năng tương tác
Mục đích của kiểm thử khả năng tương tác là để xác định xem liệu một hạng mục kiểm thử có thể tương tác một cách chính xác với các hạng mục kiểm thử khác hoặc hệ thống hoặc trong cùng một môi trường hoặc trong môi trường khác không, ngoài ra còn xác định xem liệu các hạng mục kiểm thử có thể sử dụng hiệu quả các thông tin nhận được từ các hệ thống khác không. Kiểm thử khả năng tương tác sử dụng một mô hình hạng mục kiểm thử mà quy định những yêu cầu về khả năng tương tác của nó, kể cả các chuẩn thiết kế tương tác mà phù hợp với hạng mục kiểm thử. Kiểu kiểm thử nay có thể bao gồm việc đánh giá xem liệu một hạng mục kiểm thử chạy trong một môi trường này có thể tương tác một cách chính xác với một hạng mục kiểm thử hoặc hệ thống trong môi trường riêng biệt khác không.
A.2.9 Kiểm thử khả năng nội địa hóa
Mục đích của kiểm thử khả năng nội địa hóa là để xác định xem liệu hạng mục kiểm thử có thể được người dùng trong các khu vực địa lý mà nó được sử dụng hiểu được không. Kiểm thử khả năng nội địa hóa có thể bao gồm (nhưng không giới hạn) việc phân tích xem liệu giao diện người dùng và tài liệu hỗ trợ của hạng mục kiểm thử có thể người dùng trong mỗi quốc gia hoặc khu vực sử dụng hiểu được không.
A.2.10 Kiểm thử khả năng bảo trì
Mục đích của kiểm thử khả năng bảo trì là để xác định xem liệu một hạng mục kiểm thử có thể được bảo trì bằng cách sử dụng. Kiểm thư khả năng bảo trì sử dụng một mô hình các yêu cầu bảo trì của hạng mục kiểm thử mà được quy định nhằm nỗ lực thực hiện những thay đổi đối với các hình thái bảo trì sau:
- Bảo trì để sửa chữa (tức là khắc phục các vấn đề có trong phần mềm);
- Bảo trì để hoàn hảo (tức là có những cải tiến phần mềm để làm cho hoàn thiện hơn, đầy đủ hơn);
- Bảo trì để thích hợp (tức là tu chỉnh phần mềm để thích hợp với những thay đổi của môi trường);
- Bảo trì để phòng ngừa (tức là có những hành động để giảm chi phí bảo trì trong tương lai)
Kiểm thử khả năng bảo trì có thể đo được bằng cách áp dụng những phân tích tĩnh.
A.2.11 Kiểm thử liên quan đến hiệu năng
Mục đích của họ các kỹ thuật kiểm thử này là để xác định xem liệu một hạng mục kiểm thử có thực hiện theo yêu cầu khi nó được đặt dưới mức "tải" khác nhau không. Họ kỹ thuật này bao gồm kiểm thử hiệu năng, kiểm thử tải, kiểm thử áp lực, kiểm thử sức bền, kiểm thử khối lượng, kiểm thử dung lượng và kiểm thử quản lý bộ nhớ. Mỗi loại kiểm thử sử dụng một mô hình các hạng mục kiểm thử mà quy định các yêu cầu về hiệu năng của nó, kể cả các tiêu chuẩn thiết thiết kế hiệu năng quy định mà phù hợp với các hạng mục kiểm thử. Ví dụ, kiểm thử này có thể bao gồm việc đánh giá hiệu năng của các hạng mục kiểm thử, xác định số giao dịch trong một giây, thời gian phản hồi, thông lượng và việc sử dụng tài nguyên. Kiểm thử tải "tiêu biểu" của hạng mục kiểm thử dưới các điều kiện "bình thường" có thể được định nghĩa trong hồ sơ hoạt động của các hạng mục kiểm thử.
Có một số kỹ thuật kiểm thử đánh giá hiệu năng của hạng mục kiểm thử:
- Kiểm thử hiệu năng là nhằm đánh giá hiệu năng các hạng mục kiểm thử khi nó được đặt dưới một tải "điển hình".
- Kiểm thử tải nhằm mục đích đánh giá hành vi của các hạng mục kiểm thử (ví dụ như hiệu năng và độ tin cậy) khi nó được đặt dưới các điều kiện tải khác nhau, thường là giữa các điều kiện dự đoán sử dụng thấp, tiêu biểu và sử dụng cao.
- Kiểm thử áp lực nhằm đánh giá hiệu năng của các hạng mục kiểm thử khi nó bị đẩy vượt quá tải cao nhất dự kiến của nó hoặc khi các nguồn tài nguyên sẵn có (ví dụ như bộ nhớ, bộ xử lý, đĩa) bị giảm xuống dưới mức yêu cầu tối thiểu, để đánh giá cách thức nó hoạt động trong các điều kiện khắc nghiệt.
- Kiểm thử sức bền nhằm đánh giá xem liệu các hạng mục kiểm thử có thể duy trì tải theo yêu cầu trong một khoảng thời gian liên tục không.
- Kiểm thử khối lượng nhằm đánh giá hiệu năng của các hạng mục kiểm thử khi nó xử lý một lượng dữ liệu nhất định. Ví dụ, kiểm thử này có thể bao gồm việc đánh giá hiệu năng hạng mục kiểm thử khi cơ sở dữ liệu của nó gần đạt dung lượng tối đa.
- Kiểm thử dung lượng (cũng được gọi là kiểm thử khả năng mở rộng) nhằm mục đích đánh giá cách thức các hạng mục kiểm thử thực hiện ở dưới các điều kiện mà có thể cần phải được hỗ trợ trong tương lai. Ví dụ, kiểu kiểm thử này có thể bao gồm việc đánh giá mức độ nguồn lực bổ sung (ví dụ như bộ nhớ, dung lượng ổ cứng, băng thông mạng) sẽ được yêu cầu để hỗ trợ tải dự kiến trong tương lai.
- Kiểm thử quản lý bộ nhớ nhằm mục đích đánh giá cách thức hạng mục kiểm thử thực hiện trong điều kiện có nhiều (tối đa) bộ nhớ được sử dụng (ví dụ như bộ nhớ đĩa cứng, bộ nhớ RAM và ROM), các loại bộ nhớ (ví dụ như động hoặc phân bổ/ hoặc tĩnh) và/hoặc mức độ rò rỉ bộ nhớ trong quá trình thử nghiệm. Các yêu cầu bộ nhớ thông thường sẽ được xác định theo điều kiện hoạt động cụ thể (ví dụ như yêu cầu bộ nhớ trong một thời gian vận hành cụ thể dưới các tải giao dịch có thể được quy định).
A.2.12 Kiểm thử tính khả chuyển
Mục đích của kiểm thử tính khả chuyển là để xác định mức độ dễ hay khó đối với một hạng mục kiểm thử khi được chuyển từ một phần cứng, phần mềm hoặc môi trường vận hành hoặc môi trường sử dụng này đến phần cứng, phần mềm hoặc các môi trường vận hành hoặc môi trường sử dụng khác. Kiểm thử tính khả chuyển sử dụng một mô hình các hạng mục kiểm thử mà xác định các yêu cầu về khà chuyển của nó, kể cả các tiêu chuẩn thiết kế khả chuyển quy định mà các hạng mục kiểm thử phải phù hợp. Các yêu cầu về tính khả chuyển có liên quan đến khả năng di chuyển các hạng mục kiểm thử từ một môi trường này đến một môi trường khác, hoặc liên quan đến khả năng thay đổi cấu hình của môi trường hiện có đến cấu hình khác theo yêu cầu. Ví dụ, kiểm thử này có thể bao gồm việc đánh giá xem liệu các hạng mục kiểm thử có thể được hoạt động với một loạt các trình duyệt khác nhau không.
A.2.13 Kiểm thử thủ tục
Mục đích của kiểm thử thủ tục là để xác định xem liệu những hướng dẫn về thủ tục có đáp ứng yêu cầu của người sử dụng và hỗ trợ mục đích sử dụng của họ không. Kiểm thử thủ tục sử dụng một mô hình các yêu cầu thủ tục của hạng mục kiểm thử như một đơn vị hoàn chỉnh và đã được chuyển giao. Các yêu cầu thủ tục sẽ đưa ra dưới dạng tài liệu về thủ tục và được viết dưới hình thức các hướng dẫn về thủ tục. Thông thường những hướng dẫn về thủ tục sẽ là một trong các tài liệu sau:
- Tài liệu hướng dẫn người dùng;
- Sách hướng dẫn sử dụng;
- Sách tham khảo.
Thông tin này sẽ xác định cách người dùng dự định:
- Thiết lập hạng mục kiểm thử để sử dụng bình thường;
- Vận hành các hạng mục kiểm thử trong các điều kiện bình thường;
- Trở thành người dùng hệ thống thành thạo (các file tài liệu hướng dẫn thực hành);
- Khắc phục lại các hạng mục kiểm thử khi xuất hiện lỗi;
- Cấu hình lại các hạng mục kiểm thử.
A.2.14 Kiểm thử độ tin cậy
Mục đích của kiểm thử độ tin cậy là đề đánh giá khả năng của các hạng mục kiểm thử khi thực hiện các chức năng quy định của nó, bao gồm cả việc đánh giá tần suất xuất hiện lỗi khi nó được sử dụng trong các điều kiện quy định với một khoảng thời gian nhất định. Kiểm thử độ tin cậy sử dụng một mô hình của các hạng mục kiểm thử mà quy định mức độ tin cậy của nó (ví dụ như thời gian trung bình xuất hiện lỗi, thời gian trung bình giữa các lỗi). Mô hình này sẽ bao gồm định nghĩa về lỗi và hồ sơ hoạt động của các hạng mục kiểm thử hoặc phương pháp để tạo hồ sơ hoạt động.
A.2.15 Kiểm thử tính an toàn
Mục đích của kiểm thử tính an toàn là để đánh giá mức độ mà một hạng mục kiểm thử và các dữ liệu liên quan của nó được bảo vệ để người dùng trái phép hoặc các hệ thống trái phép không thể sử dụng, đọc hoặc sửa đổi được và chỉ những hệ thống hoặc người được ủy quyền mới được cấp yêu cầu truy cập chúng. Kiểm thử tính an toàn sử dụng một mô hình các hạng mục kiểm thử mà quy định các yêu cầu bảo mật, bao gồm tất cả tiêu chuẩn thiết kế bảo mật quy định mà phù hợp với hạng mục kiểm thử.Các yêu cầu an toàn liên quan đến khả năng bảo vệ dữ liệu và tính năng của một hạng mục kiểm thử khỏi những người sử dụng trái phép và sử dụng độc hại. Ví dụ, kiểm thử này có thể bao gồm việc đánh giá xem các hạng mục kiểm thử có ngăn cần được người dùng trái phép truy cập dữ liệu, hoặc đánh giá xem chức năng nào đó của một hạng mục kiểm thử chỉ có thể truy cập bởi những người dùng được quyền truy cập đề bảo vệ khỏi những người dùng trái phép.
Có một số kỹ thuật đánh giá tính an toàn của một hạng mục kiểm thử:
Kỹ thuật kiểm thử thâm nhập liên quan đến việc kỹ sư kiểm thử cố gắng truy cập đến một hạng mục kiểm thử (bao gồm cả tính năng và/ hoặc dữ liệu cá nhân của nó) đó là bắt chước những hành động của người dùng trái phép.
- Kiểm thử tính riêng tư liên quan đến việc cố gắng truy cập vào dữ liệu cá nhân và kiểm chứng dấu vết được bỏ lại sau khi người dùng truy cập dữ liệu cá nhân.
- Kiểm thử tính an toàn là một loại kiểm thử tĩnh trong đó kỹ sư kiểm thử thanh tra mã nguồn, xem xét tài liệu hoặc tổng duyệt các yêu cầu và mã nguồn của một hạng mục kiểm thử đề xác định xem có xuất hiện bất kỳ lỗ hổng bảo mật nào không?
- Kỹ thuật quét lỗ hổng bảo mật liên quan đến việc sử dụng các công cụ kiểm tra tự động để quét một hạng mục kiểm thử khi có dấu hiệu xuất hiện các lỗ hổng.
A.2.16 Kiểm thử tính khả dụng
Mục đích của kiểm thử tính khả dụng là để đánh giá xem liệu những người dùng đã được chỉ định có thể sử dụng hạng mục kiểm thử để để đạt được mục tiêu đề ra một cách hiệu quả và hài lòng khi sử dụng không. Do đó, kiểm thử tính khả dụng sử dụng một mô hình các hạng mục kiểm thử để chỉ rõ những yêu về tính khả dụng, bao gồm các tiêu chuẩn về độ khả dụng phù hợp với hạng mục kiểm thử. Các yêu cầu tính khả dụng quy định các mục tiêu của tính khả dụng đối với các hạng mục kiểm thử. Các mục tiêu của kiểm thử tính khả dụng được dựa trên các mục tiêu kiểm thử hạng mục (lý do có các hạng mục kiểm thử, sự khác biệt nó mang lại cho các tổ chức, cá nhân, tính khả dụng đối với các nhiệm vụ nó hỗ trợ), bối cảnh sử dụng cho các hạng mục kiểm thử (những người sử dụng các hạng mục kiểm thử và môi trường mà nó được sử dụng, những đặc tính người dùng và nhiệm vụ người dùng). Các mục tiêu của tính khả dụng sẽ được xác định về tính hiệu quả và sự hài lòng đối với người dùng để đạt được mục tiêu cụ thể trong một hoặc nhiều trường hợp sử dụng cụ thể.
CHÚ THÍCH: ISO/IEC 9241 định nghĩa các tiêu chuẩn để xác định các yêu cầu về sự tương tác giữa con người và hệ thống.
A.3 Ánh xạ các đặc tính chất lượng đến các kiểu kiểm thử
A.3.1 Ánh xạ
Bảng dưới đây trình bày các loại kiểm thử được nêu trong Điều A.2 được ánh xạ tới các đặc tính chất lượng trình bày trong Hình A.1 (trong Điều A.1.1).
Bảng A.1 - Ánh xạ các đặc tính chất lượng trong ISO/IEC 25010 đến các kiểu kiểm thử
Kiểu kiểm thử |
Đặc tính chất lượng |
Các đặc tính phụ |
Kiểm thử khả năng truy cập |
Khả năng sử dụng |
Khả năng truy cập |
Kiểm thử khả năng sao lưu/phục hồi |
Độ tin cậy |
Tính hoàn thiện |
Khả năng chịu lỗi |
||
Khả năng phục hồi |
||
Kiểm thử tương thích |
Tính tương thích |
Khả năng cùng tồn tại |
Kiểm thử chuyển đổi |
Tính năng phù hợp |
Tính năng đầy đủ |
Tính năng chính xác |
||
Tính năng thích hợp |
||
Kiểm thử khả năng phục hồi sau khi có sự cố |
Độ tin cậy |
Tính hoàn thiện |
Khả năng chịu lỗi |
||
Khả năng phục hồi |
||
Kiểm thử chức năng |
Tính năng phù hợp |
Tính năng đầy đủ |
Tính năng chính xác |
||
Tính năng thích hợp |
||
Kiểm thử khả năng cài đặt |
Tính khả chuyển |
Khả năng cài đặt |
Kiểm thử khả năng tương tác |
Tính tương thích |
Khả năng tương tác |
Kiểm thử khả năng nội địa hóa |
Tính năng phù hợp |
Tính năng đầy đủ |
Tính năng chính xác |
||
Tính năng thích hợp |
||
Khả năng sử dụng |
Tính có thể nhận ra |
|
Tính dễ học |
||
Khả năng vận hành |
||
Bảo vệ lỗi người dùng |
||
Tính thẩm mỹ giao diện người dùng |
||
Khả năng truy cập |
||
Tính khả chuyển |
Khả năng thích nghi |
|
Kiểm thử khả năng bảo trì |
Khả năng bảo trì |
Tính mô đun hóa |
Khả năng sử dụng lại |
||
Khả năng phân tích |
||
Tính có thể thay đổi được |
||
Khả năng kiểm thử được |
||
Kiểm thử liên quan đến hiệu năng |
Tính hiệu quả |
Đáp ứng thời gian |
Sử dụng tài nguyên |
||
Dung lượng |
||
Kiểm thử tính khả chuyển |
Tính khả chuyển |
Khả năng thích nghi |
Khả năng cài đặt |
||
Khả năng thay thế được |
||
Kiểm thử thủ tục |
Không có |
Không có |
Kiểm thử độ tin cậy |
Độ tin cậy |
Tính hoàn thiện |
Tính có thể dùng được |
||
Khả năng chịu lỗi |
||
Khả năng phục hồi |
||
Kiểm thử bảo mật |
Tính bảo mật |
Tính bí mật |
Tính toàn vẹn |
||
Tính không chối bỏ |
||
Tính trách nhiệm |
||
Tính xác thực |
||
Kiểm thử tính khả dụng |
Khả năng sử dụng |
Tính có thể nhận ra |
Tính dễ học |
||
Khả năng vận hành |
||
Bảo vệ lỗi người dùng |
||
Tính thẩm mỹ giao diện người dùng |
||
Khả năng truy cập |
A.4 Ánh xạ các đặc tính chất lượng đến các kỹ thuật thiết kế kiểm thử
A.4.1 Ánh xạ
Các kỹ thuật thiết kế kiểm thử được miêu tả trong phần này có thể được sử dụng để kiểm thử nhiều đặc tính chất lượng trong Hình A.1. Bảng dưới đây là một ví dụ về việc ánh xạ giữa chúng.
Bảng A.2 - Ánh xạ các kỹ thuật thiết kế kiểm thử đến các phương pháp đo chất lượng sản phẩm đối với các đặc tính sản phẩm trong ISO/1EC 25010
Kỹ thuật thiết kế kiểm thử |
Các đặc tính chính của chất lượng phần mềm trong ISO/IEC 25010 |
Các đặc tính con của chất lượng phần mềm trong ISO/IEC 25010 |
||
Các kỹ thuật thiết kế kiểm thử dựa trên đặc tả |
||||
Phân tích giá trị biên |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính hiệu quả |
Đáp ứng thời gian |
|||
Dung lượng |
||||
Tính khả dụng |
Bảo vệ lỗi người dùng |
|||
Kỹ thuật thiết kế kiểm thử |
Các đặc tính chính của chất lượng phần mềm trong ISO/IEC 25010 |
Các đặc tính con của chất lượng phần mềm trong ISO/IEC 25010 |
||
Độ tin cậy |
Khả năng chịu lỗi |
|||
Tính an toàn |
Tính bí mật |
|||
Tính toàn vẹn |
||||
Đồ thị nguyên nhân - kết quả |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính khả dụng |
Bảo vệ lỗi người dùng |
|||
Tính tương thích |
Khả năng cùng tồn tại |
|||
Phương pháp phân loại cây |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính khả dụng |
Bảo vệ lỗi người dùng |
|||
Kỹ thuật kiểm thử tổ hợp |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính tương thích |
Khả năng cùng tồn tại |
|||
Tính hiệu quả |
Đáp ứng thời gian |
|||
Tính khả dụng |
Bảo vệ lỗi người dùng |
|||
Kiểm thử bảng quyết định |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính tương thích |
Khả năng cùng tồn tại |
|||
Tính khả dụng |
Bảo vệ lỗi người dùng |
|||
Phân vùng tương đương |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính khả dụng |
Bảo vệ lỗi người dùng |
|||
Độ tin cậy |
Tính có thể dùng được |
|||
Tính an toàn |
Tính bí mật |
|||
Tính toàn vẹn |
||||
Tính không chối bỏ |
||||
Tính trách nhiệm |
||||
Tính xác thực |
||||
Kiểm thử ngẫu nhiên |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính hiệu quả |
Đáp ứng thời gian |
|||
Sử dụng tài nguyên |
||||
Dung lượng |
||||
Độ tin cậy |
Tính hoàn thiện |
|||
Tính có thể dùng được |
||||
Khả năng chịu lỗi |
||||
Khả năng phục hồi |
||||
Tính an toàn |
Tính bí mật |
|||
Tính toàn vẹn |
||||
Tính không chối bỏ |
||||
Tính trách nhiệm |
||||
Tính xác thực |
||||
Kiểm thử theo kịch bản |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính khả dụng |
Tính dễ học |
|||
Khả năng vận hành |
||||
Bảo vệ lỗi người dùng |
||||
Tính thẩm mỹ giao diện người dùng |
||||
Khả năng truy cập |
||||
Tính có thể nhận ra |
||||
Kiểm thử biến đổi trạng thái |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Độ tin cậy |
Tính hoàn thiện |
|||
Tính có thể dùng được |
||||
Khả năng chịu lỗi |
||||
Khả năng phục hồi |
||||
Kiểm thử theo cú pháp |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Kiểm thử các trường hợp sử dụng |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính khả dụng |
Tính dễ học |
|||
Khả năng vận hành |
||||
Bảo vệ lỗi người dùng |
||||
Tính thẩm mỹ giao diện người dùng |
||||
Khả năng truy cập |
||||
Tính có thể nhận ra |
||||
Các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc |
||||
Kiểm thử kết hợp điều kiện nhánh |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Kiểm thử điều kiện nhánh |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Kiểm thử nhánh |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Kiểm thử luồng dữ liệu |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
kiểm thử dựa trên bảng quyết định |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC) |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Kiểm thử câu lệnh |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Các kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm |
||||
Đoán lỗi |
Tính năng phù hợp |
Tính năng đầy đủ |
||
Tính năng chính xác |
||||
Tính năng thích hợp |
||||
Tính hiệu quả |
Đáp ứng thời gian |
|||
Sử dụng tài nguyên |
||||
Dung lượng |
||||
Tính khả dụng |
Tính dễ học |
|||
Khả năng vận hành |
||||
Bảo vệ lỗi người dùng |
||||
Độ tin cậy |
Khả năng chịu lỗi |
|||
Hướng dẫn và ví dụ về việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên đặc tả
B.1 Hướng dẫn và ví dụ về các kỹ thuật thiết kế kiểm thử dựa trên đặc tả
B.1.1 Tổng quan
Phụ lục này đưa ra hướng dẫn về việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên đặc tả nêu trong Điều 5.2 và tính độ bao phủ các kỹ thuật kiểm thử dựa trên đặc tả trong Điều 6.2 bằng các ví dụ riêng. Mỗi ví dụ đều dựa theo quy trình Thiết kế và chuẩn bị kiểm thử được định nghĩa trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013). Mặc dù mỗi ví dụ được áp dụng cho kiểm thử dựa trên đặc tả, nhưng trong thực tế, như đă nêu trong Điều 5.1 thì hầu hết các kỹ thuật kiểm thử được định nghĩa trong tiêu chuẩn này có thể được sử dụng thay thế cho nhau (ví dụ: kỹ thuật phân tích giá trị biên có thể được sử dụng để kiểm thử các đầu vào cho một chương trình thông qua giao diện người dùng hoặc các biên của các biến trong mã nguồn chương trình).
B.2 Các ví dụ về kỹ thuật thiết kế kiểm thử dựa trên đặc tả
B.2.1.1 Giới thiệu
Mục đích của phân vùng tương đương xây dựng một bộ các ca kiểm thử mà bao gồm các phân vùng đầu vào và đầu ra của hạng mục kiểm thử theo mức độ bao phủ phân lớp tương đương được lựa chọn. Phân vùng tương đương được dựa trên giả thuyết rằng các đầu vào và đầu ra của một hạng mục kiểm thử có thể được phân chia thành các lớp dữ liệu dựa theo cơ sở kiểm thử đối với các hạng mục kiểm thử, sẽ được xử lý tương tự theo các hạng mục kiểm thử. Do đó, kết quả của việc kiểm thử bất kỳ một giá trị nào trong một phân vùng tương đương có thể được đại diện cho kết quả kiểm thử các giá trị khác trong phân vùng đó.
B.2.1.2 Đặc tả
Hãy xem xét một hạng mục kiểm thử tạo điểm với cơ sở kiểm thử sau:
Nếu thành phần nhận được điểm thi (theo thang điểm 75) và điểm luận văn (c/w) (theo thang điểm 25) là các đầu vào, từ đó có thể tính được điểm cho khóa học, điểm của khóa học được phân loại thành các điểm từ loại 'A' đến điểm loại 'D'. Các điểm này được đưa ra căn cứ vào cách tính toán điểm tổng. Điểm tổng bằng điểm thi và điểm luận văn (c/w) cộng lại với nhau, do đó chúng ta có các phân vùng sau:
Điểm tổng lớn hơn hoặc bằng 70 - đạt điểm A
Điểm tổng lớn hơn hoặc bằng 50, nhưng nhỏ hơn 70 - đạt điểm B
Điểm tổng lớn hơn hoặc bằng 30, nhưng nhỏ hơn 50 - đạt điểm C
Điểm tổng nhỏ hơn 30 - đạt điểm D
Nếu phát hiện (các) đầu vào không hợp lệ (ví dụ như điểm nằm ngoài giới hạn quy định) thì sẽ xuất hiện bản tin lỗi ('FM'). Tất cả các điểm đầu vào mà đạt phải là các số nguyên.
B.2.1.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được định nghĩa trong cơ sở kiểm thử nên chỉ có một tập tính năng (FS) được tạo ra, đó là:
FS1: Hàm tạo điểm
B.2.1.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Trong phân vùng tương đương, các phân vùng tương đương là các điều kiện kiểm thử (TCOND). Các phân vùng tương đương được xác định dựa theo đầu vào và đầu ra của hạng mục kiểm thử. Do đó khi xác định các phân vùng tương đương cần phải lưu ý tất cả các đầu vào và đầu ra hợp lệ và không hợp lệ.
Trước tiên xác định được các phân vùng hợp lệ cho đầu vào điểm thi và điểm luận văn. Các phân vùng hợp lệ này bao gồm:
TCOND1: TCOND2: |
0 ≤ điểm thi ≤ 75 0 ≤ điểm luận văn ≤ 25 |
(đối với tập tính năng FS1) (đối với tập tính năng FS1) |
Các phân vùng không hợp lệ dựa trên các đầu vào bao gồm:
TCOND3 TCOND4 TCOND5 TCOND6 |
Điểm thi < 0 Điểm thi > 75 Điểm luận văn < 0 Điểm luận văn > 25 |
(đối với tập tính năng FS1) (đối với tập tính năng FS1) (đối với tập tính năng FS1) (đối với tập tính năng FS1) |
Các giá trị được phân vùng tương đương có thể được biểu diễn trong hình dưới đây, do đó, đối với đầu vào là điểm thi, chúng ta có:
Hình B.1 - Đầu vào “điểm thi”
Đối với đầu vào là điểm luận văn, chúng ta có:
Hình B.2 - Đầu vào “điểm luận văn”
Các phân vùng đầu vào không hợp lệ có thể bao gồm các dạng đầu vào không phải là số nguyên, đầu vào không phải là chữ số. Vì vậy, chúng ta có thể tạo ra được các phân vùng tương đương đối với đầu vào không hợp lệ dưới đây:
TCOND7 TCOND8 TCOND9 TCOND10 TCOND11 TCOND12 |
Điểm thi = số thực có phần thập phân Điểm thi = chữ cái Điểm thi = ký tự đặc biệt Điểm luận văn = số thực có phần thập phân Điểm luận văn = chữ cái Điểm luận văn = ký tự đặc biệt |
(đối với FS1) (đối với FS1) (đối với FS1) (đối với FS1) (đối với FS1) (đối với FS1) |
Tiếp theo, có thể xác định được các phân vùng tương đương đối với các đầu ra hợp lệ:
TCOND13: Điểm A được tạo ra bởi 70 ≤ điểm tổng ≤ 100 TCOND14: Điểm B được tạo ra bởi 50 ≤ điểm tổng ≤ 70 TCOND15: Điểm C được tạo ra bởi 30 ≤ điểm tổng ≤ 50 TCOND16: Điểm D được tạo ra bởi 0 ≤ điểm tổng ≤ 30 TCOND17: Bản tin lỗi’ (FM) được tạo ra bởi điểm tổng >100 TCOND18: Bản tin lỗi’ (FM) được tạo ra bởi điểm tổng < 0 TCOND19: Bản tin lỗi’ (FM) được tạo ra bởi các đầu vào không phải là số nguyên |
(đối với FS1) (đối với FS1) (đối với FS1) (đối với FS1) (đối với FS1) (đối với FS1) (đối với FS1) |
Trong đó: Điểm tổng = điểm thi + điểm luận văn. Chú ý: “Bản tin lỗi” được coi là một đầu ra hợp lệ theo quy định.
Các phân vùng tương đương và các biên đối với điểm tổng được trình bày trong hình dưới đây:
Hình B.3 - Các phân vùng tương đương và các biên đối với điểm tổng
Đầu ra không hợp lệ sẽ là bất kỳ đầu ra nào của hạng mục kiểm thử mà khác so với bất kỳ năm đầu ra đã xác định, có thể rất khó khăn khi xác định các đầu ra không xác định. Tuy nhiên, phải lưu ý đến chúng nếu không sẽ bị thiếu khi xác định hạng mục kiểm thử, cơ sở kiểm thử hoặc cả hai. Trong ví dụ này có ba đầu ra không xác định dưới đây. Việc xác định các phân vùng tương đương đầu ra không hợp lệ này mang tính chủ quan và các kỹ sư kiểm thử khác nhau có thể xác định được các phận vùng khác nhau mà họ cảm thấy có thể xảy ra (vần đề này được miêu tả trong Điều 5.2.1.1, CHÚ THÍCH 2).
TCOND20: |
Đầu ra = “điểm loại E”, trong trường hợp này điểm loại E (không hợp lệ) được bổ sung thêm khi điểm tổng nằm trong phạm vi từ 0 đến 15 điểm |
(đối với FS1) |
TCOND21: |
Đầu ra = “điểm A+”, trong trường hợp này điểm A+ (không hợp lệ) được bổ sung thêm khi điểm tổng nằm trong phạm vi từ 90 đến 100 |
(đối với FS1) |
TCOND22: |
Đầu ra = ‘null’, trong trường hợp có thể tạo ra được một đầu ra ‘null’ |
(đối với FS1) |
B.2.1.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Đối với kỹ thuật phân vùng tương đương, các hạng mục bao phủ kiểm thử là các phân vùng đã được xác định ở bước trên (tức là trong kỹ thuật này, các điều kiện kiểm thử tương tự như các hạng mục bao phủ kiểm thử). Do đó, có thể xác định được 22 hạng mục bao phủ kiểm thử sau đây.
TCOVER1: 0 ≤ điểm thi ≤ 75 |
(đối với TCOND1) |
TCOVER2: 0 ≤ điểm luận văn ≤ 25 |
(đối với TCOND2) |
TCOVER3: Điểm thi < 0 |
(đối với TCOND3) |
TCOVER4: Điểm thi > 75 |
(đối với TCOND4) |
TCOVER5: Điểm luận văn < 0 |
(đối với TCOND5) |
TCOVER6: Điểm luận văn > 25 |
(đối với TCOND6) |
TCOVER7: Điểm thi = số thực có phần thập phân |
(đối với TCOND7) |
TCOVER8: Điểm thi = chữ cái |
(đối với TCOND8) |
TCOVER9: Điểm thi = ký tự đặc biệt |
(đối với TCOND9) |
TCOVER10: Điểm luận văn = số thực có phần thập phân |
(đối với TCOND10) |
TCOVER11: Điểm luận văn = chữ cái |
(đối với TCOND11) |
TCOVER12: Điểm luận văn = ký tự đặc biệt |
(đối với TCOND12) |
TCOVER13: Điểm A được tạo ra bởi 70 ≤ điểm tổng ≤ 100 |
(đối với TCOND13) |
TCOVER14: Điểm B được tạo ra bởi 50 ≤ điểm tổng ≤ 70 TCOVER15: Điểm C được tạo ra bởi 30 ≤ điểm tổng ≤ 50 TCOVER16: Điểm D được tạo ra bởi 0 ≤ điểm tổng ≤ 30 TCOVER17: Bản tin lỗi’ (FM) được tạo ra bởi điểm tổng >100 TCOVER18: Bản tin lỗi' (FM) được tạo ra bởi điểm tổng < 0 TCOVER19: Bản tin lỗi’ (FM) được tạo ra bởi (các) đầu vào không phải là số nguyên) |
(đối với TCOND14) (đối với TCOND15) (đối với TCOND16) (đối với TCOND17) (đối với TCOND18) (đối với TCOND19) |
TCOVER20: Đầu ra = điểm loại E TCOVER21: Đầu ra = điểm A+ TCOVER22: Đầu ra = ‘null’ |
(đối với TCOND20) (đối với TCOND21) (đối với TCOND22) |
B.2.1.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
B.2.1.6.1 Các Tùy chọn
Đã xác định được các phân vùng tương đương và các hạng mục bao phủ kiểm thử, bước này chúng ta xây dựng các ca kiểm thử nhằm nỗ lực "thực hiện" từng hạng mục bao phủ kiểm thử. Có hai phương pháp phổ biến dùng để thiết kế các ca kiểm thử là phương pháp phân vùng tương đương một - một và phương pháp phân vùng tương đương tối thiểu hóa (có thể sử dụng các phương pháp khác khi kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi ca kiểm thử nêu trong Điều 5.2.5). Ở phương pháp thứ nhất, một ca kiểm thử được tạo ra cho mỗi phân vùng được xác định trên cơ sở một - một (xem tùy chọn 4a dưới đây), ở phương pháp thứ hai, chỉ thiết kế một số lượng tối thiểu các ca kiểm thử để bao phủ tất cả các phân vùng đã xác định (xem tùy chọn 4b dưới đây). Các điều kiện tiên quyết của tất cả các ca kiểm thử dựa trên tập tính năng hàm tạo-điểm đều giống nhau, do đó việc áp dụng để xác định các đầu vào điểm thi và điểm luận văn rất dễ dàng.
B.2.1.6.2 Tùy chọn 4a: Xây dựng các ca kiểm thử theo phương pháp phân vùng tương đương một-một (TD4)
Phương pháp phân vùng tương đương một-một cho thấy sự liên kết giữa các phân vùng tương đương và các ca kiểm thử. Trong phương pháp này, một ca kiểm thử chỉ bao phủ một và chỉ một hạng mục bao phủ kiểm thử. Do đó, có hai mươi hai hạng mục bao phủ kiểm thử được xác định ở bước trên sẽ có hai mươi hai ca kiểm thử.
Các ca kiểm thử tương ứng với các phân vùng được xác định từ đầu vào điểm thi được trình bày dưới đây. Lưu ý rằng đầu vào điểm luận văn trong bảng dưới đây được lấy một giá trị hợp lệ tùy ý là 15. Việc phân bổ một giá trị hợp lệ tùy ý cho tất cả đầu vào trong ca kiểm thử (trừ các trương hợp đang được kiểm thử) được thực hiện cho tất cả các ca kiểm thử trong điều khoản này.
Bảng B.1 - Các ca kiểm thử đối với đầu vào điểm thi
Ca kiểm thử |
1 |
2 |
3 |
Đầu vào (điểm thi) |
60 |
-10 |
93 |
Đầu vào (điểm luận văn) |
15 |
15 |
15 |
Điểm tổng (điểm thi + điểm luận văn) |
75 |
5 |
108 |
Hạng mục bao phủ kiểm thử |
TCOVER1 |
TCOVER3 |
TCOVER4 |
Phân vùng kiểm thử (của điểm thi (e)) |
0 ≤ e ≤ 75 |
e < 0 |
e >75 |
Đầu ra mong đợi |
điểm A |
Bản tin lỗi |
Bản tin lỗi |
Các ca kiểm thử tương ứng với các phân vùng được tạo ra từ đầu vào điểm luận văn là:
Bảng B.2 - Các ca kiểm thử đối với đầu vào điểm luận văn
Ca kiểm thử |
4 |
5 |
6 |
Đầu vào (điểm thi) |
40 |
40 |
40 |
Đầu vào (điểm luận văn) |
20 |
-15 |
47 |
Điểm tổng (điểm thi + điểm luận văn) |
60 |
25 |
87 |
Hạng mục bao phủ kiểm thử |
TCOVER2 |
TCOVER5 |
TCOVER6 |
Phân vùng kiểm thử (của điểm luận văn (c)) |
0 ≤ c ≤ 25 |
c < 0 |
c > 25 |
Đầu ra mong đợi |
Điểm B |
Bản tin lỗi |
Bản tin lỗi |
Các ca kiểm thử tương ứng với các phân vùng được tạo ra các từ đầu vào không hợp lệ là:
Bảng B.3 - Các ca kiểm thử đối với đầu vào không hợp lệ cho điểm thi
Ca kiểm thử |
7 |
8 |
9 |
Đầu vào (điểm thi) |
60.5 |
Q |
$ |
Đầu vào (điểm luận văn) |
15 |
15 |
15 |
Điểm tổng (điểm thi + điểm luận văn) |
75.5 |
không tính được |
không tính được |
Hạng mục bao phủ kiểm thử |
TCOVER7 |
TCOVER8 |
TCOVER9 |
Phân vùng kiểm thử |
điểm thi = số thực có phần thập phân |
điểm thi = chữ cái |
điểm thi = ký tự đặc biệt |
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bảng B.4 - Các ca kiểm thử đối với đầu vào không hợp lệ cho điểm luận văn
Ca kiểm thử |
10 |
11 |
12 |
Đầu vào (điểm thi) |
40 |
40 |
40 |
Đầu vào (điểm luận văn) |
20.23 |
G |
@ |
Điểm tổng (điểm thi + điểm luận văn) |
60.23 |
không tính được |
không tính được |
Hạng mục bao phủ kiểm thử |
TCOVER10 |
TCOVER11 |
TCOVER12 |
Phân vùng kiểm thử |
điểm luận văn = số thực có phần thập phân |
điểm luận văn = chữ cái |
điểm luận văn = ký tự đặc biệt |
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Các ca kiểm thử tương ứng với các phân vùng được tạo ra các từ đầu ra hợp lệ là:
Bảng B.5 - Các ca kiểm thử đối với đầu ra hợp lệ điểm tổng
Ca kiểm thử |
13 |
14 |
15 |
Đầu vào (điểm thi) |
60 |
44 |
32 |
Đầu vào (điểm luận văn) |
20 |
22 |
13 |
Điểm tổng (điểm thi + điểm luận văn) |
80 |
66 |
45 |
Hạng mục bao phủ kiểm thử |
TCOVER13 |
TCOVER14 |
TCOVER15 |
Phân vùng kiểm thử (của điểm tổng) |
70 ≤ t ≤ 100 |
50 ≤ t < 70 |
30 ≤ t < 50 |
Đầu ra mong đợi |
Điểm A |
Điểm B |
Điểm C |
Bảng B.6 - Các ca kiểm thử đối với đầu ra hợp lệ điểm tổng
Ca kiểm thử |
16 |
17 |
18 |
Đầu vào (điểm thi) |
12 |
80 |
-10 |
Đầu vào (điểm luận văn) |
5 |
60 |
-10 |
Điểm tổng (điểm thi + điểm luận văn) |
17 |
140 |
-20 |
Hạng mục bao phủ kiểm thử |
TCOVER16 |
TCOVER17 |
TCOVER18 |
Phân vùng kiểm thử (của điểm tổng (t)) |
0 ≤ t < 30 |
t > 100 |
t<0 |
Đầu ra mong đợi |
Điểm D |
Bản tin lỗi |
Bản tin lỗi |
Các giá trị đầu vào của điểm thi và điểm luận văn được tạo ra từ điểm tổng, tức là tổng điểm của điểm thi và điểm luận văn.
Các ca kiểm thử tương ứng với các phân vùng được tạo ra từ các đầu ra không hợp lệ là:
Bảng B.7 - Các ca kiểm thử đối với đầu ra không hợp lệ điểm tổng
Ca kiểm thử |
19 |
20 |
21 |
22 |
Đầu vào (điểm thi) |
47.3 |
5 |
72 |
Null |
Đầu vào (điểm luận văn) |
@@@ |
5 |
23 |
Null |
Điểm tổng (điểm thi + điểm luận văn) |
- |
10 |
95 |
- |
Hạng mục bao phủ kiểm thử |
TCOVER19 |
TCOVER20 |
TCOVER21 |
TCOVER22 |
Phân vùng kiểm thử (đầu ra) |
Bản tin lỗi |
điểm loại E |
điểm A+ |
‘Null’ |
Phân vùng (của điểm tổng) |
- |
0 ≤ t ≤ 15 |
90 ≤ t ≤ 100 |
- |
Đầu ra mong đợi |
Bản tin lỗi |
Điểm D |
Điểm A |
Bản tin lỗi |
Tùy thuộc vào quy trình Thiết kế và chuẩn bị kiểm thử, có thể không thể thực hiện được các ca kiểm thử có chứa các giá trị đầu vào không hợp lệ (ví dụ: các ca kiểm thử 2, 3, 5 đến 12 và các ca kiểm thử từ 17 đến 22 trong ví dụ trên). Chẳng hạn như trong ngôn ngữ lập trình Ada, nếu các biến đầu vào được khai báo là một số nguyên dương thì không thể gán giá trị âm cho nó. Mặc dù vậy, vẫn cần phải xem xét tất cả các ca kiểm thử.
B.2.1.6.3 Tùy chọn 4b: Xây dựng các ca kiểm thử theo phương pháp phân vùng tương đương tối thiểu hóa (TD4)
Điều B.2.1.6.2 ở trên cho thấy, có một số ca kiểm thử tương tự nhau, chẳng hạn như ca kiểm thử 1 và 13, sự khác biệt chính giữa chúng là hạng mục bao phủ kiểm thử cụ thể được lựa chọn từ các phân vùng mục tiêu. Do hạng mục kiểm thử ở ví dụ này có hai đầu vào và một đầu ra nên mỗi ca kiểm thử "bao phủ" ba phân vùng tương đương, đó là: hai phân vùng đầu vào và một phân vùng đầu ra. Do đó, chúng ta vẫn có thể tạo ra được một bộ kiểm thử nhỏ hơn "đã tối thiểu hóa" mà vẫn "bao phủ" tất cả các phân vùng đã xác định bằng cách xây dựng các ca kiểm thử mà bao phủ nhiều hơn một phân vùng.
Trong ví dụ này, có thể tạo ra được mười hai ca kiểm thử đã tối thiểu hóa dưới đây theo phương pháp phân vùng tương đương tối thiểu hóa, mỗi ca kiểm thử được thiết kế để bao phủ càng nhiều phân vùng sẽ tốt hơn là chỉ bao phủ một phân vùng.
Bảng B.8 - Các ca kiểm thử tối thiểu hóa
Ca kiểm thử |
1 |
2 |
3 |
4 |
Đầu vào (điểm thi) |
60 |
50 |
35 |
19 |
Đầu vào (điểm luận văn) |
20 |
16 |
10 |
8 |
Điểm tổng (điểm thi + điểm luận văn) |
80 |
66 |
45 |
27 |
Hạng mục bao phủ kiểm thử |
TCOVER1, TCOVER2, TCOVER13 |
TCOVER1, TCOVER2, TCOVER14 |
TCOVER1, TCOVER2, TCOVER15 |
TCOVER1, TCOVER2, TCOVER16 |
Phân vùng (của điểm thi) |
0 ≤ e ≤ 75 |
0 ≤ e ≤ 75 |
0 5 ≤ s ≤ 75 |
0 ≤ e ≤ 75 |
Phân vùng (của điểm luận văn) |
0 ≤ c ≤ 25 |
0 ≤ c ≤ 25 |
0 ≤ c ≤ 25 |
0 ≤ c ≤ 25 |
Phân vùng (của điểm tổng) |
70 ≤ t ≤ 100 |
50 ≤ t < 70 |
30 ≤ t < 50 |
0 ≤ t < 30 |
Đầu ra mong đợi |
điểm A |
điểm B |
điểm C |
điểm D |
Bảng B.9 - Các ca kiểm thử tối thiểu hóa (tiếp theo)
Ca kiểm thử |
5 |
6 |
7 |
8 |
Đầu vào (điểm thi) |
-10 |
93 |
60.5 |
Q |
Đầu vào (điểm luận văn) |
-15 |
47 |
20.23 |
G |
Điểm tổng (điểm thi + điểm luận văn) |
-25 |
140 |
80.73 |
- |
Hạng mục bao phủ kiểm thử |
TCOVER3, |
TCOVER4, |
TCOVER7, |
TCOVER8, |
|
TCOVER5, |
TCOVER6, |
TCOVER10, |
TCOVER11, |
|
TCOVER18 |
TCOVER17 |
TCOVER13, TCOVER19 |
TCOVER19 |
Phân vùng (của điểm thi) |
e < 0 |
e > 75 |
e = Số thực có phần thập phân |
e = chữ cái |
Phân vùng (của điểm luận văn) |
c<0 |
c > 25 |
c = Số thực có phần thập phân |
c = chữ cái |
Phân vùng (của điểm tổng) |
t<0 |
t > 100 |
70 ≤ t ≤ 100 |
- |
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bảng B.10 - Các ca kiểm thử tối thiểu hóa (tiếp theo)
Ca kiểm thử |
9 |
10 |
11 |
12 |
Đầu vào (điểm thi) |
$ |
5 |
72 |
‘Null’ |
Đầu vào (điểm luận văn) |
@ |
5 |
23 |
‘Null’ |
Điểm tổng (điểm thi + điểm luận văn) |
|
10 |
95 |
- |
Ca kiểm thử |
9 |
10 |
11 |
12 |
Hạng mục bao phủ kiểm thử |
TCOVER9, COVER12, TCOVER19 |
TCOVER1, TCOVER2, TC0VER16, TCOVER20 |
TCOVER1, TCOVER2, TCOVER13, TCOVER21 |
TCOVER19, TCOVER22 |
Phân vùng (của điểm thi) |
e = ký tự đặc biệt |
0 ≤ e ≤ 75 |
0 ≤ e ≤ 75 |
- |
Ca kiểm thử |
9 |
10 |
11 |
12 |
Phân vùng (của điểm luận văn) |
c = ký tự đặc biệt |
0 ≤ c ≤ 25 |
0 ≤ c ≤ 25 |
- |
Phân vùng (của điểm tổng) |
- |
0 < t ≤ 15 |
90 ≤ t ≤ 100 |
|
Phân vùng (của đầu ra) |
- |
điểm loại E |
điểm A+ |
‘Null' |
Đầu ra mong đợi |
Bản tin lỗi |
điểm D |
điểm A |
Bản tin lỗi |
Các phương pháp phân vùng tương đương một-một và phương pháp phân vùng tương đương tối thiểu hóa đại diện cho hai phương pháp khác nhau mà có thể được sử dụng để xây dựng các ca kiểm thử cho kỹ thuật phân vùng tương đương. Các ca kiểm thử được xây dựng theo phương pháp một-một đặc biệt hữu ích cho kiểm thử các điều kiện lỗi (tức là khi chúng ta đang mong muốn đầu ra là các bản tin lỗi), ví dụ, để làm giảm khả năng là ngừng xử lý một điều kiện lỗi và/ hoặc che giấu hoặc ngăn chặn các điều kiện lỗi khác. Nói cách khác, nhược điểm của phương pháp phân vùng tương đương một-một là đòi hỏi phải thiết kế nhiều ca kiểm thử hơn. Nếu phương pháp một - một này sinh nhiều vấn đề thì có thể sử dụng phương pháp tối thiểu hóa. Nhược điểm của phương pháp phân vùng tương đương tối thiểu hóa là trong trường hợp xảy ra lỗi kiểm thử thì khó xác định nguyên nhân do một số phân vùng mới được thực hiện cùng thời điểm. Vì vậy, cách tốt nhất là kết hợp hai phương pháp này lại bằng cách áp dụng phương pháp phân vùng tương đương tối thiểu hóa để thiết kế ca kiểm thử hợp lệ và phương pháp phân vùng tương đương một-một đê thiết kế ca kiểm thử không hợp lệ.
B.2.1.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
B.2.1.7.1 Các tùy chọn
Giả sử có thể tự động kiểm tra đáp ứng chấp nhận/ từ chối đối với từng ca kiểm thử, nhưng kiểm thử tự động không thể xử lý các bản tin lỗi (FM) thì chúng ta có thể tạo ra hai bộ kiểm thử (TS); một cho kiểm thử thủ công và một cho kiểm thử tự động.
B.2.1.7.2 Tùy chọn 5a: Tập hợp bộ kiểm thử đối với phân vùng tương đương một-một (TD5)
TS1: Kiểm thử thủ công - các ca kiểm thử 2, 3, 5, 6, 7, 8, 9,10,11,12,17,18, 19, 22.
TS2: Kiểm thử tự động - các ca kiểm thử 1, 4, 13,14, 15,16, 20, 21.
B.2.1.7.3 Tùy chọn 5b: Tập hợp bộ kiểm thử đối với phân vùng tương đương tối thiểu hóa (TD5)
TS3: Kiểm thử thủ công - các ca kiểm thử 5, 6, 7, 8, 9, 12.
TS4: Kiểm thử tự động - các ca kiểm thử 1, 2, 3, 4, 10, 11.
B.2.1.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
B.2.1.8.1 Các tùy chọn
Bây giờ có thể tạo được các thủ tục kiểm thử đối với phân vùng tương đương một-một và phân vùng tương đương tối thiểu hóa.
B.2.1.8.2 Tùy chọn 6a: Xác định các thủ tục kiểm thử đối với phân vùng tương đương một-một (TD6)
Đối với các ca kiểm thử thủ công trong bộ kiểm thử TS1 dành cho phân vùng tương đương một-một, có thể xác định được một thủ tục kiểm thử (TP) như sau:
TP1: Kiểm thử thủ công, bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
Đối với các ca kiểm thử tự động trong bộ kiểm thử TS2, có thể viết được một nhóm mã lệnh dạng đặc tả kịch bản để thực hiện tất cả các ca kiểm thử trong bộ kiểm thử dưới đây:
TP2: Kiểm thử tự động, bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS2, theo thứ tự quy định trong bộ kiểm thử.
Đối với thủ tục kiểm thử tự động TP2, mã tự động mà thực hiện các thủ tục cần phải được viết mã lệnh dạng đặc tả kịch bản kiểm thử tự động.
B.2.1.8.3 Tùy chọn 6b: Xác định các thủ tục kiểm thử đối với phân vùng tương đương tối thiểu hóa (TD6)
Đối với các ca kiểm thử trong bộ kiểm thử tối thiểu hóa TS3, có thể xác định một thủ tục kiểm thử (Tp) như sau:
TP3: Kiểm thử thủ công, bao phủ tất cả các ca kiểm thử trong TS3, theo thứ tự quy định trong bộ kiểm thử.
Đối với các ca kiểm thử trong bộ kiểm thử tối thiểu hóa TS4, có thể viết được một nhóm mã lệnh dạng đặc tả kịch bản để thực hiện tất cả các ca kiểm thử trong bộ kiểm thử dưới đây:
TP4: Kiểm thử tự động, bao phủ tất cả các ca kiểm thử trong TS4, theo thứ tự quy định trong bộ kiểm thử.
B.2.1.9 Độ bao phủ kỹ thuật phân lớp tương đương
Sử dung công thức đã nêu trong Điều 6.2.1 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ phân lớp tương đương đạt được là 100% đối với cả phương pháp phân vùng tương đương một-một và phân vùng tương đương tối thiểu hóa, cho phép tất cả hai mươi hai phân vùng đã xác định được thực hiện bởi ít nhất một ca kiểm thử. Có thể chỉ đạt được mức độ bao phủ thấp hơn khi tất cả các phân vùng đã xác định không được thực hiện hết. Nếu không xác định được tất cả các phân vùng tương đương thì bất kỳ phương pháp tính độ bao phủ nào dựa trên bộ không đầy đủ các phân vùng tương đương này có thể không chính xác. Tuy nhiên, việc phân tích hạng mục bao phủ khác nhau có thể xác định được các phân vùng tương đương khác nhau, đặc biệt là đối với các giá trị “không hợp lệ”, các phương pháp tính độ bao phủ đối với kỹ thuật phân vùng tương đương phải được coi như là các phân vùng “đã xác định”.
B.2.2 Phương pháp cây phân loại
B.2.2.1 Giới thiệu
Mục đích của cây phân loại lá xây dựng các ca kiểm thử bao phủ các phân vùng đầu vào của các hạng mục kiểm thử theo phân lớp tương đương đã chọn. Đối với phương pháp cây phân loại, phải xây dựng được một cây phân loại minh họa các phân vùng và hỗ trợ kỹ sư kiểm thử thiết kế các ca kiểm thử.
B.2.2.2 Đặc tả
Hãy xem xét cơ sở kiểm thử đối với một hạng mục kiểm thử sở thích_du lịch (travelpreference), trong đó ghi lại những sở thích du lịch của các nhân viên của một tổ chức người Úc đi du lịch đến các thành phố chính của Úc với mục đích công việc. Mỗi bộ sở thích du lịch được lựa chọn thông qua một loạt các nút radio, trong đó bao gồm những giá trị đầu vào sau:
Nơi đến = Adelaide, Brisbane, Canberra, Darwin, Hobart, Melbourne, Perth, Sydney
Hạng ghế = Hạng nhất, hạng thương gia, hạng phổ thông
Chỗ ngồi = Chỗ ngồi cạnh lối đi, chỗ ngồi cạnh cửa sổ
Suất ăn = Suất ăn cho người mắc bệnh tiểu đường, suất ăn không có chất gluten, suất ăn cho người ăn chay (ăn trứng và sữa, kiêng thịt), suất ăn ít chất béo/ít cholesterol, suất ăn không có chất đường có trong sữa, suất ăn cho người ăn chay toàn rau, suất ăn theo tiêu chuẩn.
Bất kỳ sự kết hợp của một lớp từ mỗi phân lớp trên sẽ xuất hiện một bản tin "đăng ký trước được chấp nhận", ngược lại sẽ xuất hiện một bản tin báo lỗi "đầu vào không hợp lệ". Nhân viên không có tùy chọn khi lựa chọn không ăn, do đó tùy chọn này không được hỗ trợ trong ví dụ này.
B.2.2.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được xác định trong cơ sở kiểm thử, chỉ cần phải xác định một tập tính năng là:
FS1: Hàm sở thích du lịch (travel_preference)
B.2.2.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Đối với phương pháp cây phân loại, các điều kiện kiểm thử được xác định bằng cách xác định được các phân lớp và các lớp cho từng tham số đầu vào.
TCOND1: |
Nơi đến |
(đối với tập tính năng FS1) |
TCOND2: |
Hạng |
(đối với tập tính năng FS1) |
TCOND3: |
Chỗ ngồi |
(đối với tập tính năng FS1) |
TCOND4: |
Suất ăn |
(đối với tập tính năng FS1) |
CHÚ THÍCH 1: Cũng có thể xác định được các điều kiện kiểm thử không hợp lệ mặc dù không được minh chứng trong ví dụ này.
Mỗi điều kiện kiểm thử trong số các điều kiện kiểm thử trong ví dụ này là một “phân lớp" (tức là một phân vùng). “Các lớp" (tức là các phân vùng con) và các lớp con có thể được tạo ra cho phân lớp suất ăn như sau:
Suất ăn (phân lớp) được phân loại thành suất ăn cho người ăn chay và suất ăn cho người không ăn chay.
Suất ăn cho người ăn chay (lớp) = suất ăn cho người ăn chay (ăn trứng và sữa, kiêng thịt) và suất ăn cho người ăn chay toàn rau.
Suất ăn cho người không ăn chay (lớp) = suất ăn cho người mắc bệnh tiểu đường, suất ăn không có chất gluten, suất ăn ít chất béo/ ít cholesterol, suất ăn không có chất đường có trọng sữa, suất ăn theo tiêu chuẩn.
CHÚ THÍCH 2: Việc thiết kế các phân lớp và các lớp thường là một hoạt động chủ quan, do đó các kỹ sư kiểm thử khác sử dụng kỹ thuật này có thể thiết kế các phân lớp và các lớp khác so với các phân lớp và các lớp được tạo ra trong ví dụ này.
Hình dưới là một cây phân loại cho các điều kiện kiểm thử này.
Hình B.4 - Ví dụ về cây phân loại
B.2.2.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Các hạng mục bao phủ kiểm thử được xác định bằng cách lựa chọn phương pháp kết (được nêu trong Điều 5.2.2 2), sau đó kết hợp các lớp theo phương pháp đã chọn. Một "bảng kết hợp" có thể được xây dựng theo cây phân loại để minh họa các lớp được kết hợp để tạo thành từng hạng mục bao phủ kiểm thử (xem Hình B.5 dưới đây). Các lớp được bao phủ bởi mỗi hạng mục bao phủ kiểm thử được đánh dấu bằng các hình tròn (chấm đen) mà nằm ngang phía dưới cây phân loại.
Giả sử phương pháp kết hợp được lựa chọn là phương pháp phân vùng tương đương "tối thiểu hóa", trong đó mỗi mục bao phủ kiểm thử bao phủ càng nhiều lớp càng tốt cho đến khi có ít nhất một ca kiểm thử bao gồm tất cả các lớp, do đó có thể được xác định được các hạng mục bao phủ kiểm thử được trình bày trong Hình B.5 dưới đây.
Hình B.5 - Ví dụ về cây phân loại và bảng kết hợp tương ứng
Trong ví dụ này, tất cả các hạng mục bao phủ kiểm thử bao phủ tất các các điều kiện kiểm thử.
B.2.2.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Có thể xây dựng được một bộ các ca kiểm thử, trong đó mỗi ca kiểm thử bao phủ duy nhất một hạng mục bao phủ kiểm thử. Các ca kiểm thử được xây dựng bằng cách lựa chọn một hạng mục bao phủ kiểm thử tại thời điểm mà chưa được bao phủ bởi một ca kiểm thử nào và gán cho nó các giá trị đầu vào kiểm thử mà bao phủ các lớp kết hợp đó. Việc này được lặp đi lặp lại cho đến khi đạt được mức độ bao phủ quy định. Kết quả mong đợi được xác định bằng cách cung cấp các đầu vào cho cơ sở kiểm thử. Trong trường hợp cụ thể này, bất kỳ sự kết hợp nào của các đầu vào hợp lệ đều xuất hiện bản tin thông báo "đăng ký trước được chấp nhận".
Bảng B.11 - Các ca kiểm thử đối với kiểm thử cây phân loại
Ca kiểm thử |
Các giá trị đầu vào |
Kết quả mong đợi |
Hạng mục bao phủ kiểm thử |
|||
Nơi đến |
Hạng ghế |
Chỗ ngồi |
Suất ăn theo sở thích |
|||
1 |
Adelaide |
Hạng nhất |
Cạnh lối đi |
suất ăn kiêng (ăn trứng và sữa, kiêng thịt) |
Đặt vé được chấp nhận |
TCOVER1 |
2 |
Brisbane |
Hạng thương gia |
Cạnh cửa sổ |
suất ăn cho người ăn chay |
Đặt vé được chấp nhận |
TCOVER2 |
3 |
Canberra |
Hạng phổ thông |
Cạnh lối đi |
suất ăn cho người mắc bệnh tiểu đường |
Đặt vé được chấp nhận |
TCOVER3 |
4 |
Darwin |
Hạng nhất |
Cạnh cửa sổ |
Suất ăn không có chất gluten |
Đặt vé được chấp nhận |
TCOVER4 |
5 |
Hobart |
Hạng thương gia |
Cạnh lối đi |
suất ăn ít chất béo/ ít cholesterol. |
Đặt vé được chấp nhận |
TCOVER5 |
6 |
Melbourne |
Hạng phổ thông |
Cạnh cửa sổ |
Suất ăn không có chất đường có trong sữa |
Đặt vé được chấp nhận |
TCOVER6 |
7 |
Perth |
Hạng nhất |
Cạnh lối đi |
Suất ăn theo tiêu chuẩn |
Đặt vé được chấp nhận |
TCOVER7 |
8 |
Sydney |
Hạng thương gia |
Cạnh cửa sổ |
suất ăn kiêng (ăn trứng và sữa, kiêng thịt) |
Đặt vé được chấp nhận |
TCOVER8 |
B.2.2.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Vì có ít ca kiểm thử được tạo ra trong ví dụ này nên người ta có thể kết hợp chúng vào một bộ kiểm thử sau:
TS1: Gồm các ca kiểm thử 1,2,3,4, 5,6, 7, 8
B.2.2.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì tất cả các ca kiểm thử nằm trong một bộ kiểm thử nên chúng ta có thể tạo ra được một thủ tục kiểm thử sau:
TP1: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
B.2.2.9 Tính độ bao phủ phương pháp cây phân loại
Sử dụng công thức đã nêu trong Điều 6.2.2 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với phương pháp cây phân loại đạt được là 100%.
B.2.3.1 Giới thiệu
Mục đích của phân tích giá trị biên là để xây dựng một bộ các ca kiểm thử mà bao phủ các biên của từng phân vùng đầu vào và đầu ra của hạng mục kiểm thử theo mức bao phủ giá trị biên đã chọn. Kỹ thuật này được thực hiện như sau: Thứ nhất, phân chia các đầu vào và đầu ra của một hạng mục kiếm thử thành các lớp tương đương theo cơ sở kiểm thử đối với các hạng mục kiểm thử, các lớp này sẽ được xử lý tương tự bởi các hạng mục kiểm thử; thứ hai, sắp xếp liên tiếp các biên của một số phân vùng từ thấp nhất đến cao nhất; thứ ba, hầu hết các lỗi được tìm thấy tại các biên của phân vùng tiếp giáp nên cần phải tập trung vào kiểm thử các biên này. Các ca kiểm thử được xây dựng dựa trên các giá trị biên này.
Sau đây là một ví dụ về kiểm thử ba giá trị biên theo phương pháp một-một (xem Điều 5.2.3.2 và 5.2.3.3). Để xác định được các biên cho một mục kiểm thử, trước tiên phải xác định được các phân vùng tương đương của các hạng mục kiểm thử, sau đó xác định các giá trị biên từ mỗi lớp tương đương.
B.2.3.2 Đặc tả
Hãy xem xét một hạng mục kiểm thử tạo điểm với cơ sở kiểm thử sau:
Nếu thành phần nhận được điểm thi (theo thang điểm 75) và điểm luận văn (c/w) (theo thang điểm 25) là các đầu vào, từ đó có thể tính được điểm cho khóa học, điểm của khóa học được phân loại thành các điểm từ loại 'A' đến điểm loại 'D'. Các điểm này được đưa ra căn cứ vào cách tính toán điểm tổng. Điểm tổng bằng điểm thi và điểm luận văn (c/w) cộng với nhau, do đó chúng ta có các phân vùng sau:
Điểm tổng lớn hơn hoặc bằng 70 - đạt điểm A
Điểm tổng lớn hơn hoặc bằng 50, nhưng nhỏ hơn 70 - đạt điểm B
Điểm tổng lớn hơn hoặc bằng 30, nhưng nhỏ hơn 50 - đạt điểm C
Điểm tổng nhỏ hơn 30 - đạt điểm D
Nếu phát hiện (các) đầu vào không hợp lệ (ví dụ như điểm nằm ngoài giới hạn quy định) thì sẽ xuất hiện bản tin lỗi ('FM'). Tất cả các điểm đầu vào mà đạt phải là các số nguyên.
B.2.3.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được định nghĩa trong cơ sở kiểm thử nên chỉ có một tập tính năng (FS) được tạo ra, đó là:
FS1: Hàm tạo-điểm
B.2.3.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
B.2.3.4.1 Các bước con
Đối với phân tích giá trị biên, các điều kiện kiểm thử chính là các biên (nằm giữa các phân vùng) đã được lựa chọn để được bao phủ trong khi kiểm thử. Để xác định các biên, trước tiên phải xác định được các phân vùng tương đương (xem bước 2a dưới đây), sau đó xác định các điều kiện kiểm thử (các biên) (xem bước 2b dưới đây).
B.2.3.4.2 Bước 2a: Xác định các vùng tương đương
Các phân vùng được xác định theo các đầu vào và đầu ra hợp lệ và không hợp lệ của tập tính năng FS1.
Các phân vùng tương đương (EP) hợp lệ đối với đầu vào là điểm thi và điểm luận văn được xác định như sau:
EP1: 0 ≤ điểm thi ≤ 75 (đối với tập tính năng FS1)
EP2: 0 ≤ điểm luận văn ≤ 25 (đối với tập tính năng FS1)
Các phân vùng tương đương không hợp lệ đối với đầu vào là điểm thi và điểm luận văn được xác định như sau:
EP3 |
Điểm thi > 75 |
(đối với tập tính năng FS1) |
EP4 |
Điểm thi < 0 |
(đối với tập tính năng FS1) |
EP5 |
Điểm luận văn > 25 |
(đối với tập tính năng FS1) |
EP6 |
Điểm luận văn < 0 |
(đối với tập tính năng FS1) |
Mặc dù các phân vùng từ EP3 đến EP6 chỉ xuất hiện trên một biên nhưng thực tế các phân vùng này có biên được tạo bởi các giá trị nhỏ nhất và lớn nhất phụ thuộc vào việc thực hiện. Đối với kiểu số nguyên 16 bits có miền giá trị từ -32.768 đến 32.767, có hai giá trị biên tương ứng 32.767 và -32.768. Do đó các phân vùng từ EP3 đến EP6 có thể được xác định đầy đủ hơn như sau:
EP3 EP4 EP5 EP6 |
75 < điểm thi ≤ 32767 -32768 ≤ điểm thi < 0 25 < điểm luận văn ≤ 32767 -32768 ≤ điểm luận văn < 0 |
(đối với tập tính năng FS1) (đối với tập tính năng FS1) (đối với tập tính năng FS1) (đối với tập tính năng FS1) |
Phạm vi các giá trị được phân vùng có thể được biểu diễn trong hình dưới đây:
Hình B.6 - Các biên và các phân vùng tương đương của điểm thi
Đối với đầu vào là điểm luận văn, chúng ta có:
Hình B.7 - Các giá trị biên và các phân vùng tương đương của điểm luận văn
Các phân vùng đầu vào không hợp lệ, kém rõ ràng hơn có thể bao gồm các kiểu đầu vào khác như đầu vào không phải là số nguyên và đầu vào không phải là chữ số. Việc phân vùng tương đương này có thể mang tính chủ quan và như vậy mỗi kỹ sư kiểm thử có thể xác định được các phân vùng khác nhau mà họ cảm thấy có liên quan. Người ta gọi là phân vùng tương đương vì tất cả các giá trị trong một phân vùng phải được xử lý tương tự bởi hạng mục kiểm thư. Vì vậy, có thể tạo ra các phân vùng tương đương không hợp lệ dưới đây cho 2 trường đầu vào là điểm thi và điểm luận văn:
EP7: Điểm thi = số thực có phần thập phân |
(đối với tập tính năng FS1) |
EP8: Điểm thi = chữ cái |
(đối với tập tính năng FS1) |
EP9: Điểm thi = ký tự đặc biệt |
(đối với tập tính năng FS1) |
EP10: Điểm luận văn = số thực có phần thập phân |
(đối với tập tính năng FS1) |
EP11: Điểm luận văn = chữ cái |
(đối với tập tính năng FS1) |
EP12: Điểm luận văn = ký tự đặc biệt |
(đối với tập tính năng FS1) |
Các phân vùng tương đương từ EP7 đến EP12 không có biên xác định, do đó không tạo ra được hạng mục bao phủ kiểm thử hoặc ca kiểm thử nào.
Tiếp theo, xác định được các phân vùng cho các đầu ra là điểm tổng. Các phân vùng hợp lệ đối với đầu ra điểm tổng được xác định như sau:
EP13 |
Điểm A được tạo ra bởi 70 ≤ điểm tổng ≤ 100 |
(đối với tập tính năng FS1) |
EP14 |
Điểm B được tạo ra bởi 50 ≤ điểm tổng < 70 |
(đối với tập tính năng FS1) |
EP15 |
Điểm C được tạo ra bởi 30 ≤ điểm tổng < 50 |
(đối với tập tính năng FS1) |
EP16 |
Điểm D được tạo ra bởi 0 ≤ điểm tổng < 30 |
(đối với tập tính năng FS1) |
EP17 |
Bản tin lỗi (FM) được tạo ra bởi điểm tổng >100 |
(đối với tập tính năng FS1) |
EP18: |
Bản tin lỗi (FM) được tạo ra bởi điểm tổng < 0 |
(đối với tập tính năng FS1) |
Trong đó điểm tổng = điểm thi + điểm luận văn.
Tương tự các đầu vào, đầu ra được xác định biên cả hai bên theo các giá trị tối đa và tối thiểu tùy thuộc vào việc thực hiện. Giả sử rằng đầu ra là kiểu số nguyên 16 bits có miền giá trị từ -32.768 đến 32.767, có hai giá trị biên đó là 32.767 và -32.768. Do đó các phân vùng từ EP17 đến EP18 có thể được xác định đầy đủ hơn như sau:
EP17: 100 < điểm tổng ≤ 32767 (đối với tập tính năng FS1)
EP18: -32768 ≤ điểm tổng < 0 (đối với tập tính năng FS1)
Ở đây, cần phải lưu ý “bản tin lỗi” vì nó là một đầu ra quy định. Các phân vùng tương đương và biên cho điểm tổng được thể hiện trong Hình B.8:
Hình B.8 - Các biên và các phân vùng tương đương của điểm tổng
Một đầu ra không hợp lệ sẽ là bất kỳ đầu ra nào từ các hạng mục kiểm thử mà khác so với một trong năm đầu ra quy định. Có thể rất khó khăn khi xác định các đầu ra không xác định. Tuy nhiên, phải lưu ý đến chúng nếu không sẽ bị thiếu khi xác định hạng mục kiểm thử, cơ sở kiểm thử hoặc cả hai. Đối với ví dụ này, xác định được ba đầu ra không xác định (điểm E, A+ và 'null'), nhưng không thể gộp các đầu ra này vào các phân vùng mà từ các biên, do đó không có ca kiểm thử nào được tạo ra.
B.2.3.4.3 Bước 2b: Xác định các điều kiện kiểm thử
Khi đã xác định được các phân vùng tương đương cho mỗi trường đầu vào và đầu ra, có thể xác định được các điều kiện kiểm thử. Điều kiện kiểm thử là các biên của từng phân vùng tương đương.
Đối với các phân vùng hợp lệ của các trường đầu vào điểm thi và điểm luận văn, có thể xác định được các điều kiện kiểm thử dưới đây. Lưu ý rằng các biên giống nhau (ví dụ như các biên "0" nằm trên các cạnh của EP1 và EP4) chỉ được bao phủ bởi một điều kiện kiểm thử.
TCOND1: TCOND2: TCOND3: TCOND4 |
Điểm thi = 0 Điểm thi = 75 Điểm luận văn = 0 Điểm luận văn = 25 |
(đối với phân vùng tương đương EP1 và EP4) (đối với phân vùng tương đương EP1 và EP3) (đối với phân vùng tương đương EP2và EP6) (đối với phân vùng tương đương EP2 và EP5) |
Đối với các phân vùng tương đương hợp lệ cho điểm tổng, có thể xác định được các biên sau:
TCOND5: TCOND6: TCOND7: TCOND8: TCOND9: TCOND10: TCOND11: TCOND12: |
Điểm tổng = 0 Điểm tổng = 29 Điểm tổng = 30 Điểm tổng = 49 Điểm tổng = 50 Điểm tổng = 69 Điểm tổng = 70 Điểm tổng = 100 |
(đối với phân vùng tương đương EP16 và EP18) (đối với phân vùng tương đương EP15 và EP16) (đối với phân vùng tương đương EP15 và EP16) (đối với phân vùng tương đương EP14 và EP15) (đối với phân vùng tương đương EP14 và EP15) (đối với phân vùng tương đương EP13 và EP14) (đối với phân vùng tương đương EP13 và EP14) (đối với phân vùng tương đương EP13 và EP17) |
Đối với các phân vùng không hợp lệ của các trường đầu vào, có thể xác định được các điều kiện kiểm thử sau:
TCOND13: TCOND14: TCOND15: TCOND16: |
Điểm thi = 32767 Điểm thi = -32768 Điểm luận văn = 32767 Điểm luận văn = -32768 |
(đối với phân vùng tương đương EP3) (đối với phân vùng tương đương EP4) (đối với phân vùng tương đương EP5) (đối với phân vùng tương đương EP6) |
Cuối cùng, đối với các phân vùng không hợp lệ của điểm tổng, có thể xác định được các điều kiện kiểm thử sau:
TCOND17 TCOND18 TCOND19 TCOND20 |
Điểm tổng = 101 Điểm tổng = 32767 Điểm tổng = -1 Điểm tổng = -32768 |
(đối với phân vùng tương đương EP17) (đối với phân vùng tương đương EP17) (đối với phân vùng tương đương EP18) (đối với phân vùng tương đương EP18) |
B.2.3.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Nếu áp dụng kỹ thuật phân tích 3 giá trị biên, các hạng mục bao phủ kiểm thử là các giá trị mà nằm ở trên biên của phân vùng tương đương và bên cạnh biên và cách nhau một khoảng nhỏ nhất như được trình bày trong Hình B.9:
Hình B.9 - Các hạng mục bao phủ kiểm thử đối với phân tích 3 giá trị biên
CHÚ THÍCH 1: Có thể dùng kỹ thuật phân tích 2 giá trị biên tạo ra một số lượng các hạng mục bao phủ kiểm thử ít hơn và các ca kiểm thử tương ứng ít hơn.
Các biên đã được xác định trong bước trên là các điều kiện kiểm thử, có thể xác định được các hạng mục bao phủ kiểm thử (TCOVER) sau đây. Vì chúng ta sử dụng các số nguyên trong ví dụ này nên các hạng mục bao phủ kiểm thử nằm trên cả hai bên của mỗi biên.
CHÚ THÍCH 2: Nếu ví dụ bao gồm các kiểu dữ liệu dạng số như số thực có phần thập phân (ví dụ như các số thực) thì các hạng mục bao phủ kiểm thử đối với kỹ thuật phân tích giá trị biên sẽ là giá trị nhỏ nhất đối với kiểu dữ liệu:
TCOVER1 |
Điểm thi = -1 |
(dựa theo điều kiện kiểm thử TCOND1) |
TCOVER2 |
Điểm thi = 0 |
(dựa theo điều kiện kiểm thử TCOND1) |
TCOVER3 |
Điểm thi = 1 |
(dựa theo điều kiện kiểm thử TCOND1) |
TCOVER4 |
Điểm thi = 74 |
(dựa theo điều kiện kiểm thử TCOND2) |
TCOVER5 |
Điểm thi = 75 |
(dựa theo điều kiện kiểm thử TCOND2) |
TCOVER6 |
Điểm thi = 76 |
(dựa theo điều kiện kiểm thử TCOND2) |
TCOVER7 |
Điểm luận văn = -1 |
(dựa theo điều kiện kiểm thử TCOND3) |
TCOVER8 |
Điểm luận văn = 0 |
(dựa theo điều kiện kiểm thử TCOND3) |
TCOVER9 |
Điểm luận văn = 1 |
(dựa theo điều kiện kiểm thử TCOND3) |
TCOVER10: |
Điểm luận văn = 24 |
(dựa theo điều kiện kiểm thử TCOND4) |
TCOVER11: |
Điểm luận văn = 25 |
(dựa theo điều kiện kiểm thử TCOND4) |
TCOVER12: |
Điểm luận văn = 26 |
(dựa theo điều kiện kiểm thử TCOND4) |
Đối với các trường đầu ra điểm tổng, có thể xác định được các hạng mục bao phủ kiểm thử sau đây:
TCOVER13: Điểm tổng =-1 TCOVER14: Điểm tổng = 0 TCOVER15: Điểm tổng = 1 TCOVER16: Điểm tổng = 28 TCOVER17: Điểm tổng = 29 TCOVER18: Điểm tổng = 30 TCOVER19: Điểm tổng = 31 TCOVER20: Điểm tổng = 48 TCOVER21: Điểm tổng = 49 TCOVER22: Điểm tổng = 50 TCOVER23: Điểm tổng = 51 TCOVER24: Điểm tổng = 68 TCOVER25: Điểm tổng = 69 TCOVER26: Điểm tổng = 70 TCOVER27: Điểm tổng = 71 TCOVER28: Điểm tổng = 99 TCOVER29: Điểm tổng = 100 TCOVER30: Điểm tổng = 101 |
(dựa theo điều kiện kiểm thử TCOND5 và TCOND19) (dựa theo điều kiện kiểm thử TCOND5 và TCOND19) (dựa theo điều kiện kiểm thử TCOND5) (dựa theo điều kiện kiểm thử TCOND6) (dựa theo điều kiện kiểm thử TCOND6 và TCOND7) (dựa theo điều kiện kiểm thử TCOND6 và TCOND7) (dựa theo điều kiện kiểm thử TCOND7) (dựa theo điều kiện kiểm thử TCOND8) (dựa theo điều kiện kiểm thử TCOND8 và TCOND9) (dựa theo điều kiện kiểm thử TCOND8 và TCOND9) (dựa theo điều kiện kiểm thử TCOND9) (dựa theo điều kiện kiểm thử TCOND10) (dựa theo điều kiện kiểm thử TCOND10 và TCOND11) (dựa theo điều kiện kiểm thử TCOND10 và TCOND11) (dựa theo điều kiện kiểm thử TCOND11) (dựa theo điều kiện kiểm thử TCOND12) (dựa theo điều kiện kiểm thử TCOND12 vàTCOND17) (dựa theo điều kiện kiểm thử TCOND12vàTCOND17) |
Lưu ý rằng các lớp tương đương từ EP7 đến EP12 chưa được bao phủ bởi bất kỳ hạng mục bao phủ kiểm thử nào vì các phân vùng này không có các biên xác định (như đă nêu ở bước trên).
Đối với các phân vùng không hợp lệ còn lại mà đã được xác định (tức là đối với các biên của các điều kiện kiểm thử từ TCOND13 đến TCOND20 vẫn chưa được bao phủ), có thể xác định được các hạng mục bao phủ kiểm thử không hợp lệ sau đây:
TCOVER31: |
Điểm thi = 32766 |
(dựa theo điều kiện kiểm thử TCOND13) |
TCOVER32: |
Điểm thi = 32767 |
(dựa theo điều kiện kiểm thử TCOND13) |
TCOVER33: |
Điểm thi = 32768 |
(dựa theo điều kiện kiểm thử TCOND13) |
TCOVER34: |
Điểm thi = -32769 |
(dựa theo điều kiện kiểm thử TCOND14) |
TCOVER35: |
Điểm thi = -32768 |
(dựa theo điều kiện kiểm thử TCOND14) |
TCOVER36: |
Điểm thi = -32767 |
(dựa theo điều kiện kiểm thử TCOND14) |
TCOVER37: |
Điểm luận văn = 32766 |
(dựa theo điều kiện kiểm thử TCOND15) |
TCOVER38: |
Điểm luận văn = 32767 |
(dựa theo điều kiện kiểm thử TCOND15) |
TCOVER39: |
Điểm luận văn = 32768 |
(dựa theo điều kiện kiểm thử TCOND15) |
TCOVER40: |
Điểm luận văn = -32769 |
(dựa theo điều kiện kiểm thử TCOND16) |
TCOVER41: |
Điểm luận văn = -32768 |
(dựa theo điều kiện kiểm thử TCOND16) |
TCOVER42: |
Điểm luận văn = -32767 |
(dựa theo điều kiện kiểm thử TCOND16) |
TCOVER43: |
Điểm tổng = 102 |
(dựa theo điều kiện kiểm thử TCOND17) |
TCOVER44: |
Điểm tổng = 32766 |
(dựa theo điều kiện kiểm thử TCOND18) |
TCOVER45: |
Điểm tổng = 32767 |
(dựa theo điều kiện kiểm thử TCOND18) |
TCOVER46: |
Điểm tổng = 32768 |
(dựa theo điều kiện kiểm thử TCOND18) |
TCOVER47: |
Điểm tổng = -2 |
(dựa theo điều kiện kiểm thử TCOND19) |
TCOVER48: |
Điểm tổng = -32769 |
(dựa theo điều kiện kiểm thử TCOND20) |
TCOVER49: |
Điểm tổng = -32768 |
(dựa theo điều kiện kiểm thử TCOND20) |
TCOVER50: |
Điểm tổng = -32767 |
(dựa theo điều kiện kiểm thử TCOND20) |
B.2.3.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử có thể được xây dựng để bao phủ các hạng mục bao phủ kiểm thử đã được xác định trong bước trước. Ví dụ, để đạt được độ bao phủ biên là 100% thl phải xây dựng tất cả các ca kiểm thử để bao phủ tất cả các hạng mục bao phủ kiểm thử. Có thể sử dụng kỹ thuật phân tích giá trị biên một- một để xây dựng một ca kiểm thử dựa cho hạng mục bao phủ kiểm thử hoặc có thể sử dụng kỹ thuật phân tích giá trị biên tối thiểu hóa nhằm giảm tối thiểu các ca kiểm thử cần xây dựng mà vẫn bao phủ toàn bộ các hạng mục bao phủ kiểm thử.
Các điều kiện tiên quyết của tất cả các ca kiểm thử đối với hàm tạo điểm đều giống nhau đó là đều có đầu vào điểm thi và điểm luận văn.
Giả sử độ bao phủ biên đạt 100% và sử dụng kỹ thuật phương pháp phân tích giá trị biên một-một để xây dựng các ca kiểm thử thì có thể tạo ra được sáu ca kiểm thử cho đầu vào điểm thi như được trình bày trong Bảng B.12. Mỗi ca kiểm thử được tạo ra như sau: Thứ nhất, lựa chọn một giá trị biên (hạng mục bao phủ kiểm thử) cho từng ca kiểm thử; Thứ hai, phân bổ một giá trị hợp lệ tùy ý cho tất cả các đầu vào khác có trong ca kiểm thử; và thứ ba, xác định kết quả mong đợi của kiểm thử.
Bảng B.12 - Các ca kiểm thử đối với điểm thi
Ca kiểm thử |
1 |
2 |
3 |
4 |
5 |
6 |
Đầu vào (điểm thi) |
-1 |
0 |
1 |
74 |
75 |
76 |
Đầu vào (điểm luận văn) |
15 |
15 |
15 |
15 |
15 |
15 |
Điểm tổng (điểm thi + điểm luận văn) |
14 |
15 |
16 |
89 |
90 |
91 |
Hạng mục bao phủ kiểm thử |
1 |
2 |
3 |
4 |
5 |
6 |
Giá trị biên được kiểm thử (điểm thi) |
0 |
25 |
||||
Đầu ra mong đợi |
Bản tin lỗi |
điểm D |
điểm D |
điểm A |
điểm A |
Bản tin lỗi |
Lưu ý: Đầu vào điểm luận văn được lấy một giá trị tùy ý là 15, do các ca kiểm thử này tập trung vào thực hiện tạo các biện điểm thi.
Các ca kiểm thử được xây dựng từ đầu vào điểm luận văn là:
Bảng B.13 - Các ca kiểm thử đối với điểm luận văn
Ca kiểm thử |
7 |
8 |
9 |
10 |
11 |
12 |
||
Đầu vào (điểm thi) |
40 |
40 |
40 |
40 |
40 |
40 |
||
Đầu vào (điểm luận văn) |
-1 |
0 |
1 |
24 |
25 |
26 |
||
Điểm tổng (điểm thi + điểm luận văn) |
39 |
40 |
41 |
64 |
65 |
66 |
||
Hạng mục bao phủ kiểm thử |
7 |
8 |
9 |
10 |
11 |
12 |
||
Giá trị biên được kiểm thử (điểm thi) |
0 |
25 |
||||||
Đầu ra mong đợi |
Bản tin lỗi |
điểm C |
điểm C |
điểm B |
điểm B |
Bản tin lỗi |
||
Lưu ý: Đầu vào điểm thi được lấy một giá trị hợp lệ tùy ý là 40. Các ca kiểm thử được xây dựng từ các đầu ra điểm tổng là:
Bảng B.14 - Các ca kiểm thử đối với điểm tổng
Ca kiểm thử |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
Đầu vào (điểm thi) |
-1 |
0 |
0 |
28 |
29 |
15 |
6 |
Đầu vào (điểm luận văn) |
0 |
0 |
1 |
0 |
0 |
15 |
25 |
Điểm tổng (điểm thi + điểm luận văn) |
-1 |
0 |
1 |
28 |
29 |
30 |
31 |
Hạng mục bao phủ kiểm thử |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
Giá trị biên được kiểm thử (điểm tổng) |
0 |
29 |
29, 30 |
30 |
|||
Đầu ra mong đợi |
bản tin lỗi |
điểm D |
điểm D |
điểm D |
điểm D |
điểm C |
điểm C |
Bảng B.15 - Các ca kiểm thử đối với điểm tổng
Ca kiểm thử |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
Đầu vào (điểm thi) |
23 |
24 |
50 |
26 |
48 |
49 |
45 |
71 |
Đầu vào (điểm luận văn) |
25 |
25 |
0 |
25 |
20 |
20 |
25 |
0 |
Điểm tổng (điểm thi + điểm luận văn) |
48 |
49 |
50 |
51 |
68 |
69 |
70 |
71 |
Hạng mục bao phủ kiểm thử |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
Giá trị biên được kiểm thử (điểm tổng) |
49 |
49. 50 |
50 |
69 |
69, 70 |
70 |
||
Đầu ra mong đợi |
điểm C |
điểm C |
điểm B |
điểm B |
điểm B |
điểm B |
điểm A |
điểm A |
Bảng B.16 - Các ca kiểm thử đối với điểm tổng
Ca kiểm thử |
28 |
29 |
30 |
Đầu vào (điểm thi) |
74 |
75 |
75 |
Đầu vào (điểm luận văn) |
25 |
25 |
26 |
Điểm tổng (điểm thi + điểm luận văn) |
99 |
100 |
101 |
Hạng mục bao phủ kiểm thử |
28 |
29 |
30 |
Giá trị biên được kiểm thử (điểm tổng) |
100 |
100,101 |
|
Đầu ra mong đợi |
điểm A |
điểm A |
Bản tin lỗi |
Các giá trị đầu vào điểm thi và điểm luận văn được tạo ra từ điểm tổng, điểm tổng chính là tổng của điểm thi và điểm luận văn.
Các ca kiểm thử sau đây được yêu cầu phải bao phủ các hạng mục bao phủ kiểm thử còn lại từ TCOVER31 đến TCOVER50, các hạng mục này được xác định nằm ngoài các biên hợp lệ và nằm ở các biên cực lớn của các lớp tương đương:
Bảng B.17 - Các ca kiểm thử đối với điểm thi
Ca kiểm thử |
31 |
32 |
33 |
34 |
35 |
36 |
Đầu vào (điểm thi) |
32766 |
32767 |
32768 |
-32769 |
-32768 |
-32767 |
Đầu vào (điểm luận văn) |
15 |
15 |
15 |
15 |
15 |
15 |
Điểm tổng (điểm thi + điểm luận văn) |
32781 |
32782 |
32783 |
-32754 |
-32753 |
-32752 |
Hạng mục bao phủ kiểm thử |
31 |
32 |
33 |
34 |
35 |
36 |
Giá trị biên được kiểm thử (điểm tổng) |
32767 |
-32768 |
||||
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Đản tin lỗi |
Bản tin lỗi |
Bảng B.18 - Các ca kiểm thử đối với điểm luận văn
Ca kiểm thử |
37 |
38 |
39 |
40 |
41 |
42 |
|
Đầu vào (điểm thi) |
40 |
40 |
40 |
40 |
40 |
40 |
|
Đầu vào (điểm luận văn) |
32766 |
32767 |
32768 |
-32769 |
-32768 |
-32767 |
|
Điểm tổng (điểm thi + điểm luận văn) |
32806 |
32807 |
32808 |
-32729 |
-32728 |
-32727 |
|
Hạng mục bao phủ kiểm thử |
37 |
38 |
39 |
40 |
41 |
42 |
|
Giá trị biên được kiểm thử (điểm tổng) |
32767 |
-32768 |
|||||
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
|
Bảng B.19 - Các ca kiểm thử đối với điểm tổng
Ca kiểm thử |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
Đầu vào (điểm thi) |
75 |
16383 |
32767 |
1 |
-1 |
0 |
-16384 |
-32766 |
Đầu vào (điểm luận văn) |
27 |
16383 |
0 |
32767 |
-1 |
-32769 |
-16384 |
-1 |
Điểm tổng (điểm thi + điểm luận văn) |
102 |
32766 |
32767 |
32768 |
-2 |
-32769 |
-32768 |
-32767 |
Hạng mục bao phủ kiểm thử |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
Giá trị biên được kiểm thử (điểm tổng) |
101 |
32767 |
1 |
-32768 |
||||
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Cần lưu ý rằng khi sử dụng các giá trị đầu vào không hợp lệ (như trình bày ở các bảng trên là các ca kiểm thử 1, 6, 7,12, 13, và từ 30 đến 50), tùy thuộc vào việc thực hiện, có thể không thể thực thi được chính xác các ca kiểm thử. Chẳng hạn như trong ngôn ngữ lập trình Ada, nếu các biến đầu vào được khai báo là một số nguyên dương thì sẽ không thể gán một giá trị âm cho nó. Mặc dù vậy, vẫn phải xem xét tất cả các các ca kiểm thử.
Các ca kiểm thử trên đạt 100% độ bao phủ giá trị biên đối với phương pháp phân tích 3 giá trị biên vì nó cho phép tất cả các hạng mục bao phủ kiểm thử đã xác định được thực hiện bởi ít nhất một ca kiểm thử. Có thể chỉ đạt được mức bao phủ giá trị biên thấp hơn nếu một số biên được xác định không được thực hiện. Nếu không xác định được một số biên thì bất kỳ phương pháp tính độ bao phủ nào dựa trên một tập hợp không đầy đủ các biên này cũng không chính xác.
B.2.3.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Giả sử có thể tự động kiểm tra đáp ứng chấp nhận/ từ chối đối với từng ca kiểm thử hợp lệ nhưng không thể tự động xử lý các bản tin lỗi (FM) được tạo ra bởi các ca kiểm thử không hợp lệ thì chúng ta có thì phải tạo ra hai bộ kiểm thử (TS); một cho kiểm thử thủ công và một cho kiểm thử tự động.
TS1: Kiểm thử thủ công gồm các ca kiểm thử 1, 6, 7, 12, 13 và từ 30 đến 50.
TS2: Kiểm thử tự động gồm các ca kiểm thử 2, 3, 4, 5, 8, 9, 10, 11 và từ 14 đến 29.
B.2.3.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Đối với các ca kiểm thử thủ công trong bộ kiểm thử TS1, có thể xác định được một thủ tục kiểm thử (TP) sau đây:
TP1: Kiểm thử thủ công, bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
Đối với các ca kiểm thử tự động trong bộ kiểm thử TS2, có thể viết được một kịch bản kiểm thử để thực hiện tất cả các ca kiểm thử trong bộ kiểm thử sau:
TP2: Kiểm thử tự động, bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS2, theo thứ tự quy định trong bộ kiểm thử.
Đối với thủ tục kiểm thử tự động TP2, cần phải viết được mã tự động để thực hiện các thủ tục.
B.2.3.9 Độ bao phủ phân tích giá trị biên
Sử dụng công thức đã nêu trong Điều 6.2.3 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với phân tích giá trị biên đạt được là 100%.
B.2.4.1 Giới thiệu
Mục đích của kiểm thử cú pháp là để đưa ra một bộ các ca kiểm thử mà bao phủ cú pháp đầu vào của các hạng mục kiểm thử theo mức độ bao phủ cú pháp đầu vào được lựa chọn. Kỹ thuật này được dựa trên sự phân tích cơ sở kiểm thử của các hạng mục kiểm thử để lập sơ đồ mô phỏng hành vi của nó bằng cách mô tả các đầu vào thông qua cú pháp của nó. Kỹ thuật này chỉ có hiệu quả trong phạm vi mà cú pháp được định nghĩa tương ứng với củ pháp quy định.
B.2.4.2 Đặc tả
Hãy xem xét một hạng mục kiểm thử mà chỉ đơn giản là kiểm tra xem liệu đầu vào float_in có phù hợp với các cú pháp của một số thực có dấu chấm động hay không, float (được định nghĩa dưới đây). Các đầu ra hạng mục kiểm thử check_res có hình thức "hợp lệ" hoặc "không hợp lệ" tùy thuộc vào kết quả kiểm tra của nó.
Dưới đây là sự biểu diễn cú pháp đối với số thực dấu chấm động, kiểu dữ liệu float trong dạng Backus- Naur(BNF):
Các ký hiệu kết thúc được để trong dấu ngoặc kép: đây là phần cơ bản nhất của cú pháp - các ký tự thực tế mà là đầu vào cho các hạng mục kiểm thử. Dấu I dùng để tách biệt những lựa chọn (tức là hoặc (or)). Dấu ngoặc vuông [] chứa một hạng mục tùy chọn hoặc là không chứa hạng mục tùy chọn nào cả. Dấu ngoặc móc {} chứa một hạng mục mà có thể được lặp lại một hoặc nhiều lần.
B.2.4.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được định nghĩa trong cơ sở kiểm thử, chỉ có một tính năng cần phải được định nghĩa:
FS1: float_in
B.2.4.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Bước 1 là xác định các điều kiện kiểm thử từ cú pháp. Các điều kiện kiểm thử có thể được định nghĩa như các tham số đầu vào trong cú pháp. Các điều kiện kiểm thử được xác định như sau:
TCOND1 float = int “e” int
TCOND2 int = [“+"|”-"] nat
TCOND3 nat = {dig}
TCOND4 dig = “0”|“1”|“2”|“3”|“4”|“5”|“6”|“7”|“8”|“9”
B.2.4.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử cú pháp, các hạng mục bao phủ kiểm thử là "các tùy chọn" của cú pháp (được coi là các hạng mục bao phủ kiểm thử hợp lệ) và các hạng mục bao phủ kiểm thử là "những đột biến" của cú pháp (được coi là các hạng mục bao phủ kiểm thử không hợp lệ) (các định nghĩa về "tùy chọn" và "đột biến" của cú pháp được nêu trong Điều 5.2.4.2 ).
Các hạng mục bao phủ kiểm thử hợp lệ có thể được tạo ra cho các phần tử nằm bên phải của định nghĩa BNF. Có 3 hạng mục bao phủ kiểm thử có thể được tạo ra cho các dấu “+" và dấu của điều kiện kiểm thử TCOND2:
TCOVER1: TCOVER2: TCOVER3: |
Không có dấu “+” hoặc dấu nào Chỉ có một dấu “+” Chỉ có một dấu “-“ |
(Đối với TCOND2vàTCOND1) (Đối với TCOND2 và TCOND1) (Đối với TCOND2 và TCOND1) |
CHÚ THÍCH 1: Có thể tạo được các hạng mục bao phủ kiểm thử riêng đối với các trường hợp dấu “+” và dấu thứ nhất và thứ hai nếu cần.
nat có hai hạng mục bao phủ kiểm thử, đó là:
TCOVER4: nat là số có một chữ số duy nhất (Đối vớiTCOND3 và TCOND2)
TCOVER5: nat là số có nhiều chữ số (Đối với TCOND3 và TCOND2)
CHÚ THÍCH 2: Có thể tạo được các hạng mục bao phủ kiểm thử riêng biệt đối với các trường hợp thứ nhất và thứ hai của nat nếu cần.
dig có mười tùy chọn, đó là:
TCOVER6: |
Số nguyên là một số “0“ |
(Đối với TCOND4 và TCOND3) |
TCOVER7: |
Số nguyên là một số “1" |
(Đối với TCOND4 và TCOND3) |
TCOVER8: |
Số nguyên là một số “2" |
(Đối với TCOND4 và TCOND3) |
TCOVER9: |
Số nguyên là một số “3" |
(Đối với TCOND4 và TCOND3) |
TCOVER10 |
Số nguyên là một số “4” |
(Đối với TCOND4 và TCOND3) |
TCOVER11 |
Số nguyên là một số “5" |
(Đối với TCOND4 và TCOND3) |
TCOVER12 |
Số nguyên là một số “6” |
(Đối với TCOND4 và TCOND3) |
TCOVER13 |
Số nguyên là một số “7” |
(Đối với TCOND4 và TCOND3) |
TCOVER14 |
Số nguyên là một số “8" |
(Đối với TCOND4 và TCOND3) |
TCOVER15 |
Số nguyên là một số “9” |
(Đối với TCOND4 và TCOND3) |
Vậy có thể xác định được 15 hạng mục bao phủ kiểm thử hợp lệ.
Bước thứ nhất để xác định các hạng mục bao phủ kiểm thử không hợp lệ xây dựng một danh sách các đột biến chung mà có thể được áp dụng cho các điều kiện kiểm thử. Danh sách các đột có thể có là: m1, m2, m3, m4. Trong đó :
m1: Đưa ra một giá trị không hợp lệ cho một phần tử;
m2: Thay thế một phần tử bằng một phần tử khác được xác định;
m3: Bỏ sót một phần tử được xác định;
m4: Thêm một phần tử mới.
CHÚ THÍCH 3: Có thể sử dụng các kiểu đột biến cú pháp khác tùy thuộc vào các kiểu khiếm khuyết kiểm thử được xác định.
Những đột biến chung được áp dụng cho các phần tử riêng lẻ của cú pháp để mang lại đột biến cụ thể. Do đó, có thể xác định được các hạng mục bao phủ kiểm thử không hợp lệ dưới đây:
TCOVER16 TCOVER17 TCOVER18 TCOVER19 TCOVER20 TCOVER21 |
Áp dụng m1 đối với "int" thứ nhất Áp dụng m1 đối với "e" Áp dụng m1 đối với "int" thứ hai Áp dụng m1 đối với “[“+”|“-”]” Áp dụng m1 đối với "nat" Áp dụng m2 khi thay thế "e" cho "int" thứ nhất |
(Đối với TCOND1) (Đối với TCOND1) (Đối với TCOND1) (Đối với TCOND2) (Đối với TCOND2) (Đối với TCOND1) |
TCOVER22: |
Áp dụng m2 khi thay thế " ["+"|“-”]” cho "int thứ nhất |
(Đối với TCOND 1 và TCOND2) |
TCOVER23: TCOVER24: |
Áp dụng m2 khi thay thế "int" thứ nhất cho "e Áp dụng m2 khi thay thế " ("+" I “-"]” cho "e" |
(Đối với TCOND1) (Đối với TCOND1 và TCOND2) |
TCOVER25: TCOVER26: TCOVER27: |
Áp dụng m2 khi thay thế "e" cho "int" thứ hai Áp dụng m2 khi thay thế " ["+"I“-”]"cho “int” thứ hai Áp dụng m2 khi thay thế "e" cho " ["+"I"-"]" |
(Đối với TCOND1) (Đối với TCOND1) (Đối với TCOND1 và TCOND2) |
TCOVER28: |
Áp dụng m2 khi thay thế " e" cho "nat" |
(Đối với TCOND1 và TCOND2) |
TCOVER29: |
Áp dụng m2 khi thay thế " ["+"I"-"]" cho "nat" |
(Đối với TCOND1 và TCOND2) |
TCOVER30 TCOVER31 TCOVER32 TCOVER33: TCOVER34: TCOVER35: TCOVER36: |
Áp dụng m3 đối với "int" thứ nhất Áp dụng m3 đối với "e" Áp dụng m3 đối với "int" thứ hai Áp dụng m4 khi một thêm phần tử trước "int" thứ nhất Áp dụng m4 để khi thêm một phần tử trước "e" Áp dụng m4 khi thêm một phần tử trước "int" thứ hai Áp dụng m4 khi thêm một phần tử sau "int" thứ hai |
(Đối với TCOND1) (Đối với TCOND1) (Đối với TCOND1) (Đối với TCOND1) (Đối với TCOND1) (Đối với TCOND1) (Đối với TCOND1) |
TCOVER37: |
Áp dụng m4 khi thêm một phần tử trước "int" thứ nhất và “[“+”|“+”]” |
(Đối với TCOND1 và TCOND2) |
TCOVER38: |
Áp dụng m4 khi thêm một phần tử giữa "[“+”|“-”]” và “int” thứ nhất |
(Đối với TCOND1 và TCOND2) |
TCOVER39: |
Áp dụng m4 khi thêm một phần tử giữa “int” thứ nhất và “e” |
(Đối với TCOND1) |
["+"| “-”] được coi là một phần tử duy nhất vi đột biến của các hạng mục tùy chọn riêng biệt không xây dựng các ca kiểm thử có cú pháp hợp lệ (sử dụng các đột biến chung này).
B.2.4.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử hợp lệ được xây dựng bằng cách lựa chọn một hoặc nhiều tùy chọn cho các ca kiểm thử hiện có, xác định các đầu vào đề thực hiện các tùy chọn và xác định kết quả mong đợi (trong trường hợp này là 'check_ res' là kết quả mong đợi). Các ca kiểm thử hợp lệ là:
Bảng B.20 - Các ca kiểm thử hợp lệ đối với kiểm thử cú pháp
Ca kiểm thử |
Đầu vào ‘float_in’ |
Hạng mục bao phủ kiểm thử |
Kết quả mong đợi ‘check_res’ |
TC 1 |
3e2 |
TCOVER1 |
'hợp lệ' |
TC 2 |
+2e+5 |
TCOVER2 |
'hợp lệ' |
TC 3 |
-6e-7 |
TCOVER3 |
‘hợp lệ' |
TC 4 |
6e-2 |
TCOVER4 |
‘hợp lệ' |
TC 5 |
1234567890e3 |
TCOVER5 |
'hợp lệ' |
TC 6 |
0e0 |
TCOVER6 |
‘hợp lệ’ |
TC 7 |
1e1 |
TCOVER7 |
‘hợp lệ’ |
TC 8 |
2e2 |
TCOVER8 |
'hợp lệ’ |
TC 9 |
3e3 |
TCOVER9 |
'hợp lệ’ |
TC 10 |
4e4 |
TCOVER10 |
‘hợp lê’ |
TC 11 |
5e5 |
TCOVER11 |
'hợp lệ' |
TC 12 |
6e6 |
TCOVER12 |
‘hợp lệ' |
TC 13 |
7e7 |
TCOVER13 |
‘hợp lệ’ |
TC 14 |
8e8 |
TCOVER14 |
‘hợp lệ’ |
TC 15 |
9e9 |
TCOVER15 |
'hợp lệ’ |
Điều này không có nghĩa là một bộ kiểm thử rất nhỏ thực hiện tất cả 15 tùy chọn (có thể giảm xuống chỉ còn ba ca kiểm thử, ví dụ, ca kiểm thử số 2, 3 và 5 ở trên), do đó một số ca kiểm thử sẽ thực hiện thêm nhiều tùy chọn hơn là chỉ thực hiện một tùy chọn được liệt kê trong cột "Hạng mục bao phủ kiểm thử" ở bảng trên. Mỗi tùy chọn được xử lý riêng để hiểu rõ được việc xây dựng chúng. Phương pháp này cũng dễ dàng xác định được nguyên nhân gây lỗi.
Các ca kiểm thử không hợp lệ được tạo ra bằng cách lựa chọn một hoặc nhiều đột biến cho các ca kiểm thử hiện có, xác định các đầu vào để thực hiện các đột biến và xác định kết quả mong đợi (trong trường hợp này kết quả mong đợi là 'check_ res'). Các ca kiểm thử không hợp lệ là:
Bảng B.21 - Các ca kiểm thử không hợp lệ đối với kiểm thử cú pháp
Ca kiểm thử |
Đầu vào ‘float_in’ |
Đột biến |
Hạng mục bao phủ kiểm thử |
Kết quả mong đợi ‘check_res’ |
TC 16 |
xe0 |
m1 |
TCOVER16 |
‘không hợp lệ’ |
TC 17 |
0x0 |
m1 |
TCOVER17 |
‘không hợp lệ’ |
TC 18 |
0ex |
m1 |
TCOVER18 |
‘không hợp lệ’ |
TC 19 |
x0e0 |
m1 |
TCOVER19 |
‘không hợp lệ’ |
TC 20 |
+xe0 |
m1 |
TCOVER20 |
‘không hợp lệ’ |
TC 21 |
ee0 |
m2 |
TCOVER21 |
‘không hợp lệ’ |
TC 22 |
+e0 |
m2 |
TCOVER22 |
‘không hợp lệ’ |
TC 23 |
000 |
m2 |
TCOVER23 |
‘không hợp lệ’ |
TC 24 |
0+0 |
m2 |
TCOVER24 |
‘không hợp lệ’ |
TC 25 |
0ee |
m2 |
TCOVER25 |
‘không hợp lệ’ |
TC 26 |
0e+ |
m2 |
TCOVER26 |
‘không hợp lệ’ |
TC 27 |
e0e0 |
m2 |
TCOVER27 |
‘không hợp lệ’ |
TC 28 |
+ee0 |
m2 |
TCOVER28 |
‘không hợp lệ’ |
TC 29 |
++e0 |
m2 |
TCOVER29 |
‘không hợp lệ’ |
TC 30 |
e0 |
m3 |
TCOVER30 |
‘không hợp lệ’ |
TC 31 |
00 |
m3 |
TCOVER31 |
‘không hợp lệ’ |
TC 32 |
0e |
m3 |
TCOVER32 |
‘không hợp lệ’ |
TC 33 |
y0e0 |
m4 |
TCOVER33 |
‘không hợp lệ’ |
TC 34 |
0ye0 |
m4 |
TCOVER34 |
‘không hợp lệ’ |
TC 35 |
0ey0 |
m4 |
TCOVER35 |
‘không hợp lệ’ |
TC 36 |
0e0y |
m4 |
TCOVER36 |
‘không hợp lệ’ |
TC 37 |
y+0e0 |
m4 |
TCOVER37 |
‘không hợp lệ’ |
TC 38 |
+y0e0 |
m4 |
TCOVER38 |
‘không hợp lệ’ |
TC 39 |
+0ye0 |
m4 |
TCOVER39 |
‘không hợp lệ’ |
Một số các đột biến không thể phân biệt được với các phần mở rộng đã được tạo ra nên chúng bị loại bỏ. Ví dụ, đột biến m2 (thay thế điều kiện kiểm thử TCOND2 cho TCOND4) tạo ra cú pháp chính xác như m2 là "thay thế một phần tử bằng một phần tử khác đã được xác định" và điều kiện kiểm thử TCOND2 và TCOND4 là kiểu số nguyên (int) giống nhau.
Một số các đột biến còn lại không thể phân biệt được với các đột biến khác và chúng được bao phủ bởi một ca kiểm thử duy nhất. Ví dụ, áp dụng đột biến m1 ("gán một giá trị không hợp lệ cho một phần tử") bằng cách thay thế điều kiện kiểm thử TCOND4, sẽ là một số nguyên, có dấu "+" tạo thành "0e +". Đây là đầu vào tương tự được tạo ra cho ca kiểm thử 26 trong Bảng B.21.
Có thể tạo ra được nhiều ca kiểm thử hơn bằng cách đưa ra những lựa chọn khác nhau khi sử dụng các kỹ thuật kiểm thử đột biến đơn, hoặc các kỹ thuật kiểm thử đột biến kết hợp.
B.2.4.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Có thể tập hựp các ca kiểm thử hợp lệ vào một bộ kiểm thử và các ca kiểm thử không hợp lệ vào một bộ kiểm thử:
TS1: Gồm các ca kiểm thử hợp lệ: 1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
TS2: gồm các ca kiểm thử không hợp lệ: 16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 25, 26, 28, 29, 30, 31,32, 33, 34, 35, 36, 37, 38, 39.
B.2.4.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Tất cả các ca kiểm thử có thể được tập hợp lại vào một thủ tục một kiểm thử, bắt đầu là các ca kiểm thử hợp lệ và kết thúc là các ca kiểm thử không hợp lệ.
TP1: Trước tiên bao phủ tất cả các ca kiểm thử hợp lệ trong bộ kiểm thử TS1, tiếp theo là bao phủ tất cả các ca kiểm thử không hợp lệ trong bộ kiểm thử TS2 theo thứ tự quy định trong các bộ kiểm thử.
B.2.4.9 Độ bao phủ kiểm thử cú pháp
Như đã trình bày trong Điều 6.2.4, không có phương pháp tính toán độ bao phủ kiểm thử cú pháp.
B.2.5 Các kỹ thuật thiết kế kiểm thử tổ hợp
B.2.5.1 Giới thiệu
Mục đích của kiểm thử tổ hợp là để giảm chi phí kiểm thử bằng cách xây dựng một số lượng nhỏ (có thể tối thiểu) các ca kiểm thử mà vẫn bao phủ được một bộ các tham số và các giá trị đầu vào của các hạng mục kiểm thử. Kỹ thuật thiết kế kiểm thử tổ hợp có khả năng xây dựng các ca kiểm thử từ các giá trị đầu vào mà trước đó đã được lựa chọn, chẳng hạn như thông qua việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên đặc tả khác như kỹ thuật phân vùng tương đương hoặc kỹ thuật phân tích giá trị biên. Mỗi kỹ thuật sẽ được minh họa bằng một ví dụ. Vì mỗi kỹ thuật đều có những bước chung là xác định các tập tính năng (TD1) và Xác định các điều kiện kiểm thử (TD2) nên các bước chung này được đề cập một lần dưới đây và dùng tất cả các kỹ thuật thiết kế kiểm thử, sau đó từng kỹ thuật kiểm thử sẽ thực hiện từ bước Xác định các hạng mục bao phủ kiểm thử (TD3) và Xây dựng các ca kiểm thử (TD4) cho đếm bước 6 (TD6).
B.2.5.2 Đặc tả
Hãy xem xét cơ sở kiểm thử đối với một hạng mục kiểm thử sở thích_du lịch, trong đó ghi lại những sở thích du lịch của các nhân viên của một tổ chức đi du lịch đến các thành phố chính của một số nước với mục đích công việc. Trong đó bao gồm những giá trị đầu vào sau:
Nơi đến = Pans, London, Sydney
Hạng = Hạng nhất, hạng thương gia, hạng phổ thông
Chỗ ngồi = Chỗ ngồi cạnh lối đi, chỗ ngồi cạnh cửa sổ
Nếu đưa ra được một sư kết hợp đầu vào hợp lệ cho chương trình, sẽ nhận được kết quả mong đợi là "được chấp nhận", nếu không sẽ nhận được đầu ra là "không được chấp nhận".
B.2.5.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục bao phủ kiểm thử được định nghĩa trong cơ sở kiểm thử nên chỉ có một tập tính năng được xác định:
FS1: Hàm sở thích du lịch (travel_preference)
B.2.5.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Tất cả kỹ thuật thiết kế kiểm thử tổ hợp đều dùng chung một phương pháp để xác định các điều kiện kiểm thử. Vì thế, các điều kiện kiểm thử mà tương ứng với mỗi tham số (P) của hạng mục kiểm thử sẽ tạo ra một giá trị (V) cụ thể, kết quả của sự kết hợp này sẽ tạo thành một cặp PV. Bước này được lặp đi lặp lại cho đến khi tất cả các tham số đã được ghép đôi với các giá trị tương ứng của nó. Đối với ví dụ trên, sẽ ghép được các cặp PV sau:
TCOND1: |
Nơi đến - Paris |
(đối với tập tính năng FS1) |
TCOND2: |
Nơi đến - London |
(đối với tập tính năng FS1) |
TCOND3: |
Nơi đến - Sydney |
(đối với tập tính năng FS1) |
TCOND4: |
Hạng nhất |
(đối với tập tính năng FS1) |
TCOND5: |
Hạng thương gia |
(đối với tập tính năng FS1) |
TCOND6: |
Hạng phổ thông |
(đối với tập tính năng FS1) |
TCOND7: |
Chỗ ngồi cạnh lối đi |
(đối với tập tính năng FS1) |
TCOND8: |
Chỗ ngồi cạnh cửa sổ |
(đối với tập tính năng FS1) |
B.2.5.5 Kiểm thử tất cả các tổ hợp
B.2.5.5.1 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử tất cả các tổ hợp, các hạng mục bao phủ kiểm thử là những kết hợp duy nhất của các cặp PV, tạo thành một cặp PV cho mỗi tham số hạng mục kiểm thử. Những cặp PV này được coi như các điều kiện kiểm thử:
TCOVER1: |
Nơi đến - Paris |
Hạng nhất |
Chỗ ngồi cạnh lối đi |
(đối với TCOND 1, 4, 7 |
TCOVER2: |
Nơi đến - Paris |
Hạng nhất |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND 1, 4, 8 |
TCOVER3: |
Nơi đến - Paris |
Hạng thương gia |
Chỗ ngồi cạnh lối đi |
(đối với TCOND 1, 5, 7 |
TCOVER4: |
Nơi đến - Paris |
Hạng thương gia |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND 1, 5, 8 |
TCOVER5: |
Nơi đến - Paris |
Hạng phổ thông |
Chỗ ngồi cạnh lối đi |
(đối với TCOND 1, 6, 7 |
TCOVER6: |
Nơi đến - Paris |
Hạng phổ thông |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND 1, 6, 8 |
TCOVER7: |
Nơi đến - London |
Hạng nhất |
Chỗ ngồi cạnh lối đi |
(đối với TCOND 2, 4, 7 |
TCOVER8: |
Nơi đến - London |
Hạng nhất |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND 2, 4, 8 |
TCOVER9: |
Nơi đến - London |
Hạng thương gia |
Chỗ ngồi cạnh lối đi |
(đối với TCOND 2, 5, 7 |
TCOVER10: |
Nơi đến - London |
Hạng thương gia |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND 2, 5, 8 |
TCOVER11: |
Nơi đến - London |
Hạng phổ thông |
Chỗ ngồi cạnh lối đi |
(đối với TCOND 2, 6, 7 |
TCOVER12: |
Nơi đến - London |
Hạng phổ thông |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND 2, 6, 8 |
TCOVER13: |
Nơi đến - Sydney |
Hạng nhất |
Chỗ ngồi cạnh lối đi |
(đối với TCOND 3, 4, 7 |
TCOVER14: |
Nơi đến - Sydney |
Hạng nhất |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND 3, 4, 8 |
TCOVER15: |
Nơi đến - Sydney |
Hạng thương gia |
Chỗ ngồi cạnh lối đi |
(đối với TCOND 3, 5, 7 |
TCOVER16: |
Nơi đến - Sydney |
Hạng thương gia |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND 3, 5, 8 |
TCOVER17: |
Nơi đến - Sydney |
Hạng phổ thông |
Chỗ ngồi cạnh lối đi |
(đối với TCOND 3, 6, 7 |
TCOVER18: |
Nơi đến - Sydney |
Hạng phổ thông |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND 3, 6, 8 |
B.2.5.5.2 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng bằng cách lựa chọn một cặp PV và kết hợp nó với một cặp PV khác từ tất cả các tham số khác (trong đó mỗi kết hợp tạo ra chính xác một ca kiểm thử), xác định các giá trị hợp lệ bất kỳ để tìm các biến đầu vào khác theo yêu cầu của các ca kiểm thử, xác định kết quả mong đợi và lặp đi lặp lại cho đến khi đạt được độ bao phủ yêu cầu. Trong ví dụ này sẽ tạo được các ca kiểm thử sau:
Bảng B.22 - Các ca kiểm thử đối với kiểm thử tất cả các tổ hợp
Ca kiểm thử |
Các giá trị đầu vào |
Kết quả mong đợi |
Hạng mục bao phủ kiểm thử |
||
Nơi đến |
Hạng ghế |
Chỗ ngồi |
|||
1 |
Paris |
Hạng nhất |
Cạnh lối đi |
Được chấp nhận |
TCOVER1 |
2 |
Paris |
Hạng nhất |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER2 |
3 |
Paris |
Hạng thương gia |
Cạnh lối đi |
Được chấp nhận |
TCOVER3 |
4 |
Paris |
Hạng thương gia |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER4 |
5 |
Paris |
Hạng phổ thông |
Cạnh lối đi |
Được chấp nhận |
TCOVER5 |
6 |
Paris |
Hạng phổ thông |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER6 |
7 |
Luân Đôn |
Hạng nhất |
Cạnh lối đi |
Được chấp nhận |
TCOVER7 |
8 |
Luân Đôn |
Hạng nhất |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER8 |
9 |
Luân Đôn |
Hạng thương gia |
Cạnh lối đi |
Được chấp nhận |
TCOVER9 |
10 |
Luân Đôn |
Hạng thương gia |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER10 |
11 |
Luân Đôn |
Hạng phổ thông |
Cạnh lối đi |
Được chấp nhận |
TCOVER11 |
12 |
Luân Đôn |
Hạng phổ thông |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER12 |
13 |
Sydney |
Hạng nhất |
Cạnh lối đi |
Được chấp nhận |
TCOVER13 |
14 |
Sydney |
Hạng nhất |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER14 |
15 |
Sydney |
Hạng thương gia |
Cạnh lối đi |
Được chấp nhận |
TCOVER15 |
16 |
Sydney |
Hạng thương gia |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER16 |
17 |
Sydney |
Hạng phổ thông |
Cạnh lối đi |
Được chấp nhận |
TCOVER17 |
18 |
Sydney |
Hạng phổ thông |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER18 |
B.2.5.5.3 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Có thể phân chia các ca kiểm thử theo chỗ ngồi cạnh lối đi và chỗ ngồi cạnh cửa sổ. Do đó, có thể có hai bộ kiểm thử sau:
TS1: Gồm các ca kiểm thử 1, 3, 5, 7, 9, 11, 13, 15, 17
TS2: Gồm các ca kiểm thử 2, 4, 6, 8, 10, 12, 14, 16, 18
B.2.5.5.4 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì mỗi bộ kiểm thử sẽ được thực hiện bởi các kỹ sư kiểm thử khác nhau nên có thể chia chúng thành hai thủ tục kiểm thử như sau:
TP1: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
TP2: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS2, theo thứ tự quy định trong bộ kiểm thử.
B.2.5.5.5 Độ bao phủ kiểm thử tất cả các tổ hợp
Sử dụng công thức đã nêu trong Điều 6.2.5.1 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử tất cả các tổ hợp đạt được là 100%.
B.2.5.6 Kiểm thử từng cặp
B.2.5.6.1 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử từng cặp, các hạng mục bao phủ kiểm thử được xác định là các cặp PV với các tham số khác nhau. Trong ví dụ sở thích du lịch, có thể xác định được các hạng mục bao phủ kiểm thử sau đây:
TCOVER1: |
Paris, hạng nhất |
(đối với TCOND1, TCOND4) |
TCOVER2: |
Paris, hạng thương gia |
(đối với TCOND1, TCOND5) |
TCOVER3: |
Paris, hạng phổ thông |
(đối với TCOND1, TCOND6) |
TCOVER4: |
London, hạng nhất |
(đối với TCOND2, TCOND4) |
TCOVER5: |
London, hạng thương gia |
(đối với TCOND2, TCOND5) |
TCOVER6: |
London, hạng phổ thông |
(đối với TCOND2, TCOND6) |
TCOVER7: |
Sydney, hạng nhất |
(đối với TCOND3, TCOND4) |
TCOVER8: |
Sydney, hạng thương gia |
(đối với TCOND3, TCOND5) |
TCOVER9: |
Sydney, hạng phổ thông |
(đối với TCOND3, TCOND6) |
TCOVER10: |
Paris, chỗ ngồi cạnh lối đi |
(đối với TCOND1, TCOND7) |
TCOVER11: |
Paris, chỗ ngồi cạnh cửa sổ |
(đối với TCOND1, TCOND8) |
TCOVER12: |
London, chỗ ngồi cạnh lối đi |
(đối với TCOND2, TCOND7) |
TCOVER13: |
London, chỗ ngồi cạnh cửa sổ |
(đối với TCOND2, TCOND8) |
TCOVER14: |
Sydney, chỗ ngồi cạnh lối đi |
(đối với TCOND3, TCOND7) |
TCOVER15: |
Hạng nhất, chỗ ngồi cạnh cửa sổ |
(đối với TCOND3, TCOND8) |
TCOVER16: |
Hạng nhất, chỗ ngồi cạnh lối đi |
(đối với TCOND4, TCOND7) |
TCOVER17: |
Hạng nhất, chỗ ngồi cạnh cửa sổ |
(đối với TCOND4, TCOND8) |
TCOVER18: |
Hạng thương gia, chỗ ngồi cạnh lối đi |
(đối với TCOND5, TCOND7) |
TCOVER19: |
Hạng thương gia, chỗ ngồi cạnh cửa sổ |
(đối với TCOND5, TCOND8) |
TCOVER20: |
Hạng phổ thông, chỗ ngồi cạnh lối đi |
(đối với TCOND6, TCOND7) |
TCOVER21: |
Hạng phổ thông, chỗ ngồi cạnh cửa sổ |
(đối với TCOND6, TCOND8) |
B.2.5.6.2 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng bằng cách lựa chọn một hoặc nhiều cặp PV (các hạng mục bao phủ kiểm thử) cho các ca kiểm thử hiện có, lựa chọn các giá trị hợp lệ bất kỳ cho các biến đầu vào khác theo yêu cầu của ca kiểm thử, xác định các kết quả mong đợi của việc kiểm thử và lặp đi lặp lại cho đến khi tất cả các cặp PV có các tham số khác nhau được lựa chọn cho ít nhất một ca kiểm thử. Trong ví dụ này, có thể có ba cặp PV kết hợp tạo thành các ca kiểm thử sau:
Bảng B.23 - Các ca kiểm thử đối với kiểm thử từng cặp
Ca kiểm thử |
Các giá trị đầu vào |
Kết quả mong đợi |
Hạng mục bao phủ kiểm thử |
||
Nơi đến |
Hạng ghế |
Chỗ ngồi |
|||
1 |
Paris |
Hạng nhất |
Cạnh lối đi |
Được chấp nhận |
TCOVER1, TCOVER10, TCOVER16 |
2 |
Paris |
Hạng thương gia |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER2, TC0VER11, TCOVER19 |
3 |
Paris |
Hạng phổ thông |
Cạnh lối đi |
Được chấp nhận |
TCOVER3, TCOVER10, TCOVER20 |
4 |
Luân Đôn |
Hạng nhất |
Cạnh lối đi |
Được chấp nhận |
TCOVER4, TCOVER12, TCOVER16 |
5 |
Luân Đôn |
Hạng thương gia |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER5, TCOVER13, TCOVER19 |
6 |
Luân Đôn |
Hạng phổ thông |
Cạnh lối đi |
Được chấp nhận |
TCOVER6, TCOVER12, TCOVER20 |
7 |
Sydney |
Hạng nhất |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER7, TCOVER15, TCOVER17 |
8 |
Sydney |
Hạng thương gia |
Cạnh lối đi |
Được chấp nhận |
TCOVER8, TCOVER14, TCOVER18, |
9 |
Sydney |
Hạng phổ thông |
Cạnh cửa sổ |
Được chấp nhận |
TCOVER9, TCOVER15, TCOVER21 |
B.2.5.6.3 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Do có ít các ca kiểm thử được tạo ra ở bảng trên nên có thể kết hợp chúng vào trong một bộ kiểm thử như sau:
TS1: Gồm các ca kiểm thử 1, 2, 3, 4, 5, 6, 7, 8, 9
B.2.5.6.4 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Do chỉ có một bộ kiểm thử nên có thể kết hợp bộ kiểm thử này vào trong một thủ tục kiểm thử.
TP1: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
B.2.5.6.5 Tính độ bao phủ kiểm thử từng cặp
Sử dụng công thức đã nêu trong Điều 6.2.5.2 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử từng cặp đạt được là 100%.
B.2.5.7 Kiểm thử từng lựa chọn
B.2.5.7.1 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử từng lựa chọn (hoặc kiểm thử 1-wise), các hạng mục bao phủ kiểm thử là một tập các cặp P-V. Do đó, đối với ví dụ về sở thích du lịch, có thể xác định được các hạng mục bao phủ kiểm thử sau đây:
TCOVER1: |
Nơi đến - Paris |
(đối với TCOND1) |
TCOVER2: |
Nơi đến - London |
(đối với TCOND2) |
TCOVER3: |
Nơi đến - Sydney |
(đối với TCOND3) |
TCOVER4: |
Hạng nhất |
(đối với TCOND4) |
TCOVER5: |
Hạng thương gia |
(đối với TCOND5) |
TCOVER6: |
Hạng phổ thông |
(đối với TCOND6) |
TCOVER7: |
Chỗ ngồi cạnh lối đi |
(đối với TCOND7) |
TCOVER8: |
Chỗ ngồi cạnh cửa sổ |
(đối với TCOND8) |
B.2.5.7.2 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử từng lựa chọn được xây dựng bằng cách lựa chọn một hoặc nhiều cặp PV cho các ca kiểm thử hiện có, lựa chọn các giá trị hợp lệ bất kỳ cho các biến số đầu vào khác theo yêu cầu của các ca kiểm thử, xác định các kết quả mong đợi và lặp đi lặp lại cho đến khi tất cả các cặp PV có trong ít nhất một ca kiểm thử. Đối với ví dụ này, chỉ có ba ca kiểm thử được tạo ra:
Bảng B.24 - Các ca kiểm thử đối với kiểm thử từng lựa chọn
Ca kiểm thử |
Các giá trị đầu vào |
Kết quả mong đợi |
Hạng mục bao phủ kiểm thử |
||
Nơi đến |
Hạng ghế |
Chỗ ngồi |
|||
1 |
Paris |
Hạng nhất |
Cạnh lối đi |
Chấp nhận |
TCOVER1, TCOVER4, TCOVER7 |
2 |
Luân Đôn |
Hạng thương gia |
Cạnh cửa sổ |
Chấp nhận |
TCOVER2, TCOVER5, TCOVER8 |
3 |
Sydney |
Hạng phổ thông |
Cạnh lối đi |
Chấp nhận |
TCOVER3, TCOVER6, TCOVER7 |
Lưu ý: Có thể tạo ra được các ca kiểm thử khác đạt được mức độ bao phủ quy định.
B.2.5.7.3 Bước 5: Tập hợp các bộ kiểm thử (TDS)
Do có ít các ca kiểm thử được tạo ra ở bảng trên nên có thể kết hợp chúng vào trong một bộ kiểm thử như sau:
TS1: Gồm các ca kiểm thử 1, 2, 3
B.2.5.7.4 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì tất cả các ca kiểm thử nằm trong bộ một bộ kiểm thử nên chúng ta có thể tạo ra được một thủ tục kiểm thử
TP1: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
B.2.5.7.5 Độ bao kiểm thử phủ từng lựa chọn
Sử dụng công thức đã nêu trong Điều 6.2.5.3 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử từng lựa chọn đạt được là 100%.
B.2.5.8 Kiểm thử lựa chọn cơ sở
B.2.5.8.1 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Đối với kiểm thử lựa chọn cơ sở, các hạng mục bao phủ kiểm thử được lựa chọn bằng cách lựa chọn một giá trị "lựa chọn cơ sở" cho từng tham số. Ví dụ, lựa chọn cơ sở có thể được lựa chọn từ các hồ sơ hoạt động, từ đường đi chính trong kiểm thử trường hợp sử dụng hoặc từ những hạng mục bao phủ kiểm thử mà được tạo ra trong khi phân vùng tương đương. Trong ví dụ này, các giá trị đầu vào dưới đây sẽ được chọn là lựa chọn cơ sở.
TCOVER1 |
Nơi đến - London |
Hạng phổ thông, |
Chỗ ngồi cạnh cửa sổ |
(Bao phủ TCOND2, TCOND6 và TCOND8) |
Các hạng mục bao phủ kiểm thử còn lại được xác định bằng cách xác định tất cả các cặp PV còn lại:
TCOVER2 |
Nơi đến - Paris |
Hạng phổ thông |
Chỗ ngồi cạnh cửa sổ |
(Bao phủ TCOND1, TCOND6 và TCOND8) |
TCOVER3 |
Nơi đến - Sydney |
Hạng phổ thông |
Chỗ ngồi cạnh cửa sổ |
(Bao phủ TCOND3, TCOND6 và TCOND8) |
TCOVER4 |
Nơi đến - London |
Hạng nhất |
Chỗ ngồi cạnh cửa sổ |
(Bao phủ TCOND2, TCOND6 và TCOND8) |
TCOVER5 |
Nơi đến - London |
Hạng thương gia |
Chỗ ngồi cạnh cửa sổ |
(Bao phủ TCOND2, TCOND5 và TCOND8) |
TCOVER6 |
Nơi đến - London |
Hạng phổ thông, |
Chỗ ngồi cạnh lối đi |
(Bao phủ TCOND2, TCOND6 và TCOND7) |
TCOVER2 |
Nơi đến - Paris |
Hạng phổ thông |
Chỗ ngồi cạnh cửa sổ |
(Bao phủ TCOND1, TCOND6 và TCOND8) |
B.2.5.8.2 Bước 4: Xây dựng các ca kiểm thử (TD4)
Một ca kiểm thử lựa chọn cơ sở có thể được xây dựng bằng cách kết hợp các hạng mục bao phủ kiểm thử:
Lựa chọn cơ sở: London, Hạng phổ thông, Chỗ ngồi cạnh cửa sổ
Đây là ca kiểm thử thứ nhất trong bảng dưới đây. Các ca kiểm thử còn lại có thể được xây dựng bằng cách thay thế một cặp PV bằng trường kiểm thử lựa chọn cơ sở và lặp đi lặp lại cho đến khi tất cả các cặp PV được bao phủ.
Bảng B.25 - Các ca kiểm thử đối với kiểm thử lựa chọn cơ sở
Ca kiểm thử |
Các giá trị đầu vào |
Kết quả mong đợi |
Hạng mục bao phủ kiểm thử |
||
Nơi đến |
Hạng ghế |
Chỗ ngồi |
|||
1 |
Luân Đôn |
Hạng phổ thông |
Cạnh cửa sổ |
Chấp nhận |
TCOVER1 |
2 |
Paris |
Hạng phổ thông |
Cạnh cửa sổ |
Chấp nhận |
TCOVER2 |
3 |
Sydney |
Hạng phổ thông |
Cạnh cửa sổ |
Chấp nhận |
TCOVER3 |
4 |
Luân Đôn |
Hạng nhất |
Cạnh cửa sổ |
Chấp nhận |
TCOVER4 |
5 |
Luân Đôn |
Hạng thương gia |
Cạnh cửa sổ |
Chấp nhận |
TCOVER5 |
6 |
Luân Đôn |
Hạng phổ thông |
Cạnh lối đi |
Chấp nhận |
TCOVER6 |
B.2.5.8.3 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Vì chỉ có một số lượng nhỏ các ca kiểm thử được xây dựng trong ví dụ này nên có thể kết hợp các ca kiểm thử đó vào một bộ kiểm thử.
TS1: Gồm các ca kiểm thử 1, 2, 3, 4, 5, 6
B.2.5.8.4 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì tất cả các ca kiểm thử nằm trong bộ một bộ kiểm thử nên chúng ta có thể tạo ra được một thủ tục kiểm thử
TP1: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
B.2.5.8.5 Độ bao phủ kiểm thử lựa chọn cơ sở
Sử dụng công thức đã nêu trong Điều 6.2.5.4 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với cơ sở kiểm thử đạt được là 100%.
B.2.6 Kiểm thử bảng quyết định
B.2.6.1 Giới thiệu
Mục đích của kiểm thử bảng quyết định là xây dựng một bộ các ca kiểm thử mà bao phủ các kết hợp lô-gic giữa các đầu vào và đầu ra (mà đại diện là một chuỗi các điều kiện và các hành động) được kết hợp bởi các quy tắc quyết định theo mức độ bao phủ điều kiện và hành động.
B.2.6.2 Đặc tả
Hãy xem xét hàm ghi nợ séc có đầu vào là số tiền ghi nợ, loại tài khoản và số dư hiện tại và có đầu ra là số dư mới và mã hành động. Loại tài khoản có thể là loại tài khoản bưu điện ('p') hoặc tài khoản counter (‘c’). Mã hành động có thể 'D và L', 'D', 'S và L' hoặc 'L', tương ứng với ‘chỉ thực hiện ghi nợ’, 'thực hiện ghi nợ và gửi thư thông báo', ‘Tạm treo tài khoản và gửi thư thông báo’ và ‘chỉ gửi thư thông báo’. Hàm này có các cơ sở kiểm thử sau:
Nếu có đủ tiền trong tài khoản hoặc số dư mới nằm trong hạn mức thấu chi được ủy quyền thì việc ghi nợ được thực hiện. Nếu số dư mới vượt quá hạn mức thấu chi được ủy quyền thì ghi nợ không được thực hiện và nếu nó là một tài khoản bưu điện nó sẽ bị treo. Thư được gửi đến cho tất cả các giao dịch trên tài khoản bưu điện và cho các tài khoản không phải là tài khoản bưu điện nếu có đủ tiền (tức là tài khoản không phải là thẻ tín dụng).
B.2.6.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục bao phủ kiểm thử được xác định trong cơ sở kiểm thử nên chỉ có một tập tính năng được xác định:
FS1: Hàm ghi nợ (cheque debit)
B.2.6.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Các điều kiện kiểm thử chính là các điều kiện và hành động có thể được xác định từ cơ sở kiểm thử. Đối với các điều kiện (C), có các điều kiện kiểm thử sau:
TCOND1 (C1): |
Số dư mới trong thẻ |
(đối với tập tính năng FS1) |
TCOND2 (C2): |
Rút quá số dư mới nhưng vẫn nằm trong giới hạn cho phép |
(đối với tập tính năng FS1) |
TCOND3 (C3): |
Tài khoản bưu điện |
(đối với tập tính năng FS1) |
Đối với các hành động (A), có các điều kiện kiểm thử sau: |
|
|
TCOND4 (A1): |
Thực hiện ghi nợ |
(đối với tập tính năng FS1) |
TCOND5 (A2): |
Tạm treo tài khoản |
(đối với tập tính năng FS1) |
TCOND6 (A3): |
Gửi thư thông báo |
(đối với tập tính năng FS1) |
B.2.6.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Bảng quyết định cho phép xác định các hạng mục bao phủ kiểm thử dựa trên các quy tắc quyết định trong bảng quyết định. Mỗi cột của bảng quyết định là một quy tắc quyết định. Bảng quyết định bao gồm hai phần. Trong phần thứ nhất, từng quy tắc quyết định được lập thành bảng dựa vào các điều kiện. Chữ T biểu thị rằng điều kiện là ĐÚNG đối với các quy tắc quyết định áp dụng, chữ ‘F’ biểu thị rằng điều kiện là SAI đối với các quy tắc quyết định áp dụng. Trong phần thứ hai, từng quy tắc quyết định được lập thành bảng dựa vào các hành động. Chữ “T” biểu thị rằng các hành động được thực hiện, chữ “F” biểu thị rằng các hành động sẽ không được thực hiện, dấu sao (*) biểu thị sự kết hợp của các điều kiện không khả thi và do đó không xác định được hành động nào cho các quy tắc quyết định. Hai hoặc nhiều cột có thể được kết hợp với nhau nếu chúng có chứa một điều kiện Boolean mà không ảnh hưởng đến kết quả bất kể giá trị của nó.
Ví dụ có bảng quyết định sau đây, có 8 quy tắc quyết định, 6 trong số đó là khả thi và do đó xác định được 6 hạng mục bao phủ kiểm thử:
Bảng B.26 - Bảng quyết định của hàm ghi nợ séc
Các quy tắc quyết định: |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
C1: Số dư mới trong thẻ |
F |
F |
F |
F |
T |
T |
T |
T |
C2: Rút quá số dư mới nhưng vẫn nằm trong giới hạn cho phép |
F |
F |
T |
T |
F |
F |
T |
T |
C3: Tài khoản bưu điện |
F |
T |
F |
T |
F |
T |
F |
T |
A1: Thực hiện ghi nợ |
F |
F |
T |
T |
T |
T |
* |
* |
A2: Tạm treo tài khoản |
F |
T |
F |
F |
F |
F |
* |
* |
A3: Gửi thư thông báo |
T |
T |
T |
T |
F |
T |
* |
* |
CHÚ THÍCH 1: Mặc dù chữ T và F đã được sử dụng trong bảng quyết định trên có nghĩa là “Đúng” và “Sai”, cũng có thể sử dụng các ký hiệu khác (ví dụ, có thể sử dụng các từ “đúng” và “sai” thay thế).
CHÚ THÍCH 2: Trong bảng trên, cả các điều kiện (C) và các hành động (A) là các điều kiện nhị phân (T hoặc F) nên bảng này sẽ được coi là bảng quyết định "có đầu vào giới hạn". Trong bảng quyết định "có đầu vào được mở rộng", các điều kiện và/ hoặc các hành động có thể có nhiều giá trị.
B.2.6.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng bằng cách lựa chọn một hoặc nhiều quy tắc quyết định khả thi có thể thực hiện được từ bảng quyết định khi chúng chưa được bao phủ bởi một ca kiểm thử nào, xác định các đầu vào để thực hiện (các) điều kiện và (các) hành động của các quy tắc quyết định và xác định các giá trị hợp lệ cho bất kỳ biến đầu vào khác theo yêu cầu của các ca kiểm thử, xác định kết quả mong đợi và lặp lại các bước này cho đến khi đạt được mức độ bao phủ kiểm thử quy định. Các ca kiểm thử dưới đây sẽ được tạo ra từ các quy tắc quyết định nêu trong bảng trên đạt được độ 100% bao phủ bảng quyết định, các ca kiểm thử này tương ứng với các quy tắc quyết định trong bảng quyết định nêu trên (đối với quy tắc quyết định 7 và 8, không có ca kiểm thử được tạo ra vì chúng không khả thi):
Bảng B.27 - Bảng ca kiểm thử của hàm ghi nợ
Ca kiểm thử |
Các nguyên nhân/ đầu vào |
Các kết quả/ đầu ra |
Hạng mục bao phủ kiểm thử |
||||
Loại tài khoản |
Hạn mức thấu chi |
Số dư hiện tại |
Số tiền ghi nợ |
Số dư mới |
Mã hành động |
||
1 |
c |
£100 |
-£70 |
£50 |
-£70 |
L |
1 |
2 |
p |
£1500 |
£420 |
£2000 |
£420 |
S và L |
2 |
3 |
c |
£250 |
£650 |
£800 |
-£150 |
D và L |
3 |
4 |
p |
£750 |
-£500 |
£200 |
-£700 |
D và L |
4 |
5 |
c |
£1000 |
£2100 |
£1200 |
£900 |
D |
5 |
6 |
p |
£500 |
£250 |
£150 |
£100 |
D và L |
6 |
B.2.6.5 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Vì chỉ có sáu ca kiểm thử được tạo ra ở trên bao phủ tất cả các quy tắc quyết định nên tất cả các ca kiểm thử này sẽ được thực hiện bằng tay và sẽ được đặt trong một bộ kiểm thử.
TS1: Gồm các ca kiểm thử 1, 2, 3, 4, 5, 6
B.2.6.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì tất cả các ca kiểm thử nằm trong bộ một bộ kiểm thử nên chúng ta có thể tạo ra được một thủ tục kiểm thử dưới đây:
TP1: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
B.2.6.9 Độ bao phủ kiểm thử bảng quyết định
Sử dụng công thức đã nêu trong Điều 6.2.6 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử bảng quyết định đạt được là 100%.
B.2.7 Đồ thị nguyên nhân - kết quả
B.2.7.1 Giới thiệu
Mục đích của đồ thị nguyên nhân - kết quả là xây dựng các ca kiểm thử mà bao phủ các mối quan hệ lô-gic giữa các nguyên nhân (ví dụ: các đầu vào) và các kết quả (ví dụ: các đầu ra) của một hạng mục kiểm thử theo một mức độ bao phủ được lựa chọn. Kỹ thuật này sử dụng một ký hiệu trong thiết kế đồ thị nguyên nhân - kết quả của hạng mục kiểm thử để minh họa mối quan hệ giữa nguyên nhân và kết quả cũng như những ràng buộc đối với các nguyên nhân và kết quả. Kỹ thuật này khác với kiểm thử bảng quyết định do những ràng buộc không được nêu ra cụ thể. Tuy nhiên, kỹ thuật này chỉ có hiệu quả trong phạm vi các mô hình mà có các cơ sở kiểm thử của các hạng mục kiểm thử.
B.2.7.2 Đặc tả
Hãy xem xét một chức năng kiểm tra hàm ghi nợ séc có đầu vào là số tiền ghi nợ, loại tài khoản và số dư hiện tại và có đầu ra là số dư mới và mã hành động. Loại tài khoản có thể là loại tài khoản bưu điện (‘p’) hoặc tài khoản counter (‘c’). Mã hành động có thể là 'D và L', 'D', 'S và L' hoặc 'L', tương ứng với ‘chỉ thực hiện ghi nợ’, ‘thực hiện ghi nợ và gửi thư thông báo’, ‘Tạm treo tài khoản và gửi thư thông báo’ và ‘chỉ gửi thư thông báo’. Hàm này có các cơ sở kiểm thử sau:
Nếu có đủ tiền trong tài khoản hoặc số dư mới nằm trong hạn mức thấu chi được ủy quyền thì việc ghi nợ được thực hiện. Nếu số dư mới vượt quá hạn mức thấu chi được ủy quyền thì ghi nợ không được thực hiện và nếu nó là một tài khoản bưu điện nó sẽ bị treo. Thư được gửi đến cho tất cả các giao dịch trên tài khoản bưu điện và cho các tài khoản không phải là tài khoản bưu điện nếu có đủ tiền (tức là tài khoản không phải là thẻ tín dụng).
B.2.7.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục bao phủ kiểm thử được định nghĩa trong cơ sở kiểm thử nên chỉ có một tập tính năng được xác định:
FS1: Hàm ghi nợ (cheque debit)
B.2.7.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Các điều kiện kiểm thử chính là các nguyên nhân và kết quả mà có thể được tạo ra từ cơ sở kiểm thử. Đối với các nguyên nhân, có các điều kiện kiểm thử sau:
TCOND1 (C1): |
Số dư mới trong thẻ |
(đối với tập tính năng FS1) |
TCOND2 (C2): |
Rút quá số dư mới nhưng vẫn nằm trong giới hạn cho phép |
(đối với tập tính năng FS1) |
TCOND3 (C3): |
Tài khoản bưu điện |
(đối với tập tính năng FS1) |
Đối với các kết quả, có các điều kiện kiểm thử sau: |
|
|
TCOND4 (A1): |
Thực hiện ghi nợ |
(đối với tập tính năng FS1) |
TCOND5 (A2): |
Tạm treo tài khoản |
(đối với tập tính năng FS1) |
TCOND6 (A3): |
Gửi thư thông báo |
(đối với tập tính năng FS1) |
Đồ thị nguyên nhân - kết quả cho thấy mối quan hệ giữa nguyên nhân và kết quả thông qua một ký hiệu được sử dụng bởi các nhà thiết kế các mạch lô-gic phần cứng. Cơ sở kiểm thử được mô hình hóa bằng đồ thị dưới đây.
Hình B.10 - Đồ thị nguyên nhân - kết quả của hàm ghi nợ (xem ký hiệu các hình dưới đây)
CHÚ THÍCH 1: Nút “trống” nối các nút C1/C2 với A1/A2/A3 là một nút liên kết được sử dụng để kết hợp hai hoặc nhiều nguyên nhân lại với nhau.
Hình B.11 - Ký hiệu minh họa mối quan hệ giữa các nguyên nhân và các kết quả trong đồ thị nguyên nhân - kết quả
CHÚ THÍCH 2: Mặc dù những ký hiệu "ràng buộc" dưới đây không được quy định đối với ví dụ được đưa ra trong điều khoản này nhưng chúng được đưa ra để xác định mối quan hệ giữa các nguyên nhân và mối quan hệ giữa các kết quả. Các mối quan thông được đưa ra trong bảng quyết định và thường có trong các đặc tả. Những ký hiệu này dùng để xác minh tính toàn vẹn của đồ thị nguyên nhân - kết quả, bảng quyết định và các ca kiểm thử được xây dựng từ đồ thị nguyên nhân - kết quả.
Hình B.12 - Các ký hiệu ràng buộc giữa nguyên nhân và kết quả trong đồ thị nguyên nhân - kết quả
B.2.7.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Đồ thị nguyên nhân - kết quả sử dụng lại các nội dung của bảng quyết định (ví dụ: xem ví dụ (Myers đưa ra năm 1979) và (Nursimulu và Probert đưa ra năm 1995)), nó cho phép xác định các hạng mục bao phủ kiểm thử (tức là các quy tắc quyết định khả thi trong bảng quyết định). Mỗi cột của bảng quyết định là một quy tắc quyết định. Bảng quyết định bao gồm hai phần. Trong phần thứ nhất này từng quy tắc quyết định được lập bảng dựa theo các nguyên nhân. Chữ “T” biểu thị rằng các nguyên nhân là ĐÚNG đối với quy tắc quyết định áp dụng, chữ “F” biểu thị rằng các nguyên nhân là SAI đối với quy tắc quyết định áp dụng. Trong phần thứ hai, từng quy tắc quyết định được lập bảng dựa theo các kết quả. Chữ “T” biểu thị rằng các kết quả sẽ xảy ra; chữ “F” biểu thị rằng kết quả sẽ không xảy ra; dấu sao (*) biểu thị sự kết hợp của những nguyên nhân là không khả thi và do đó không xác định được kết quả nào cho các quy tắc quyết định.
Ví dụ có bảng quyết định sau đây, xác định được 6 hạng mục bao phủ kiểm thử (quy tắc quyết định 7 và 8 đều không phải là các hạng mục bao phủ kiểm thử vì chúng không khả thi):
Bảng B.28 - Bảng quyết định của hàm ghi nợ séc
Các quy tắc quyết định: |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
C1: Số dư mới trong thẻ |
F |
F |
F |
F |
T |
T |
T |
T |
C2: Rút quá số dư mới nhưng vẫn nằm trong giới hạn cho phép |
F |
F |
T |
T |
F |
F |
T |
T |
C3: Tài khoản bưu điện |
F |
T |
F |
T |
F |
T |
F |
T |
Các quy tắc quyết định: |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
A1: Thực hiện ghi nợ |
F |
F |
T |
T |
T |
T |
* |
* |
A2: Tạm treo tài khoản |
F |
T |
F |
F |
F |
F |
* |
* |
A3: Gửi thư thông báo |
T |
T |
T |
T |
F |
T |
* |
* |
B.2.7.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng bằng cách lựa chọn một hoặc nhiều quy tắc quyết định khả thi từ bảng quyết định chưa được bao gồm trong một ca kiểm thử, xác định các đầu vào để thực hiện các nguyên nhân và kết quả của quy tắc quyết định, xác định các giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác quy định bởi các ca kiểm thử, xác định các kết quả mong đợi của các ca kiểm thử, và lặp đi lặp lại các bước này cho đến khi tất cả các quy tắc quyết định khả thi được bao phủ. Các ca kiểm thử sau đây đạt được 100% độ bao phủ nguyên nhân - kết quả và tương ứng với các quy tắc quyết định trong bảng quyết định trên (đối với quy tắc quyết định 7 và 8, không có ca kiểm thử được tạo ra vì chúng không khả thi):
Bảng B.29 - Bảng ca kiểm thử của hàm ghi nợ séc
Ca kiểm thử |
Các nguyên nhân/ đầu vào |
Các kết quả/ đầu ra |
Hạng mục bao phủ kiểm thử |
||||
Loại tài khoản |
Hạn mức thấu chi |
Số dư hiện tại |
Số tiền ghi nợ |
Số dư mới |
Mã hành động |
||
1 |
c |
£100 |
-£70 |
£50 |
-£70 |
‘L’ |
1 |
2 |
p |
£1500 |
£420 |
£2000 |
£420 |
‘S và L’ |
2 |
3 |
c |
£250 |
£650 |
£800 |
-£150 |
‘D và L’ |
3 |
4 |
p |
£750 |
-£500 |
£200 |
-£700 |
‘D và L’ |
4 |
5 |
c |
£1000 |
£2100 |
£1200 |
£900 |
D |
5 |
6 |
p |
£500 |
£250 |
£150 |
£100 |
‘D và L’ |
6 |
B.2.7.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Vì chỉ có sáu ca kiểm thử được tạo ra ở trên bao phủ tất cả các quy tắc quyết định nên tất cả các ca kiểm thử này sẽ được thực hiện bằng tay và sẽ được đặt trong một bộ kiểm thử.
TS1: Gồm các ca kiểm thử 1, 2, 3, 4, 5, 6
B.2.7.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì tất cả các ca kiểm thử nằm trong bộ một bộ kiểm thử nên chúng ta có thể tạo ra được một thủ tục kiểm thử dưới đây:
TP1: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
B.2.7.9 Độ bao phủ đồ thị nguyên nhân - kết quả
Sử dụng công thức đã nêu trong Điều 6.2.7 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với đồ thị nguyên nhân - kết quả đạt được là 100%.
B.2.8 Kiểm thử chuyển đổi trạng thái
B.2.8.1 Giới thiệu
Mục đích của kiểm thử chuyển đổi trạng thái là xây dựng một bộ các ca kiểm thử bao phủ những chuyển đổi và/hoặc những trạng thái của hạng mục kiểm thử theo mức độ bao phủ được lựa chọn. Kỹ thuật này được dựa trên phân tích cơ sở kiểm thử của hạng mục kiểm thử để mô phỏng các hành vi của nó bằng những chuyển đổi trạng thái.
B.2.8.2 Đặc tả
Hãy xem xét một hạng mục kiểm thử quản lý hiển thị những thay đổi với cơ sở kiểm thử sau đây:
Hạng mục kiểm thử đáp ứng các yêu cầu đầu vào để thay đổi chế độ hiển thị bên ngoài đối với một thiết bị hiển thị thời gian. Chế độ hiển thị bên ngoài có thể được thiết lập một trong bốn giá trị: hai giá trị tương ứng với hiển thị thời gian hoặc hiển thị ngày, hai giá trị còn lại tương ứng với các để chế độ được sử dụng khi thay đổi giờ hoặc ngày.
Có bốn yêu cầu đầu vào: ‘Thay đổi chế độ’, ‘Thiết lập lại’, ‘Thiết lập thời gian’ và ‘Thiết lập ngày’. Yêu cầu đầu vào ‘Thay đổi chế độ’ sẽ làm cho chế độ hiển thị di chuyển giữa các giá trị ‘Hiển thị thời gian’ và ‘Hiển thị ngày’. Nếu chế độ hiển thị được thiết lập là “Hiển thị thời gian” hoặc “Hiển thị ngày” thì yêu cầu đầu vào ‘Thiết lập’ tạo ra chế độ hiển thị được thiết lập các chế độ ‘thiết lập thời gian’ hoặc ‘thiết lập ngày’ tương ứng. Yêu cầu đầu vào ‘Thiết lập thời gian’ sẽ làm cho các chế độ hiển thị quay trở lại ‘hiển thị thời gian’ từ ‘thay đổi thời gian’ trong khi yêu cầu đầu vào ‘thiết lập ngày’ sẽ làm cho chế độ hiển thị quay trở lại ‘hiển thị ngày’ từ ‘thay đổi ngày’.
B.2.8.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được định nghĩa trong cơ sở kiểm thử, chỉ xác định được một tính năng:
FS1: Quản lý hiển thị những thay đổi (manage_display_changes)
B.2.8.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Một mô hình trạng thái được tạo ra là các điều kiện kiểm thử. Sơ đồ chuyển đổi trạng thái (STD) thường được sử dụng như mô hình trạng thái và ký hiệu của chúng được minh chứng dưới đây. Một STD bao gồm các trạng thái, sự chuyển tiếp, các sự kiện và các hành động (xem Hình B.13). Sự kiện luôn luôn được tạo ra bởi đầu vào. Tương tự như vậy, hành động tạo ra đầu ra. Đầu ra của một hành động có thể xác định tình trạng hiện tại của hạng mục kiểm thử. Sự chuyển tiếp được xác định bởi trạng thái hiện tại và sự kiện và nó thường được gọi một cách đơn giản là các sự kiện và hành động. Như đã nêu trong Điều 5.2.8.1, trong kiểm thử chuyển đổi trạng thái các điều kiện kiểm thử có thể là tất cả các trạng thái của mô hình trạng thái, tất cả sự chuyển tiếp của mô hình trạng thái hoặc toàn bộ mô hình trạng thái, tùy thuộc vào các yêu cầu bao phù của kiểm thử.
Hình B.14 - Mô hình trạng thái tổng quát
Sơ đồ chuyển đổi trạng thái (STD) đối với hạng mục kiểm thử quản lý hiển thị những thay đổi được trình bày dưới đây (trong ví dụ này là điều kiện kiểm thử TCOND1):
Hình B.14 - Sơ đồ chuyển đổi trạng thái của hàm quản lý hiển thị những thay đổi
B.2.8.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử 0-Switch và “tất cả các chuyển tiếp” (TD3)
Giả sử mức độ bao phủ được lựa chọn là "tất cả các chuyển tiếp", một bảng trạng thái có thể được tạo ra đại diện cho tất cả các chuyển tiếp hợp lệ và không hợp lệ (các hạng mục bao phủ kiểm thử). Để đạt được độ bao phủ 0-switch hoàn toàn thì chỉ cần phải thực hiện những chuyển tiếp hợp lệ.
Hạn chế của độ bao phủ 0-switch là các ca kiểm thử được xây dựng chỉ để thực hiện các chuyển tiếp hợp lệ trong các hạng mục kiểm thử. Việc kiểm thử kỹ hơn các hạng mục kiểm thử cũng sẽ làm cho các chuyển tiếp không hợp lệ xuất hiện ("tất cả các chuyển tiếp"). STD cho thấy các chuyển tiếp hợp lệ (tất cả các chuyển tiếp không được hiển thị được coi là không hợp lệ). Ví dụ về mô hình trạng thái mà thể hiện khá rõ cả chuyển tiếp hợp lệ và không hợp lệ chính là bảng trạng thái, một đại diện khác nữa của mô hình trạng thái là một sơ đồ chuyển trạng thái bao gồm một trạng thái "bất thường" mà tại đó kết thúc tất cả các chuyển tiếp không hợp lệ. Một ký hiệu sử dụng cho bảng trạng thái được mô tả ngắn gọn dưới đây:
Bảng B.30 - Ký hiệu sử dụng cho bảng trạng thái
|
Đầu vào 1 |
Đầu vào 2 |
v.v... |
Trạng thái bắt đầu 1 |
Lối vào A |
Lối vào B |
v.v... |
Trạng thái bắt đầu 2 |
Lối vào C |
Lối vào D |
v.v... |
v.v... |
v.v... |
v.v... |
v.v... |
Bảng trạng thái đối với quản lý hiển thị những thay đổi được trình bày dưới đây:
Bảng B.31 - Bảng trạng thái đối với quản lý hiển thị những thay đổi
|
CM |
R |
TS |
DS |
S1 |
S2/D |
S3/AT |
S1/- |
S1/- |
S2 |
S1/T |
S4/AD |
S2/- |
S2/- |
S3 |
S3/- |
S3/- |
S1/T |
S3/- |
S4 |
S4/- |
S4/- |
S4/- |
S2/D |
Bất kỳ đầu vào nào mà trạng thái giống nhau và các hành động có chứa dấu (-) đại diện cho sự chuyển tiếp không null, nếu xảy ra chuyển tiếp thực tế sẽ xuất hiện một lỗi. Đây là kiểm thử các chuyển tiếp null bị bỏ qua bởi các bộ kiểm thử được thiết kế chỉ để đạt được Độ bao phủ các hạng mục bao phủ kiểm thử hợp lệ (0-switch). Vì vậy, một bộ kiểm thử hoàn chỉnh hơn ("tất cả các chuyển tiếp") sẽ kiểm thử cả chuyển tiếp có thể xảy ra và các chuyển tiếp null, có nghĩa là kiểm thử phản ứng của các hạng mục kiểm thử cho tất cả các đầu vào trong các cơ sở kiểm thử trong tất cả các trạng thái có thể. Dựa vào bảng trạng thái chúng ta sẽ xác định được các hạng mục bao phủ kiểm thử để bao phủ các chuyển tiếp null (đối với bao phủ "tất cả các chuyển tiếp").
Có 16 mục đầu vào trong bảng trạng thái trên đại diện cho một trong bốn đầu vào hợp lệ mà có thể xuất hiện trên một trong bốn trạng thái hợp lệ, tạo thành 16 hạng mục bao phủ kiểm thử đối với bao phủ "tất cả các chuyển tiếp" mà có thể đọc được từ bảng trạng thái được trình bày dưới đây:
Bảng B.32 - Bảng trạng thái đối với quản lý hiển thị thay đổi
|
CM |
R |
TS |
DS |
S1 |
S2/D (TCOVER1) |
S3/AT (TCOVER2) |
S1/- (TCOVER3) |
S1/- (TCOVER4) |
S2 |
S1/T (TCOVER5) |
S4/AD (TCOVER6) |
S2/- (TCOVER7) |
S2/- (TCOVER8) |
S3 |
S3/- (TCOVER9) |
S3/- (TCOVER10) |
S1/T (TCOVER11) |
S3/- (TCOVER12) |
S4 |
S4/- (TCOVER13) |
S4/- (TCOVER14) |
S4/- (TCOVER15) |
S2/D (TCOVER16) |
Do đó, đối với “bao phủ tất cả các chuyển tiếp”, các hạng mục bao phủ kiểm thử (hợp lệ và không hợp lệ) dưới đây được xác định dựa theo bảng trạng thái trên:
TCOVER1: |
S1 chuyển sang S2 có đầu vào là CM |
(đối với FS1, trạng thái hợp lệ) |
TCOVER2: |
S1 chuyển sang S3 có đầu vào là R |
(đối với FS1, trạng thái hợp lệ) |
TCOVER3: |
S1 chuyển sang S1 có đầu vào là TS |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER4: |
S1 chuyển sang S1 có đầu vào là DS |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER5: |
S2 chuyển sang S1 có đầu vào là CM |
(đối với FS1, trạng thái hợp lệ) |
TCOVER6: |
S2 chuyển sang S4 có đầu vào là R |
(đối với FS1, trạng thái hợp lệ) |
TCOVER7: |
S2 chuyển sang S2 có đầu vào là TS |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER8: |
S2 chuyển sang S2 có đầu vào là DS |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER9: |
S3 chuyển sang S3 có đầu vào là CM |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER10: |
S3 chuyển sang S3 có đầu vào là R |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER11: |
S3 chuyển sang S1 có đầu vào là TS |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER12: |
S3 chuyển sang S3 có đầu vào là DS |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER13: |
S4 chuyển sang S4 có đầu vào là CM |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER14: |
S4 chuyển sang S4 có đầu vào là R |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER15: |
S4 chuyển sang S4 có đầu vào là TS |
(đối với FS1, trạng thái không hợp lệ) |
TCOVER16: |
S4 chuyển sang S2 có đầu vào là DS |
(đối với FS1, trạng thái hợp lệ) |
B.2.8.6 Bước 4: Xây dựng các ca kiểm thử hợp lệ (TD4)
B.2.8.6.1 Các Tùy chọn
Các ca kiểm thử có thể được xây dựng để thực hiện một trong những chuyển tiếp có thể (sử dụng các ký hiệu STD viết tắt). Các đầu vào thực hiện (các) chuyển tiếp mà được bao phủ bởi từng ca kiểm thử có thể được xác định từ STD, như thể các kết quả mong đợi, mà có thể được xác định bằng cách kết hợp đầu ra mong đợi và trạng thái cuối cùng của sự chuyển tiếp trong STD. Các ca kiểm thử có thể được xây dựng để bao phủ một đến n chuyển tiếp trên một ca kiểm thử, trong đó n là số chuyển tiếp tối đa có thể xảy ra. Ví dụ, các ca kiểm thử có thể được tạo ra đối với bao phủ 0-switch hoặc bao phủ 1-switch (mặc dù trong thực tế không cần thiết phải xây dựng cả ca kiểm thử 0-switch và 1-switch, điều này được minh họa dưới đây chỉ đơn giản là để giải thích phương pháp thực hiện). Các ca kiểm thử cũng có thể được xây dựng để bao phủ chuyển tiếp không hợp lệ. Ba kịch bản này được minh họa dưới đây.
B.2.8.6.2 Bước 4a: Xây dựng các ca kiểm thử 0-Switch (các chuyển tiếp hợp lệ)
Sáu ca kiểm thử sau đây cung cấp độ bao phủ kiểm thử 0-switch. Mỗi ca kiểm thử được tạo ra bằng cách lựa chọn một chuyển tiếp và xác định các đầu vào, đầu ra mong đợi và trạng thái cuối cùng từ STD cho đến khi tất cả các chuyển tiếp được bao phủ bởi một ca kiểm thử.
Bảng B.33 - Các ca kiểm thử 0-switch đối với quản lý hiển thị những thay đổi
Ca kiểm thử |
1 |
2 |
3 |
4 |
5 |
6 |
Trạng thái bắt đầu |
S1 |
S1 |
S2 |
S2 |
S3 |
S4 |
Đầu vào |
CM |
R |
CM |
R |
TS |
DS |
Đầu ra mong đợi |
D |
AT |
T |
AD |
T |
D |
Trạng thái kết thúc |
S2 |
S3 |
S1 |
S4 |
S1 |
S2 |
Hạng mục bao phủ kiểm thử |
1 |
2 |
5 |
6 |
11 |
16 |
CHÚ THÍCH: Một thủ tục kiểm thử có thể được viết cho sáu ca kiểm thử trong bảng trên sẽ cho phép chúng thực hiện tuần tự vì thế "trạng thái kết thúc" cho một ca kiểm thử này sẽ là trạng thái bắt đầu cho ca kiểm thử tiếp theo (ví dụ: thứ tự thực hiện 5, 1, 4, 6, 3, 2). Điều này được xây dựng tỉ mỉ ở Bước 5.
Bảng này cho thấy, đối với ca kiểm thử thứ 1 thì trạng thái bắt đầu là HIỂN THỊ THỜI GIAN (S1), đầu vào là “thay đổi chế độ”(CM), đầu ra mong đợi là “hiển thị ngày”(D), và trạng thái kết thúc là HIỂN THỊ NGÀY (S2).
Sáu ca kiểm thử này thực hiện một trong số các chuyển tiếp "hợp lệ" và do đó đạt được độ bao phủ 0-switch (Cho đưa ra năm 1987). Các ca kiểm thử được thiết kế để đạt được mức độ bao phủ này bị giới hạn về khả năng phát hiện một số loại lỗi vì chúng phát hiện được các đầu ra và các chuyển tiếp không chính xác một cách rõ ràng nhất, chúng sẽ không phát hiện được các lỗi có mức độ tinh vi hơn mà chỉ có thể phát hiện thông qua trình tự thực hiện chuyển tiếp.
B.2.8.6.3 Bước 4b: Xây dựng các ca kiểm thử đối với chuyển tiếp không hợp lệ
Các ca kiểm thử bao phủ các chuyển tiếp không hợp lệ có thể được xác định như sau, trong đó dấu đại diện cho một sự chuyển tiếp null:
Bảng B.34 - Các ca kiểm thử không hợp lệ đối với quản lý hiển thị những thay đổi
Ca kiểm thử |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
Trạng thái bắt đầu |
S1 |
S1 |
S2 |
S2 |
S3 |
S3 |
S3 |
S4 |
S4 |
S4 |
Đầu vào |
TS |
DS |
TS |
DS |
CM |
R |
DS |
CM |
R |
TS |
Đầu ra mong đợi |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
Trạng thái kết thúc |
S1 |
S1 |
S2 |
S2 |
S3 |
S3 |
S3 |
S4 |
S4 |
S4 |
Hạng mục bao phủ kiểm thử |
3 |
4 |
7 |
8 |
9 |
10 |
12 |
13 |
14 |
15 |
Bảng trên cho thấy các ca kiểm thử mà bao phủ các hạng mục bao phủ kiểm thử không hợp lệ sẽ không tạo ra sự chuyển tiếp từ trạng thái bắt đầu. Kết hợp các ca kiểm thử trong hai bảng trên sẽ đạt được độ bao phủ "tất cả các chuyển tiếp".
B.2.8.6.4 Bước 4c: Xác định các hạng mục bao phủ kiểm thử 1-Switch (TD3)
Các hạng mục bao phủ kiểm thử sau đây có thể được xác định từ STD để đạt được độ bao phủ 1-Switch:
TCOVER17: S1 chuyển sang S2 chuyển sang S1 có đầu vào là CM và CM (đối với FS1)
TCOVER18: S1 chuyển sang S2 chuyển sang S4 có đầu vào là CM và R (đối với FS1)
TCOVER19: S1 chuyển sang S3 chuyển sang S1 có đầu vào là R và TS (đối với FS1)
TCOVER20: S3 chuyển sang S1 chuyển sang S2 có đầu vào là TS và CM (đối với FS1)
TCOVER21: S3 chuyển sang S1 chuyển sang S3 có đầu vào là TS và R (đối với FS1)
TCOVER22: S2 chuyển sang S1 chuyển sang S2 có đầu vào là CM và CM (đối với FS1)
TCOVER23: S2 chuyển sang S1 chuyển sang S3 có đầu vào là CM và R (đối với FS1)
TCOVER24: S2 chuyển sang S4 chuyển sang S2 có đầu vào là R và DS (đối với FS1)
TCOVER25: S4 chuyển sang S2 chuyển sang S1 có đầu vào là DS và CM (đối với FS1)
TCOVER26: S4 chuyển sang S2 chuyển sang S4 có đầu vào là DS và R (đối với FS1)
B.2.8.6.5 Bước 4d: Xây dựng các ca kiểm thử 1-Switch (TD4)
Nếu độ bao phủ kiểm thử được lựa chọn trong bước TD3 bao phủ tất cả các chuyển tiếp 1-switch thì có thể viết được các ca kiểm thử để thực hiện tất cả các cặp chuyển tiếp tuần tự có thể có. Trong ví dụ này có mười ca kiểm thử 1-switch được xác định dưới đây:
Bảng B.35 - Các ca kiểm thử 1-switch đối với quản lý hiển thị những thay đổi
Ca kiểm thử |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
Trạng thái bắt đầu |
S1 |
S1 |
S1 |
S3 |
S3 |
S2 |
S2 |
S2 |
S4 |
S4 |
Đầu vào |
CM |
CM |
R |
TS |
TS |
CM |
CM |
R |
DS |
DS |
Đầu ra mong đợi |
D |
D |
AT |
T |
T |
T |
T |
AD |
D |
D |
Trạng thái tiếp theo |
S2 |
S2 |
S3 |
S1 |
S1 |
S1 |
S1 |
S4 |
S2 |
S2 |
Đầu vào |
CM |
R |
TS |
CM |
R |
CM |
R |
DS |
CM |
R |
Đầu ra mong đợi |
T |
AD |
T |
D |
AT |
D |
AT |
D |
T |
AD |
Trạng thái kết thúc |
S1 |
S4 |
S1 |
S2 |
S3 |
S2 |
S3 |
S2 |
S1 |
S4 |
Hạng mục bao phủ kiểm thử |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
Bảng trên cho thấy ca kiểm thử 17 bao gồm hai chuyển tiếp. Đối với chuyển tiếp thứ nhất thì trạng thái bắt đầu là HIỂN THỊ THỜI GIAN (S1), đầu vào thứ nhất là “thay đổi chế độ” (CM), đầu ra mong đợi trung gian là hiển thị ngày (D) và trạng thái tiếp theo là HIỂN THỊ NGÀY (S2). Đối với chuyển tiếp thứ hai, đầu vào thứ hai là “thay đổi chế độ” (CM), đầu ra mong đợi cuối cùng là hiển thị thời gian (T), và trạng thái kết thúc là HIỂN THỊ THỜI GIAN (S1). Lưu ý rằng các trạng thái trung gian, các đầu vào và đầu ra cho mỗi quá trình chuyển tiếp phải được xác định một cách rõ ràng.
Có thể kiểm thử các chuỗi chuyển tiếp dài hơn để đạt được độ bao phủ switch cao hơn, tùy thuộc vào mức độ kiểm thử yêu cầu.
B.2.8.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Tất cả các ca kiểm thử 0-switch (bao gồm các chuyển tiếp hợp lệ) sẽ được tập hợp vào một bộ kiểm thử thứ nhất, tất các ca kiểm thử "tất cả các chuyển tiếp" bao phủ chuyển tiếp không hợp lệ được tập hợp trong một bộ kiểm thử thứ hai và tất cả các ca kiểm thử 1-switch vào bộ kiểm thử thứ ba như trình bày sau đây:
TS1: Các ca kiểm thử 0-switch, bao gồm các ca kiểm thử: 1, 2, 3, 4, 5, 6.
TS2: Các ca kiểm thử “tất cả các chuyển tiếp” không hợp lệ, bao gồm các ca kiểm thử: 7, 8, 9, 10, 11, 12, 13, 14, 15, 16.
TS3: Các ca kiểm thử 1-switch, bao gồm các ca kiểm thử: 17, 18, 19, 20, 21, 22, 23, 24, 25, 26.
CHÚ THÍCH 1: Trong một số trường hợp, đòi hỏi phải xây dựng các ca kiểm thử riêng lẻ chẳng hạn như "trạng thái kết thúc" của một ca kiểm thử là trạng thái bắt đầu của ca kiểm thử kế tiếp. Việc này có thể nâng cao hiệu quả trong quá trình thực thi kiểm thử. Khả năng để làm điều này phụ thuộc vào mô hình trạng thái cụ thể đang được kiểm thử. Trong ví dụ trên, thứ tự sau đây của các ca kiểm thử sẽ đạt được mục tiêu này: TS1: các ca kiểm thử 0 switch là các ca kiểm thử 5, 1, 4, 6, 3, 2.
CHÚ THÍCH 2: Vì các ca kiểm thử 1-switch xác định ở trên bao phủ tất cả các đường đi trong các ca kiểm thử 0-switch nên không cần thiết phải xác định các bộ kiểm thử và thủ tục kiểm thử cho các ca kiểm thử 0-switch. Tuy nhiên, chúng vẫn được đưa ra đầy đủ ở đây.
B.2.8.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Một thủ tục kiểm thử có thể được xác định để thực hiện tất cả các ca kiểm thử theo thứ tự mà chúng được định nghĩa trong Bước 5:
TP1: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, TS2 và TS3, theo thứ tự được định nghĩa trong các bộ kiểm thử.
B.2.8.9 Độ bao phủ kiểm thử chuyển đổi trạng thái
Sử dụng công thức đã nêu trong Điều 6.2.8 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử 0-switch, kiểm thử 1-switch và kiểm thử tất cả chuyển đổi trạng thái đạt được là 100%.
B.2.9.1 Giới thiệu
Mục đích của kiểm thử kịch bản là xây dựng các ca kiểm thử mà bao phủ các kịch bản của hạng mục kiểm thử tùy theo mức độ bao phủ đã chọn. Kiểm thử kịch bản dựa trên sự phân tích cơ sở kiểm thử để tạo ra một mô hình hành vi của chúng bằng các chuỗi hành động mà tạo thành luồng công việc thông qua các hạng mục kiểm thử.
Có hai kiểu kiểm thử kịch bản được minh họa dưới đây. Ví dụ thứ nhất được dựa trên một dạng chung của kỹ thuật này, ví dụ thứ hai là một ví dụ cụ thể dựa trên các trường hợp sử dụng.
B.2.9.2 Ví dụ 1
B.2.9.2.1 Đặc tả
Hãy xem xét một hạng mục kiểm thử rút tiền mặt từ cây ATM với cơ sở kiểm thử sau đây:
Hàm rút tiền mặt cho phép khách hàng có tài khoản ngân hàng rút tiền từ tài khoản của mình thông qua cây ATM. Việc rút tiền chỉ có thể được thực hiện khi người dùng có tài khoản mở ở ngân hàng, thẻ hợp lệ, mã pin phù hợp và cây ATM đang làm việc. Sau khi việc rút tiền hoàn tất, số dư tài khoản được ghi nợ theo số tiền rút ra, biên lai rút tiền được in ra, cây ATM sẵn sàng cho người dùng tiếp theo.
Các kịch bản sau đây đã được xây dựng theo yêu cầu của khách hàng:
Kịch bản tiêu biểu
- Rút tiền thành công từ tài khoản.
Các kịch bản thay thế
Việc rút tiền không thực hiện được, bởi vì:
- Thẻ ngân hàng của người dùng bị từ chối vì cây ATM không nhận biết được.
- Người dùng nhập mã PIN không chính xác đến 2 lần.
- Người dùng nhập mã PIN sai ba lần nên bị cây ATM nuốt thẻ.
- Người dùng lựa chọn gửi tiền hoặc chuyển khoản thay vì rút tiền.
- Người dùng nhập số tài khoản không chính xác mà không tồn tại trên thẻ.
- Người dùng nhập số tiền rút không hợp lệ.
- Không có đủ tiền mặt tại cây ATM.
- Người dùng nhập số tiền không chia hết cho mệnh giá tối thiểu.
- Người dùng nhập số tiền rút vượt số tiền cho phép rút tối đa một ngày.
- Không có đủ tiền trong tài khoản của người dùng.
CHÚ THÍCH: Trong thực tế, các kịch bản bổ sung cũng có thể được đưa ra đối với tình huống người dùng nhấn nút hủy bỏ tại bất kỳ thời điểm nào trong quá trình rút tiền.
B.2.9.2.2 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được xác định trong cơ sở kiểm thử, chỉ cần phải xác định một tập tính năng là:
FS1: Hàm rút tiền mặt (withdraw_cash function)
B.2.9.2.3 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Để có thể xác định được các điều kiện kiểm thử, phải tạo ra một mô hình các hạng mục kiểm thử để xác định các kịch bản kiểm thử (và các hoạt động trong kịch bản) trong mỗi kịch bản. Mô hình ví dụ dưới đây là một sơ đồ dòng chảy của các sự kiện. Trong mô hình này, đường đi "chính" được biểu diễn là một đường màu đen đậm, các điểm bắt đầu và điểm kết thúc của luồng công việc này đều được ghi nhãn, mỗi hành động được gắn thẻ với một định danh duy nhất để biết đó là hành động của người dùng (U) hoặc của hệ thống (S) (tức là hạng mục kiểm thử).
Hình B.15 - Sơ đồ dòng chảy của các sự kiện đối với Hàm rút tiền mặt
Trong kiểm thử kịch bản, các điều kiện kiểm thử là các kịch bản chính và kịch bản thay thế mà được bao phủ trong suốt quá trình kiểm thử (tức là chúng là các chuỗi tương tác giữa người dùng và hệ thống thông qua sơ đồ dòng chảy của các sự kiện mà tạo thành một kịch bản). Có 11 kịch bản được mô tả trong đặc tả, trong đó có một kịch bản chính và mười kịch bản thay thế. Các kịch bản này có thể được mô tả như các điều kiện kiểm thử (bao phủ FS1) như sau:
TCOND1: |
Rút tiền thành công |
(bao gồm U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.1, S6, S7, S8, S9, U6) |
TCOND2: |
Cây ATM không nhận biết được thẻ |
(bao gồm U1, S1.2, S9, U6) |
TCOND3: |
Người dùng nhập mã PIN không chính xác < 3 lần |
(bao gồm U1, S1.1, U2, S2.2) |
TCOND4: |
Người dùng nhập mã PIN không chính xác 3 lần |
(bao gồm U1, S1.1, U2, S2.2, U2, S2.2, U2, S2.3, S3) |
TCOND5: |
Người dùng lựa chọn gửi tiền hoặc chuyển khoản thay vì rút tiền |
(bao gồm U1, S1.1, U2, S2.1, U3.2, S10) |
TCOND6: |
Người dùng lựa chọn một tài khoản không chính xác |
(bao gồm U1, S1.1, U2, S2.1, U3.1, U4, S4.2) |
TCOND7: |
Người dùng nhập số tiền rút không hợp lệ |
(bao gồm U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.2) |
TCOND8: |
Không có đủ tiền mặt tại cây ATM |
(bao gồm U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.3) |
TCOND9: |
Người dùng nhập số tiền không chia hết cho mệnh giá tối thiểu |
(bao gồm U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.4) |
TCOND10: |
Người dùng nhập số tiền rút vượt quá số tiền cho phép rút tối đa một ngày |
(bao gồm U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.5) |
TCOND11: |
Không có đủ tiền trong tài khoản của người dùng |
(bao gồm U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.6) |
B.2.9.2.4 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử kịch bản, các điều kiện kiểm thử là những kịch bản tiêu biểu và những kịch bản thay thế, giống như các hạng mục bao phủ kiểm thử.
TCOVER1 = TCOND1 |
TCOVER4 = TCOND4 |
TCOVER7 = TCOND7 |
TCOVER10 = TCOND10 |
TCOVER2 = TCOND2 |
TCOVER5 = TCOND5 |
TCOVER8 = TCOND8 |
TCOVER11 = TCOND11 |
TCOVER3 = TCOND3 |
TCOVER6 = TCOND6 |
TCOVER9 = TCOND9 |
|
B.2.9.2.5 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng bằng cách lựa chọn một kịch bản để bao phủ, xác định các đầu vào để thực hiện đường đi được bao phủ bởi các ca kiểm thử, xác định các kết quả mong đợi của các kiểm thử và lặp đi lặp lại cho đến khi tất cả các kịch bản được bao phủ theo yêu cầu. Các bước xây dựng các ca kiểm thử thường được diễn đạt ở dạng ngôn ngữ tự nhiên. Giả sử xác định được một ca kiểm thử bao phủ từng hạng mục bao phủ kiểm thử thì có thể xây dựng được các ca kiểm thử dưới đây.
CHÚ THÍCH 1 Trong mỗi ca kiểm thử, có một loạt các giá trị đầu vào có thể được lựa chọn cho từng trường đầu vào. Có thể sử dụng kỹ thuật phân vùng tương đương để tạo ra một bộ các giá trị cho vào từng trường đầu vào.
Bảng B.36 - Các ca kiểm thử đối với kiểm thử kịch bản
Ca kiểm thử |
1 |
Tên ca kiểm thử |
Rút tiền thành công từ tài khoản |
Đường đi kịch bản |
U1. S1.1, U2. S2.1, U3.1, U4, S4.1, U5. S5.1, S6, S7, S8, S9, U6 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Mã PIN hợp lệ - giả sử 5652 là hợp lệ và phù hợp với thẻ |
|
Số dư trong thẻ ATM - $50,000 |
|
Số dư tài khoản khách hàng - $100 |
|
Số tiền rút - $50 |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Rút tiền thành công từ tài khoản khách hàng |
Số dư trong thẻ ATM là $49,950 |
|
Số dư tài khoản khách hàng là $50 |
|
Cây ATM vẫn mở, đang hoạt động và chờ khách hàng cho thẻ vào. |
|
Hạng mục bao phủ kiểm thử |
TCOVER1 |
Bảng B.37 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
2 |
Tên ca kiểm thử |
Cây ATM không nhận được thẻ của người dùng |
Đường đi kịch bản |
U1, S1.2, S9, U6 |
Đầu vào |
Thẻ hết hiệu lực Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Điều kiện tiên quyết |
|
Kết quả mong đợi |
Thẻ bị cây ATM từ chối với một thông báo lỗi báo rằng thẻ không hợp lệ. Cây ATM chờ khách hàng rút thẻ hết hiệu lực ra. |
Hạng mục bao phủ kiểm thử |
TCOVER2 |
Bảng B.38 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
3 |
Tên ca kiểm thử |
Người dùng nhập mã PIN không chính xác < 3 lần |
Đường đi kịch bản |
U1, S1.1, U2, S2.2 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Nhập mã PIN không hợp lệ 2 lần - giả sử 0000 là mã không hợp lệ và không phù hợp với thẻ. Số dư trong thẻ ATM - $100 Số dư tài khoản khách hàng - $500 |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Mã PIN bị cây ATM từ chối. Hệ thống nhắc nhở người dùng phải nhập lại mã pin. |
Hạng mục bao phủ kiểm thử |
TCOVER3 |
Bảng B.39 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
4 |
Tên ca kiểm thử |
Người dùng nhập mã PIN 3 lần không chính xác |
Đường đi kịch bản |
U1, S1.1, S2.2, S2.2, U2, S2.2, U2, S2.3, S3 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Nhập mã PIN không hợp lệ 3 lần - giả sử 0000 là mã không hợp lệ và không phù hợp với thẻ. Số dư trong thẻ ATM - $100 Số dư tài khoản khách hàng - $500 |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Mỗi lần nhập mã PIN không hợp lệ, hệ thống sẽ hiển thị thông báo rằng mã PIN không chính xác và nhắc nhở người dùng nhập lại mã PIN. Nếu cố nhập lần thứ ba mà vẫn không chính xác, hệ thống sẽ nuốt thẻ và hiển thị thông báo rằng thẻ đã bị nuốt và người dùng nên liên hệ với ngân hàng để lấy lại thẻ. Cây ATM nuốt thẻ của người dùng. ATM mở, vẫn hoạt động và chờ thẻ khách hàng tiếp theo cho vào. |
Hạng mục bao phủ kiểm thử |
TCOVER4 |
Bảng B.40 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
5 |
Tên ca kiểm thử |
Người dùng lựa chọn hình thức gửi tiền hoặc chuyển tiền |
Đường đi kịch bản |
U1, S1.1, U2, S2.1, U3.2, S10 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Mã PIN hợp lệ - giả sử 5652 là hợp lệ và phù hợp với thẻ |
|
Loại giao dịch - Tiền gửi |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Hệ thống hiển thị thông báo nhắc nhở người dùng nhập các chi tiết tiền gửi. |
Hạng mục bao phủ kiểm thử |
TCOVER5 |
Bảng B.41 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
6 |
Tên ca kiểm thử |
Người dùng lựa chọn tài khoản không chính xác |
Đường đi kịch bản |
U1, S1.1, U2, S2.1, U3.1, U4, S4.2 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Mã PIN hợp lệ - giả sử 5652 là hợp lệ và phù hợp với thẻ |
|
Số dư trong thẻ ATM - $100 |
|
Khách hàng chọn tài khoản không chính xác mà không tồn tại trên thẻ. |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Hệ thống hiển thị thông báo rằng tài khoản đã nhập không hợp lệ và nhắc nhở người dùng lựa chọn một tài khoản mới |
Hạng mục bao phủ kiểm thử |
TCOVER6 |
Bảng B.42 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
7 |
Tên ca kiểm thử |
Người dùng nhập số tiền rút không hợp lệ |
Đường đi kịch bản |
U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.2 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Mã PIN hợp lệ - giả sử 5652 là hợp lệ và phù hợp với thẻ |
|
Số dư trong thẻ ATM - $100 |
|
Số dư tài khoản khách hàng - $20 |
|
Số tiền rút - $17 |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Hệ thống hiển thị thông báo số tiền nhập vào không hợp lệ và nhắc người dùng nhập số tiền rút mới |
Hạng mục bao phủ kiểm thử |
TCOVER7 |
Bảng B.43 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
8 |
Tên ca kiểm thử |
Thiếu tiền mặt tại cây ATM |
Đường đi kịch bản |
U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.3 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Mã PIN hợp lệ - giả sử 5652 là hợp lệ và phù hợp với thẻ |
|
Số dư trong thẻ ATM - $100 |
|
Số dư tài khoản khách hàng - $500 |
|
Số tiền rút - $200 |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Hệ thống hiển thị thông báo không có đủ tiền trong cây ATM, và nhắc người dùng nhập số tiền rút mới. |
Hạng mục bao phủ kiểm thử |
TCOVER8 |
Bảng B.44 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
9 |
Tên ca kiểm thử |
Người dùng nhập số tiền không chia hết cho mệnh giá tối thiểu |
Đường đi kịch bản |
U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.4 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Mã PIN hợp lệ - giả sử 5652 là hợp lệ và phù hợp với thẻ |
|
Số dư trong thẻ ATM - $100, và cây ATM chỉ có $50 |
|
Số dư tài khoản khách hàng - $1,000 |
|
Số tiền rút - $20 |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Hệ thống hiển thị thông báo rằng loại tiền mà người dùng muốn rút không có trong cây ATM và nhắc người dùng nhập số tiền rút mới. |
Hạng mục bao phủ kiểm thử |
TCOVER9 |
Bảng B.45 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
10 |
Tên ca kiểm thử |
Người dùng nhập số tiền vượt quá giới hạn cho phép rút hàng ngày |
Đường đi kịch bản |
U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.5 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Mã PIN hợp lệ - giả sử 5652 là hợp lệ và phù hợp với thẻ |
|
Số dư trong thẻ ATM - $100, và cây ATM chỉ còn các tờ tiền $50 |
|
Số dư tài khoản khách hàng - $3,000 |
|
Số tiền cho phép rút tối đa trong ngày - $1,000 |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Hệ thống hiển thị thông báo số tiền rút vượt quá số tiền rút tối đa hàng ngày và nhắc người dùng nhập số tiền rút mới. |
Hạng mục bao phủ kiểm thử |
TCOVER10 |
Bảng B.46 - Các ca kiểm thử đối với kiểm thử kịch bản (tiếp theo)
Ca kiểm thử |
11 |
Tên ca kiểm thử |
Không đủ tiền trong tài khoản của người dùng |
Đường đi kịch bản |
U1, S1.1, U2, S2.1, U3.1, U4, S4.1, U5, S5.6 |
Đầu vào |
Thẻ còn hiệu lực với tài khoản khách hàng hợp lệ - giả sử 293910982246 là số tài khoản hợp lệ |
Mã PIN hợp lệ - giả sử 5652 là hợp lệ và phù hợp với thẻ |
|
Số dư trong thẻ ATM - $50,000 |
|
Số dư tài khoản khách hàng - $20 |
|
Số tiền rút - $50 |
|
Điều kiện tiên quyết |
Việc rút tiền chỉ có thể được thực hiện bởi người dùng có tài khoản mở ở ngân hàng, thẻ còn hiệu lực, mã pin phù hợp và cây ATM đang hoạt động. |
Kết quả mong đợi |
Hệ thống hiển thị thông báo không đủ tiền trong tài khoản của người dùng và nhắc người dùng nhập số tiền rút mới. |
Hạng mục bao phủ kiểm thử |
TCOVER11 |
CHÚ THÍCH 2: Các ca kiểm thử ở trên được chứa trong một bảng riêng biệt cho dễ đọc. Trong thực tế, chúng có thể được chứa trong một bảng cho tiện theo dõi.
B.2.9.2.6 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Các ca kiểm thử ở trên có thể được nhóm lại thành hai bộ kiểm thử dưới đây, một bộ bao phủ kịch bản chính và một bộ bao phủ các kịch bản thay thế:
TS1: Bao gồm ca kiểm thử 1.
TS2: Bao gồm các ca kiểm thử 2, 3, 4, 5, 6, 7, 8, 9, 10, 11.
B.2.9.2.7 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Có 2 thủ tục kiểm thử yêu cầu dưới đây:
TP1: Bao phủ các ca kiểm thử trong TS1, theo thứ tự quy định trong bộ kiểm
TP2: bao phủ các ca kiểm thử trong TS2, theo thứ tự quy định trong bộ kiểm thử.
B.2.9.2.8 Độ bao phủ kiểm thử kịch bản
Sử dụng công thức đã nêu trong Điều 6.2.9 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
B.2.9.3 Ví dụ 2
B.2.9.3.1 Giới thiệu
Kiểm thử trường hợp sử dụng là một dạng của kiểm thử kịch bản, trong đó việc xây dựng các ca kiểm thử được dựa trên một mô hình trường hợp sử dụng của các hạng mục kiểm thử. Ở đây người ta đưa ra một ví dụ về kiểm thử trường hợp sử dụng để cung cấp cho người sử dụng tiêu chuẩn này kỹ thuật thiết kế kiểm thử trường hợp sử dụng.
B.2.9.3.2 Đặc tả
Hãy xem xét ví dụ sau đây về kiểm thử trường hợp sử dụng đối với hạng mục kiểm thử thay đổi mật khẩu:
Bảng B.47 - Ví dụ về kiểm thử trường hợp sử dụng đối với Thay đổi mật khẩu
Số ID của trường hợp sử dụng |
UC001 |
||
Trường hợp sử dụng |
Thay đổi mật khẩu |
||
Mục đích |
Cho phép người dùng thay đổi mật khẩu hiện tại của họ sang mật khẩu mới |
||
Tác nhân |
Người dùng |
||
Mô tả |
Kiểm thử trường hợp sử dụng cho phép người dùng thay đổi mật khẩu hiện tại của họ sang mật khẩu mới. |
||
Hành động |
Người dùng nhấn nút Change Password trên màn hình Main Menu |
||
Điều kiện tiên quyết |
Người dùng đã đăng nhập được vào hệ thống |
||
Tên kịch bản |
Bước |
Hành động |
|
Luồng cơ bản |
1 |
Người dùng nhấn nút Change Password |
|
2 |
Hệ thống sẽ hiển thị màn hình Change Password |
||
3 |
Người dùng nhập chính xác mật khẩu hiện tại của họ |
||
4 |
Người dùng nhập chính xác mật khẩu mới |
||
5 |
Người dùng nhập lại chính xác mật khẩu mới |
||
6 |
Người dùng nhấn nút OK |
||
7 |
Hệ thống hiển thị thông báo “Mật khẩu thay đổi thành công” |
||
Luồng thay thế - Mật khẩu hiện tại không chính xác |
3.1 |
Người dùng nhập không chính xác mật khẩu hiện tại của họ |
|
3.2 |
Người dùng nhập chính xác mật khẩu mới |
||
3.3 |
Người dùng nhập chính xác mật khẩu mới |
||
3.4 |
Người dùng nhấn nút OK |
||
3.5 |
Hệ thống sẽ hiển thị thông báo lỗi “Mật khẩu hiện tại nhập không chính xác. Xin hãy thử lại.” và hiện sáng tất cả các chữ trong trường mật khẩu hiện tại |
||
Luồng thay thế - Mật khẩu mới ít hơn 8 ký tự |
4.1 |
Người dùng nhập mật khẩu mới ít hơn 8 ký tự |
|
4.2 |
Người dùng nhấn nút OK |
||
4.3 |
Hệ thống sẽ hiển thị thông báo lỗi “Mật khẩu mới phải có độ dài tối thiểu là 8 ký tự. Xin hãy thử lại.” |
||
Luồng thay thế - Mật khẩu mới tương tự như mật khẩu hiện tại |
5.1 |
Người dùng nhập mật khẩu mới giống mật khẩu hiện tại |
|
5.2 |
Người dùng nhấn nút OK |
||
5.3 |
Hệ thống sẽ hiển thị thông báo lỗi “Mật khẩu mới không được giống mật khẩu hiện tại. Xin hãy thử lại.” |
||
Luồng thay thế - Mật khẩu mới không phù hợp |
6.1 |
Người dùng nhập lại mật khẩu mới mà không khớp với mật khẩu mới mà họ đã nhập tại bước 4 |
|
6.2 |
Người dùng nhấn nút OK |
||
6.3 |
Hệ thống sẽ hiển thị thông báo lỗi “Mật khẩu mới không phù hợp. Xin hãy thử lại.” |
||
Các biến và những ngoại lệ |
Không có |
||
Quy luật |
Mật khẩu mới phải khác mật khẩu hiện tại Mật khẩu mới phải có độ dài tối thiểu là 8 ký tự Hệ thống sẽ hiển thị các ký tự của mật khẩu hiện tại và mật khẩu mới bằng một dấu sao (*) |
||
Tần suất |
Được sử dụng lần đầu tiên khi người dùng mới đăng nhập vào hệ thống. Thông thường mỗi người sử dụng 2 lần/năm Có thể được gọi bất cứ lúc nào khi người dùng nhấn nút “Change Password” |
||
CHÚ THÍCH: Cũng có thể có các kịch bản bổ sung đối với tình huống người dùng nhập các ký tự không hợp lệ vào mật khẩu mới của họ.
B.2.9.3.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được xác định trong cơ sở kiểm thử, chỉ cần phải xác định một tập tính năng là:
FS1: Hàm thay đổi mật khẩu
B.2.9.3.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Các điều kiện kiểm thử có thể là các kịch bản tiêu biểu và kịch bản thay thế hiện có trong trường hợp sử dụng. Trong ví dụ này, có các điều kiện kiểm thử sau:
TCOND1: |
Luồng chính |
(đối với FS1) |
TCOND2: |
Luồng thay thế - Mật khẩu hiện tại không đúng |
(đối với FS1) |
TCOND3: |
Luồng thay thế - Mật khẩu mới có độ dài ít hơn 8 ký tự |
(đối với FS1) |
TCOND4: |
Luồng thay thế - Mật khẩu mới giống mật khẩu hiện tại |
(đối với FS1) |
TCOND5: |
Luồng thay thế - Mật khẩu mới không phù hợp |
(đối với FS1) |
B.2.9.3.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Các hạng mục bao phủ kiểm thử trong kiểm thử trường hợp sử dụng là những kịch bản tiêu biểu và những kịch bản thay thế như sau:
TCOVER1: |
Luồng chính |
(đối với TCOND1) |
TCOVER2: |
Luồng thay thế - Mật khẩu hiện tại không đúng |
(đối với TCOND2) |
TCOVER3: |
Luồng thay thế - Mật khẩu mới có độ dài ít hơn 8 ký tự |
(đối với TCOND3) |
TCOVER4: |
Luồng thay thế - Mật khẩu mới giống mật khẩu hiện tại |
(đối với TCOND4) |
TCOVER5: |
Luồng thay thế - Mật khẩu mới không phù hợp |
(đối với TCOND5) |
B.2.9.3.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng bằng cách lựa chọn một kịch bản, xác định các đầu vào để thực hiện đường đi được bao phủ bởi các ca kiểm thử, xác định các kết quả mong đợi và lặp đi lặp lại cho đến khi tất cả các kịch bản trường hợp sử dụng được bao phủ theo yêu cầu.
Bảng B.48 - Các ca kiểm thử đối với kiểm thử trường hợp sử dụng
Tên trường hợp sử dụng |
Thay đổi mật khẩu |
||
Tên ca kiểm thử |
Luồng chính |
||
Mô tả |
Người dùng thay đổi mật khẩu thành công |
||
Tác nhân |
Người dùng |
||
Hạng mục bao phủ kiểm thử |
TCOVER1 |
||
Các bước kiểm thử trường hợp sử dụng |
1, 2, 3, 4, 5, 6, 7 |
||
Điều kiện tiên quyết |
Người dùng đã đăng nhập được vào hệ thống |
||
|
Các bước thực hiện |
Kết quả mong đợi |
|
1 |
Người dùng nhấn nút Change Password |
Hệ thống sẽ hiển thị màn hình Change Password |
|
2 |
Người dùng nhập chính xác mật khẩu hiện tại của họ |
Mật khẩu hiện tại được hiển thị bằng dấu sao (*) |
|
3 |
Người dùng nhập chính xác mật khẩu mới |
Mật khẩu mới được hiển thị bằng dấu sao (*) |
|
4 |
Người dùng nhập lại chính xác mật khẩu mới |
Mật khẩu mới nhập lại được hiển thị bằng dấu sao (*) |
|
5 |
Người dùng nhấn nút OK |
Hệ thống hiển thị thông báo “Mật khẩu thay đổi thành công” |
|
Bảng B.49 - Các ca kiểm thử đối với kiểm thử trường hợp sử dụng tiếp
Tên trường hợp sử dụng |
Thay đổi mật khẩu |
||
Tên ca kiểm thử |
Luồng thay thế - Mật khẩu hiện tại không chính xác |
||
Mô tả |
Người dùng cố gắng để thay đổi mật khẩu nhưng họ nhập mật khẩu hiện tại không chính xác |
||
Tác nhân |
Người dùng |
||
Hạng mục bao phủ kiểm thử |
TCOND2 |
||
Các bước kiểm thử trường hợp sử dụng |
1, 2, 3.1, 3.2, 3.3, 3.4, 3.5 |
||
Điều kiện tiên quyết |
Người dùng đã đăng nhập được vào hệ thống |
||
|
Các bước thực hiện |
Kết quả mong đợi |
|
1 |
Người dùng nhấn nút Change Password |
Hệ thống sẽ hiển thị màn hình Change Password |
|
2 |
Người dùng nhập mật khẩu hiện tại không chính xác |
Mật khẩu hiện tại được hiển thị bằng các dấu sao (*) |
|
3 |
Người dùng nhập chính xác mật khẩu mới |
Mật khẩu mới được hiển thị bằng các dấu sao (*) |
|
4 |
Người dùng nhập chính xác mật khẩu mới |
Mật khẩu mới được hiển thị bằng các dấu sao (*) |
|
5 |
Người dùng nhấn nút OK |
Hệ thống sẽ hiển thị thông báo lỗi “Mật khẩu hiện tại nhập không chính xác. Xin hãy thử lại.” |
|
Bảng B.50 - Các ca kiểm thử đối với kiểm thử trường hợp sử dụng tiếp
Tên trường hợp sử dụng |
Thay đổi mật khẩu |
||
Tên ca kiểm thử |
Luồng thay thế - Mật khẩu mới ít hơn 8 ký tự |
||
Mô tả |
Người dùng muốn thay đổi mật khẩu nhưng họ nhập mật khẩu ít hơn 8 ký tự |
||
Tác nhân |
Người dùng |
||
Hạng mục bao phủ kiểm thử |
TCOND3 |
||
Các bước kiểm thử trường hợp sử dụng |
1, 2, 3, 4.1, 4.2, 4.3 |
||
Điều kiện tiên quyết |
Người dùng đã đăng nhập được vào hệ thống |
||
|
Các bước thực hiện |
Kết quả mong đợi |
|
1 |
Người dùng nhấn nút Change Password |
Hệ thống sẽ hiển thị màn hình Change Password |
|
2 |
Người dùng nhập mật khẩu hiện tại không chính xác. |
Mật khẩu hiện tại được hiển thị bằng các dấu sao (*) |
|
3 |
Người dùng nhập mật khẩu mới ít hơn 8 ký tự |
Mật khẩu mới được hiển thị bằng các dấu sao (*) |
|
4 |
Người dùng nhấn nút OK |
Hệ thống sẽ hiển thị thông báo lỗi “Mật khẩu mới phải có độ dài tối thiểu là 8 ký tự. Xin hãy thử lại.” |
|
Bảng B.51 - Các ca kiểm thử đối với kiểm thử trường hợp sử dụng tiếp
Tên trường hợp sử dụng |
Thay đổi mật khẩu |
||
Tên ca kiểm thử |
Luồng thay thế - Mật khẩu mới tương tự như mật khẩu hiện tại |
||
Mô tả |
Người dùng cố gắng để thay đổi mật khẩu nhưng họ nhập mật khẩu mới giống với mật khẩu cũ |
||
Tác nhân |
Người dùng |
||
Hang mục bao phủ kiểm thử |
TCOND4 |
||
Các bước kiểm thử trường hợp sử dụng |
1, 2, 3, 5.1, 5.2, 5.3 |
||
Điều kiện tiên quyết |
Người dùng đã đăng nhập được vào hệ thống |
||
|
Các bước thực hiện |
Kết quả mong đợi |
|
1 |
Người dùng nhấn nút Change Password |
Hệ thống sẽ hiển thị màn hình Change Password |
|
2 |
Người dùng nhập mật khẩu không chính xác. |
Mật khẩu hiện tại được hiển thị bằng các dấu sao (*) |
|
3 |
Người dùng nhập mật khẩu mới giống mật khẩu hiện tại |
Mật khẩu mới được hiển thị bằng các dấu sao (*) |
|
4 |
Người dùng nhấn nút OK |
Hệ thống sẽ hiển thị thông báo lỗi “Mật khẩu mới không được giống mật khẩu hiện tại. Xin hãy thử lại.” |
|
Bảng B.52 - Các ca kiểm thử đối với kiểm thử trường hợp sử dụng tiếp
Tên trường hợp sử dụng |
Thay đổi mật khẩu |
||
Tên ca kiểm thử |
Luồng thay thế - Mật khẩu mới không phù hợp |
||
Mô tả |
Người dùng cố gắng để thay đổi mật khẩu nhưng mật khẩu mới không phù hợp |
||
Tác nhân |
Người dùng |
||
Hạng mục bao phủ kiểm thử |
TCOND5 |
||
Các bước kiểm thử trường hợp sử dụng |
1, 2, 3, 4, 6.1, 6.2, 6.3 |
||
Điều kiện tiên quyết |
Người dùng đã đăng nhập được vào hệ thống |
||
|
Các bước thực hiện |
Kết quả mong đợi |
|
1 |
Người dùng nhấn nút Change Password |
Hệ thống sẽ hiển thị màn hình Change Password |
|
2 |
Người dùng nhập mật khẩu hiện tại không chính xác |
Mật khẩu hiện tại được hiển thị bằng các dấu sao (*) |
|
3 |
Người dùng nhập chính xác mật khẩu mới |
Mật khẩu mới được hiển thị bằng các dấu sao (*) |
|
4 |
Người dùng nhập lại mật khẩu mới không phù hợp với mật khẩu mới đã nhập ở bước 3 |
Mật khẩu nhập lại được hiển thị bằng các dấu sao (*) |
|
5 |
Người dùng nhấn nút OK |
Hệ thống sẽ hiển thị thông báo lỗi “Mật khẩu mới không phù hợp. Xin hãy thử lại.” |
|
B.2.9.3.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Các ca kiểm thử ở trên có thể được nhóm lại thành hai bộ kiểm thử dưới đây, một bộ bao phủ kịch bản tiêu biểu và một bộ bao phủ các kịch bản thay thế.
TS1: Bao gồm ca kiểm thử 1.
TS2: Bao gồm các ca kiểm thử 2, 3, 4, 5.
B.2.9.3.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Chỉ cần đến một thủ tục kiểm thử dưới đây:
TP1: Bao phủ các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử. TP2: bao phủ các ca kiểm thử trong bộ kiểm thử TS2, theo thứ tự quy định trong bộ kiểm thử.
B.2.9.3.9 Độ bao phủ kiểm thử trường hợp sử dụng
Sử dụng công thức tính độ bao phủ kiểm thử kịch bản đã nêu trong Điều 6.2.9 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
B.2.10.1 Giới thiệu
Mục đích của kiểm thử ngẫu nhiên là xây dựng một bộ các ca kiểm thử mà bao phủ các tham số đầu vào của một hạng mục kiểm thử sử dụng các giá trị được lựa chọn theo một phân bố đầu vào. Kỹ thuật này không đòi hỏi phải phân vùng miền đầu vào các hạng mục kiểm thử, chỉ đơn giản đòi hỏi các giá trị đầu vào được chọn từ miền đầu vào ngẫu nhiên này.
B.2.10.2 Đặc tả
Hãy xem xét một hạng mục kiểm thử chuyển đổi trục tọa độ với cơ sở kiểm thử sau đây:
Thành phần sẽ chuyển đổi tọa độ Đề-các (x, y) của các vị trí trên màn hình thành các giá trị phân cực tương đương (r, H) bằng phương trình: và cos H = x / r. Gốc của trục tọa độ Đề-các và cực của các tọa độ cực sẽ là tâm của màn hình và trục x được coi là đường kẻ đầu tiên cho các tọa độ cực quay ngược chiều kim đồng hồ. Tất cả các đầu vào và đầu ra sẽ được biểu diễn như các số điểm cố định bao gồm cả phạm vi và độ chính xác. Các đầu vào và đầu ra sẽ là:
Các đầu vào:
x nằm trong khoảng từ -320 đến +320, với các bước tăng là 1/26
y nằm trong khoảng từ -240 đến +240, với các bước tăng là 1/27
Các đầu ra:
r nằm trong khoảng từ 0 đến 400, với các bước tăng là 1/26
H nằm trong khoảng từ 0 đến ((2*π)-1/26), với các bước tăng là 1/26
B.2.10.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được xác định trong cơ sở kiểm thử, chỉ cần phải xác định một tập tính năng, đó là:
FS1: Hàm chuyển đổi tọa độ
B.2.10.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Các điều kiện kiểm thử trong kiểm thử ngẫu nhiên là các miền của tất cả các đầu vào có thể mà từ đó có thể chọn được các giá trị đầu vào kiểm thử cho từng tham số đầu vào. Các điều kiện kiểm thử đó là:
TCOND1: x - nằm trong khoảng từ -320 đến +320, với các bước tăng là 1/26 (đối với FS1)
TCOND2: y - nằm trong khoảng từ -240 đến +240, với các bước tăng là 1/27 (đối với FS1)
B.2.10.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Không có hạng mục bao phủ kiểm thử được xác định từ kiểm thử ngẫu nhiên.
B.2.10.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử có thể được xây dựng bằng cách lựa chọn phân bố đầu vào và sau đó áp dụng phân bố đầu vào đó cho từng điều kiện kiểm thử và xác định kết quả mong đợi của từng ca kiểm thử (được trình bày như 'đầu ra' cho hai tham số đầu ra 'r' và 'H' trong bảng dưới đây). Vì không có thông tin về việc phân bố hoạt động của các tham số đầu vào cho các hạng mục kiểm thử trong ví dụ này nên một phân bố đều được chọn. Từ các định nghĩa chúng ta có thể thấy rằng trong bất kỳ đầu vào được lựa chọn ngẫu nhiên đối với đầu vào x có thể lấy một trong 41.024 giá trị (641 x 26), trong khi đầu vào y có thể lấy một trong các giá trị 61.568 (481 x 27). Nên cẩn thận nếu sử dụng một phân bố hoạt động mong đợi chứ không phải là một phân bố đều. Một phân bố mong đợi bỏ qua các phần của miền đầu vào có thể dẫn đến các điều kiện lỗi không mong muốn chưa được kiểm tra.
Vì từng ca kiểm thử lựa chọn một giá trị đầu vào kiểm thử ngẫu nhiên từ các điều kiện kiểm thử cho cả đầu vào x và y nên mỗi ca kiểm thử sẽ bao phủ cả hai điều kiện kiểm thử. Trong một phân bố đều, tất cả các giá trị đầu vào trong phạm vi của x và y có cùng xác suất được chọn làm đầu vào cho ca kiểm thử. Ví dụ, có thể xác định được bốn ca kiểm thử sau đây
Bảng B.53 - Các ca kiểm thử đối với Kiểm thử ngẫu nhiên
Ca kiểm thử |
1 |
2 |
3 |
4 |
Đầu vào (x) |
-126.125 |
11.015625 |
283.046875 |
-99.109375 |
Đầu vào (y) |
238.046875 |
78.03125 |
-156.054688 |
-9.0625 |
Điều kiện kiểm thử |
TCOND1 TCOND2 |
TCOND1 TCOND2 |
TCOND1 TCOND2 |
TCOND1 TCOND2 |
Đầu ra r tính toán được ( )) |
269.395305 |
78.804949 |
323.216025 |
99.522847 |
Đầu ra H tính toán được (cos H = x/r)) |
2.058024 |
1.430554 |
0.503870 |
3.050407 |
B.2.10.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Giả sử tất cả các ca kiểm thử được thực hiện thủ công và theo thứ tự mà chúng được xác định trong bảng ca kiểm thử thì chúng ta có thể xác định một bộ kiểm thử như sau:
TS1: Kiểm thử thủ công, bao gồm các ca kiểm thử 1, 2, 3, 4.
B.2.10.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì chỉ có một bộ kiểm thử để thực thi nên chỉ xác định được một thủ tục kiểm thử như sau:
TP1: Kiểm thử thủ công, bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
B.2.10.9 Độ bao phủ kiểm thử ngẫu nhiên
Như đã nêu trong Điều 6.2.10 hiện tại không có phương pháp tính độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử ngẫu nhiên.
B.2.10.10 Kiểm thử ngẫu nhiên tự động
Kiểm thử ngẫu nhiên có thể được thực hiện bằng tay hoặc tự động. Kiểm thử ngẫu nhiên rất tốn kém khi thực hiện tự động hoàn toàn vì nó có rất nhiều bài kiểm thử được thực hiện tự động mà không cần can thiệp bằng tay. Tuy nhiên, để đạt được tự động hoàn toàn thì phải:
- Tạo ra các đầu vào kiểm thử ngẫu nhiên một cách tự động:
- Tạo ra các kết quả mong muốn một cách tự động từ cơ sở kiểm thử;
- Tự động kiểm tra đầu ra kiểm thử dựa trên cơ sở kiểm thử.
Việc tạo các giá trị đầu vào kiểm thử ngẫu nhiên tự động không khó, chúng ta có thể sử dụng một bộ tạo số giả ngẫu nhiên miễn là các đầu vào của hạng mục kiểm thử được xác định rõ. Nếu các giá trị kiểm thử đầu vào được tạo ra bằng cách sử dụng bộ tạo số giả ngẫu nhiên thì những giá trị này không cần phải được ghi lại vì có thể tạo lại cùng một bộ tương tự. Việc sử dụng giá trị "hạt giống" để cung cấp cho bộ tạo số giả ngẫu nhiên là hoàn toàn bình thường và phải ghi lại giá trị này.
Tuy nhiên, việc tạo ra các đầu ra mong đợi tự động hoặc kiểm tra tự động đầu ra vẫn là vấn đề còn phải bàn nhiều. Nói chung là không thực tế để tự động tạo ra đầu ra mong đợi hoặc kiểm tra tự động đầu ra dựa vào cơ sở kiểm thử, tuy nhiên đối với các hạng mục kiểm thử thì có thể, chẳng hạn như nếu:
- Phần mềm được tạo ra độc lập đáng tin cậy thực hiện chức năng giống như các hạng mục kiểm thử có sẵn (có thể không đáp ứng được những ràng buộc như tốc độ xử lý, ngôn ngữ thực hiện, vv);
- Việc kiểm thử chỉ được xem xét xem liệu các hạng mục kiểm thử có bị sự cố hay không (vì vậy kết quả mong đợi là "không xảy ra sự cố"):
- Bản chất của đầu ra của các hạng mục kiểm thử là dễ dàng kiểm tra kết quả. Ví dụ như một hàm sắp xếp có nhiệm vụ kiểm tra xem tự động các đầu ra xem đã được sắp xếp chính xác hay chưa;
- Có thể tạo ra các đầu vào từ các đầu ra dễ dàng (sử dụng nghịch đảo của hàm hạng mục kiểm thử). Ví dụ như một hàm căn bậc hai mà ở đó chỉ đơn giản tính bình phương đầu ra sẽ tạo ra đầu vào.
Ở ví dụ trong điều B.2.10.2, hạng mục kiểm thử chuyển đổi tọa độ có thể được kiểm tra tự động bằng cách sử dụng phương pháp hàm nghịch đảo. Trong trường hợp này, rcosH = x có thể được lấy trực tiếp từ cơ sở kiểm thử cho các hạng mục kiểm thử. Theo một số phân tích thì có thể suy ra được rsinH = y. Nếu hai phương trình này thỏa mãn độ dung sai số hợp lý thì các hạng mục kiểm thử chuyển đổi tọa độ một cách chính xác.
Ngay cả khi không thể thực hiện tự động hoàn toàn kiểm thử ngẫu nhiên thì việc sử dụng nó vẫn cần phải được xem xét vì nó không tốn nhiều chi phí thiết kế các ca kiểm thử theo như yêu cầu của các kỹ thuật phi ngẫu nhiên.
Đối với các hạng mục kiểm thử có các tập đầu vào lớn hơn so với ví dụ ở điều B.2.10.2, cây SIDA - (Tách các thuộc tính đầu vào theo các ký hiệu") (Cho 1987) là một phương pháp hữu ích để tổ chức miền đầu vào cho lấy mẫu ngẫu nhiên trước thiết kế ca kiểm thử.
Hướng dẫn và ví dụ về việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc
C.1 Hướng dẫn và ví dụ về các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc
C.1.1 Tổng quan
Phụ lục này đưa ra hướng dẫn về việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên đặc tả nêu trong Điều 5.3 và tính độ bao phủ từng kỹ thuật kiểm thử dựa trên đặc tả trong Điều 6.3 bằng các ví dụ cụ thể. Mỗi ví dụ đều dựa theo các bước trong quy trình thiết kế và chuẩn bị kiểm thử được định nghĩa trong TCVN 12849-2:2020 (ISO/IEC/ IEEE 29119-2:2013). Có một số ứng dụng và ngôn ngữ lập trình được sử dụng trong các ví dụ này. Mặc dù mỗi ví dụ được áp dụng cho kỹ thuật kiểm thử dựa trên cấu trúc, nhưng trong thực tế, như đã nêu trong Điều 5.1 thì hầu hết các kỹ thuật kiểm thử được định nghĩa trong tiêu chuẩn này có thể được sử dụng thay thế cho nhau.
C.2 Các ví dụ về kỹ thuật thiết kế kiểm thử dựa trên cấu trúc
C.2.1.1 Giới thiệu
Mục đích của kiểm thử câu lệnh là đưa ra một bộ các ca kiểm thử mà bao gồm các câu lệnh của các hạng mục kiểm thử theo mức phủ kiểm thử câu lệnh đã lựa chọn. Kỹ thuật thiết kế kiểm thử dựa trên cấu trúc này được dựa trên sự phân chia các hạng mục kiểm thử thành các câu lệnh thành phần.
Có 2 câu hỏi chính cần lưu ý, đó là:
- Câu lệnh là gì?
- Câu lệnh nào có thể được thực hiện?
Nói chung, câu lệnh là một hành động nguyên tử; đó là một câu lệnh sẽ được thực hiện một cách trọn vẹn hoặc không thực hiện chút nào hết. Ví dụ:
IF a THEN b ENDIF
Trên đây có thể được coi là có nhiều hơn một câu lệnh vì b có thể được thực hiện hoặc có thể không được thực hiện tùy thuộc vào điều kiện a. Định nghĩa câu lệnh được sử dụng cho kiểm thử câu lệnh không nhất thiết phải là một câu lệnh được sử dụng trong định nghĩa của ngôn ngữ.
Người ta cho rằng các câu lệnh được liên kết với ngôn ngữ máy tính được coi là có thể thực thi được. Chẳng hạn như những mục dưới đây được coi là có thể thực thi được.
- Các phép gán;
- Các vòng lặp và những lựa chọn;
- Lời gọi hàm và lời gọi thương thức;
- Khai báo biến với khởi tạo rõ ràng;
- Phân bố biến lưu trữ trong một khối xếp.
Tuy nhiên, hầu hết việc khai báo biến có thể được coi là không thể thực thi được. Hãy xem đoạn mã sau:
Bất kỳ ca kiểm thử nào mà b ĐÚNG sẽ đạt được độ bao phủ hoàn toàn. Lưu ý rằng, độ bao phủ câu lệnh hoàn toàn có thể đạt được mà không cần thực hiện với b SAI.
C.2.1.2 Đặc tả
Hãy xem xét các hạng mục kiểm thử sau đây được viết bằng ngôn ngữ lập trình Ada, chúng được thiết kế để phân loại số nguyên dương thành số nguyên tố và số không phải là nguyên tố và chúng được thiết kế và đưa ra các thừa số nguyên tố của các số mà không phải là nguyên tố.
C.2.1.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử định nghĩa trong cơ sở kiểm thử nên chỉ có một tập tính năng được xác định, đó là:
FS1: Xác định hàm chứa các số nguyên tố và số không phải là nguyên tố.
C.2.1.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Trong kiểm thử câu lệnh, các điều kiện kiểm thử chính là những câu lệnh có thể thực hiện được trong đoạn mã nguồn. Bằng cách đánh số từng dòng mã sẽ biết được số các điều kiện kiểm thử. Ví dụ, câu lệnh 1 cho phép định nghĩa một điều kiện kiểm thử:
TCOND1: READ (Num); Câu lệnh 1 (đối với FS1)
Các điều kiện kiểm thử còn lại có thể được xác định mà không cần lặp lại mã nguồn của từng điều kiện kiểm thử mà nó liên quan đến:
TCOND2: Câu lệnh 2 (đối với FS1)
TCOND3: Câu lệnh 3 (đối với FS1)
TCOND4: Câu lệnh 4 (đối với FS1)
TCOND5: Câu lệnh 5 (đối với FS1)
TCOND6: Câu lệnh 6 (đối với FS1)
TCOND7: Câu lệnh 7 (đối với FS1)
TCOND8: Câu lệnh 10 (đối với FS1)
TCOND9: Câu lệnh 11 (đối với FS1)
TCOND10: Câu lệnh 13 (đối với FS1)
TCOND11: Câu lệnh 15 (đối với FS1)
C.2.1.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử câu lệnh, các hạng mục bao phủ kiểm thử tương tự với các điều kiện kiểm thử:
TCOVER1: Câu lệnh 1 (đối với điều kiện kiểm thử TCOND1)
TCOVER2: Câu lệnh 2 (đối với điều kiện kiểm thử TCOND2)
TCOVER3: Câu lệnh 3 (đối với điều kiện kiểm thử TCOND3)
TCOVER4: Câu lệnh 4 (đối với điều kiện kiểm thử TCOND4)
TCOVER5: Câu lệnh 5 (đối với điều kiện kiểm thử TCOND5)
TCOVER6: Câu lệnh 6 (đối với điều kiện kiểm thử TCOND6)
TCOVER7: Câu lệnh 7 (đối với điều kiện kiểm thử TCOND7)
TCOVER8: Câu lệnh 10 (đối với điều kiện kiểm thử TCOND8)
TCOVER9: Câu lệnh 11 (đối với điều kiện kiểm thử TCOND9)
TCOVER10: Câu lệnh 13 (đối với điều kiện kiểm thử TCOND13)
TCOVER11: Câu lệnh 15 (đối với điều kiện kiểm thử TCOND11)
C.2.1.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Trong kiểm thử câu lệnh, mỗi câu lệnh phải được bao phủ bởi ít nhất một ca kiểm thử. Các ca kiểm thử được xây dựng bởi các đường đi con thứ nhất trong đồ thị luồng điều khiển mà thực thi một hoặc nhiều câu lệnh thực thi mà chưa được bao phủ bởi một ca kiểm thử. Các đầu vào để thực hiện các đường đi sau đó được xác định, cùng với kết quả mong đợi. Quy trình này được lặp đi lặp lại cho đến khi đạt được mức độ bao phủ kiểm thử quy định. Trong ví dụ này, chỉ cần có một ca kiểm thử để bao phủ tất cả các câu lệnh trong đoạn mã chương trình, bởi vì có sự lặp đi lặp lại trong đoạn mã chương trình mà cho phép nó được bao phủ bởi chỉ hai giá trị đầu vào (tức là để đạt được 100% độ phủ câu lệnh).
Bảng C.1 - Các ca kiểm thử đối với kiểm thử câu lệnh
Ca kiểm thử |
Đầu vào |
Kết quả mong đợi |
Hạng mục bao phủ kiểm thử |
1 |
2 |
2 là số nguyên tố |
1, 2, 3, 4, 9, 10, 11, 12, 13, 14 |
4 |
2 là thừa số nguyên tố của 4 |
2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14 |
|
EOF |
Kết thúc chương trình là số nguyên tố |
2, 15 |
CHÚ THÍCH: Trong ví dụ này, chỉ có một ca kiểm thử, nhưng có ba bộ giá trị đầu vào riêng biệt và các kết quả mong đợi khác nhau vì có sự lặp lại trong đoạn mã chương trình.
C.2.1.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Do chỉ có một ca kiểm thử được tạo ra ở trên nên nó có thể được đặt trong một bộ kiểm thử như sau:
TS1: Ca kiểm thử 1.
C.2.1.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Chỉ có một thủ tục dưới đây:
TP1: Bao gồm các ca kiểm thử trong bộ kiểm thử TS1.
C.2.1.9 Độ bao phủ câu lệnh
Sử dụng các công thức đã nêu trong Điều 6.3.1 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử câu lệnh đạt được là 100%.
C.2.2 Kiểm thử nhánh/ kiểm thử quyết định
C.2.2.1 Giới thiệu
Độ bao phủ nhánh và bao phủ quyết định có liên quan chặt chẽ với nhau. Đối với các hạng mục kiểm thử mà có độ phủ nhánh 100% sẽ tương đương với độ phủ quyết định 100%, mặc dù thực tế có thể chỉ đạt mức độ bao phủ thấp hơn. Cả hai mức độ bao phù này sẽ được minh họa bằng một ví dụ.
C.2.2.2 Đặc tả
Thành phần sẽ xác định vị trí của một từ trong một bảng có các từ được sắp xếp theo thứ tự abc. Ngoài các từ và bảng ra, các thành phần cũng sẽ được đi qua một số từ trong bảng mà tìm kiếm được. Các thành phần sẽ quay tại vị trí các từ trong bảng (bắt đầu từ số 0) nếu nó được tìm thấy, nếu không nó sẽ quay trở lại "-1".
Các mã tương ứng được Kernighan và Ritchie viết năm 1998. Có Ba quyết định được đánh dấu đậm ở đoạn mã dưới đây:
C.2.2.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được định nghĩa trong cơ sở kiểm thử nên chỉ có một tập tính năng cần thiết được định nghĩa:
FS1: Hàm binsearch
C.2.2.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
C.2.2.4.1 Các tùy chọn khi xác định các điều kiện kiểm thử
Việc xác định các điều kiện kiểm thử cho kiểm thử nhánh/kiểm thử quyết định có thể được minh họa bằng việc tạo một đồ thị luồng điều khiển của chương trình. Bước đầu tiên để xây dựng một đồ thị luồng điều khiển là phân chia nó thành các khối cơ bản. Đó là những chỉ dẫn không có các nhánh trong các khối (ngoại trừ những chỉ dẫn đầu tiên) và không có các nhánh bên ngoài khối (ngoại trừ những chỉ lệnh cuối cùng). Các câu lệnh trong mỗi khối cơ bản sẽ được thực thi cùng nhau hoặc không được thực thi gì cả. Chương trình trên có các khối cơ bản sau đây:
Đồ thị luồng điều khiển có thể được tạo ra bằng cách tạo từng khối cơ bản bằng một nút và vẽ một vòng cung cho mỗi lần chuyển đổi luồng điều khiển từ một khối cơ bản này đến khối cơ bản khác, có thể có những chuyển tiếp luồng điều khiển sau:
B1 → B2 B3 → B4 B5 → B6 B6 → B8
B2 → B3 B3 → B5 B5 → B7 B8 → B2
B2 → B9
Kết quả là chúng ta có được đồ thị luồng điều khiển được trình bày trong hình C.1. Đồ thị này có một điểm bắt đầu là B1 và hai điểm kết thúc là B7 và B9.
Hình C.1 - Đồ thị luồng điều khiển đối với hàm binsearch
Đồ thị luồng điều khiển ở trên sẽ không nhất thiết phải được vẽ bằng tay, có thể sử dụng một công cụ để thể hiện các quyết định/nhánh đã được thực hiện.
Các điều kiện kiểm thử đối với phủ nhánh sẽ khác so với các điều kiện kiểm thử đối với phủ quyết định. Điều này được thể hiện ở các bước tùy chọn 2a và 2b dưới đây:
C.2.2.4.2 Tùy chọn 2a: Xác định các điều kiện kiểm thử đối với bao phủ nhánh (TD2)
Đối với bao phủ nhánh, các điều kiện kiểm thử (BRANCH-TCOND) là các nhánh (các cung) được đại diện bởi các mũi tên trong đồ thị luồng điều khiển ở Hình C.1. Do đó có tổng cộng mười điều kiện kiểm thử, đó là:
BRANCH-TCOND1: B1 → B2 (đối với tập tính năng FS1)
BRANCH-TCOND2: B2 → B3 (đối với tập tính năng FS1)
BRANCH-TCOND3: B2 → B9 (đối với tập tính năng FS1)
BRANCH-TCOND4: B3 → B4 (đối với tập tính năng FS1)
BRANCH-TCOND5: B3 → B5 (đối với tập tính năng FS1)
BRANCH-TCOND6: B4 → B8 (đối với tập tính năng FS1)
BRANCH-TCOND7: B5 → B6 (đối với tập tính năng FS1)
BRANCH-TCOND8: B5 → B7 (đối với tập tính năng FS1)
BRANCH-TCOND9: B6 → B8 (đối với tập tính năng FS1)
BRANCH-TCOND10: B8 → B2 (đối với tập tính năng FS1)
C.2.2.4.3 Tùy chọn 2b: Xác định các điều kiện kiểm thử đối với bao phủ quyết định (TD2)
Đối với bao phủ quyết định, các điều kiện kiểm thử (DECISION-TCOND) là các quyết định đại diện là các nút trong đồ thị luồng điều khiển trong Hình C.1 mà có nhiều hơn một mũi tên ra. Trong ví dụ này, có 3 điều kiện kiểm thử, đó là:
DECISION-TCOND1: B2 (đối với tập tính năng FS1)
DECISION-TCOND2: B3 (đối với tập tính năng FS1)
DECISION-TCOND3: B5 (đối với tập tính năng FS1)
C.2.2.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
C.2.2.5.1 Những tùy chọn khi xác định các hạng mục bao phủ kiểm thử
Các hạng mục bao phủ kiểm thử đối với bao phủ nhánh sẽ khác với các hạng mục kiểm thử đối với bao phủ quyết định. Điều này được thể hiện ở các tùy chọn 3a và 3b dưới đây.
C.2.2.5.2 Tùy chọn 3a: Xác định các hạng mục bao phủ kiểm thử đối với bao phủ nhánh (TD3)
Đối với bao phủ nhánh, các hạng mục bao phủ kiểm thử là các nhánh trong đồ thị luồng điều khiển, chúng tương tự như các điều kiện kiểm thử. Trong ví dụ này có mười hạng mục kiểm thử đối với bao phủ nhánh dưới đây:
BRANCH-TCOVER1: B1 → B2 (đối với điều kiện kiểm thử BRANCH-TCOND1)
BRANCH-TCOVER2: B2 → B3 (đối với điều kiện kiểm thử BRANCH-TCOND2)
BRANCH-TCOVER3: B2 → B9 (đối với điều kiện kiểm thử BRANCH-TCOND3)
BRANCH-TCOVER4: B3 → B4 (đối với điều kiện kiểm thử BRANCH-TCOND4)
BRANCH-TCOVER5: B3 → B5 (đối với điều kiện kiểm thử BRANCH-TCOND5)
BRANCH-TCOVER6: B4 → B8 (đối với điều kiện kiểm thử BRANCH-TCOND6)
BRANCH-TCOVER7: B5 → B6 (đối với điều kiện kiểm thử BRANCH-TCOND7)
BRANCH-TCOVER8: B5 → B7 (đối với điều kiện kiểm thử BRANCH-TCOND8)
BRANCH-TCOVER9: B6 → B8 (đối với điều kiện kiểm thử BRANCH-TCOND9)
BRANCH-TCOVER10: B8 → B2 (đối với điều kiện kiểm thử BRANCH-TCOND10)
C.2.2.5.3 Tùy chọn 3b: Xác định các hạng mục bao phủ kiểm thử đối với phủ quyết định (TD3)
Đối với bao phủ quyết định, các kết quả (tức là đúng, sai) của mỗi quyết định là những hạng mục bao phủ kiểm thử. Trong ví dụ này, mỗi quyết định có hai kết quả tương ứng với các giá trị đúng và sai của các quyết định; do đó có sáu hạng mục bao phủ kiểm thử đối với phủ quyết định dưới đây:
DECISION-TCOVER1: B2 = đúng (đối với DECISION-TCOND1)
DECISION-TCOVER2: B2 = sai (đối với DECISION-TCOND1)
DECISION-TCOVER3: B3 = đúng (đối với DECISION-TCOND2)
DECISION-TCOVER4: B3 = sai (đối với DECISION-TCOND2)
DECISION-TCOVER5: B5 = đúng (đối với DECISION-TCOND3)
DECISION-TCOVER6: B5 = sai (đối với DECISION-TCOND3)
Thường thì một quyết định có nhiều hơn hai kết quả, sẽ tăng số lượng các hạng mục bao phủ kiểm thử mà cần được tạo ra.
C.2.2.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử đối với kiểm thử nhánh được tạo ra bằng cách xác định các đường đi con của luồng điều khiển mà đến được một hoặc nhiều nhánh (các hạng mục bao phủ kiểm thử) mà chưa được thực thi trong quá trình kiểm thử, xác định đầu vào mà thực hiện những đường đi con đó, xác định kết quả mong đợi của mỗi kiểm thử, lặp đi lặp lại cho đến khi đạt được mức độ bao phủ kiểm thử quy định.
Tương tự, các ca kiểm thử đối với kiểm thử quyết định được tạo ra bằng cách xác định đường đi con của luồng điều khiển mà đến được một hoặc nhiều quyết định chưa được thực thi trong quá trình kiểm thử, xác định các đầu vào và đầu ra mong đợi cho mỗi bài kiểm thử. Đối với cả độ bao phủ nhánh và bao phủ quyết định, bất kỳ kiểm thử riêng biệt nào của hạng mục kiểm thử sẽ thực hiện một đường đi con và do đó khả năng sẽ có nhiều quyết định và nhiều nhánh.
Hãy xem xét một ca kiểm thử mà thực hiện đường đi con B1 → B2 → B9. Trường hợp này xảy ra khi n = 0, có nghĩa là khi bảng được tìm kiếm không có điểm bắt đầu. Đường đi con này thực thi một quyết định (B2 → B9) và do đó đạt được độ bao phủ là 1/6 = 16,7%. Các đường đi thực hiện 2 trong tổng số 10 nhánh, sẽ đạt độ bao phủ 20% (không giống như độ phủ cho các quyết định).
Hãy xem xét ca kiểm thử thực thi đường đi con sau:
B1→B2→B3→B4→B8→B2→B3→B5→B6→B8→B2→B3→B5→B7
Đường đi này xuất hiện khi tìm kiếm lần đầu tiên cho thấy điểm bắt đầu nằm trong nửa đầu tiên của bảng, tiếp đó là nửa thứ hai của bảng (tức là, phần tư thứ 2) và sau đó tìm được điểm bắt đầu. Lưu ý rằng hai ca kiểm thử đạt được 100% độ bao phủ quyết định và độ bao phủ nhánh.
Các ca kiểm thử đối với hàm binsearch được trình bày trong bảng dưới đây
Bảng C.2 - Các ca kiểm thử đối với hàm binsearch
Ca kiểm thử |
Các đầu vào |
Các quyết định được thực hiện (chữ in hoa được gạch chân) |
Hạng mục bao phủ kiểm thử |
Kết quả mong đợi |
||
Word |
Tab |
n |
||||
1 |
chas |
Alf Bert Chas Dick Eddy Fred Geoff |
7 |
B1→B2→B3→B4→B8→ B2→B3→B5→B6→B8→ B2→B3→B5→B7 |
BRANCH-TCOVER 1, 2, 4, 5, 6, 7, 8, 9, 10 và DECISION-TCOVER 1, 3, 4, 5, 6 |
2 |
2 |
chas |
‘empty table’ |
0 |
B1→B2→B9 |
BRANCH-TCOVER 1, 3 và DECISION-TCOVER 2 |
-1 |
Cả độ bao phủ nhánh và bao phủ quyết định thường được xác định bằng công cụ phần mềm.
C.2.2.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Vì chỉ tạo được hai ca kiểm thử như bảng trên nên có thể kết hợp chúng vào một bộ kiểm thử.
TS1: Các ca kiểm thử 1 và 2.
C.2.2.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì chỉ có hai ca kiểm thử và một bộ kiểm thử nên chỉ có thể xác định được một thủ tục kiểm thử dưới đây:
TP1: Bao phủ tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
C.2.2.9 Độ bao phủ kiểm thử nhánh
Sử dụng các công thức đã nêu trong Điều 6.3.2 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử nhánh đạt được là 100%.
C.2.2.10 Độ bao phủ kiểm thử quyết định
Sử dụng các công thức đã nêu trong Điều 6.3.3 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử quyết định đạt được là 100%.
C.2.3.1 Giới thiệu
Kiểm thử điều kiện nhánh, kiểm thử kết hợp điều kiện nhánh và kiểm thử bao phủ quyết định điều kiện thay đổi có mối quan hệ mật thiết với nhau. Mục đích của ba kỹ thuật thiết kế kiểm thử này là xây dựng một bộ các ca kiểm thử bao phủ các điều kiện trong các quyết định của hạng mục kiểm thử dựa theo một mức bao phủ đã lựa chọn. Để thuận tiện, các phương pháp thiết kế ca kiểm thử và các phương pháp tính độ bao phủ kiểm thử được minh họa bằng một ví dụ dưới đây.
C.2.3.2 Đặc tả
Hãy xem xét đoạn mã sau đây:
Các điều kiện Boolean trong điều kiện quyết định là A, B và C. Bản thân các điều kiện này có thể bao gồm các biểu thức phức tạp liên quan đến các toán tử quan hệ. Ví dụ, điều kiện Boolean A có thể là một biểu thức X ≥ Y. Tuy nhiên, để rõ ràng hơn, các ví dụ sau đây coi A, B và C là các điều kiện Boolean đơn giản.
C.2.3.3 Bước 1: Xác định các tập tính năng (TD1)
Do ví dụ về ba kỹ thuật thiết kế kiểm thử được dựa trên các hạng mục kiểm thử tương tự (đoạn mã ở trên) nên có thể xác định được một tập tính năng cho cả ba kỹ thuật:
FS1: Đoạn mã điều kiện
C.2.3.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Trong ba kỹ thuật thiết kế kiểm thử, mỗi quyết định trong đồ thị luồng điều khiển là một điều kiện kiểm thử. Trong ví dụ này, có một quyết định nên có một điều kiện kiểm thử, đó là:
TCOND1: A or (B and C) (đối với tập tính năng FS1)
Điều kiện kiểm thử này được áp dụng cho kiểm thử điều kiện nhánh, kiểm thử kết hợp điều kiện nhánh và kiểm thử bao phủ quyết định điều kiện thay đổi.
C.2.3.5 Kiểm thử điều kiện nhánh
C.2.3.5.1 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Kiểm thử điều kiện nhánh kiểm thử các điều kiện riêng biệt trong các quyết định đa điều kiện, với mục đích là từng điều kiện riêng biệt và từng quyết định sẽ nhận cả giá trị ĐÚNG và SAI. Các hạng mục bao phủ kiểm thử là những giá trị Boolean (đúng/sai) của các điều kiện trong các quyết định. Trong ví dụ này, kỹ thuật này sẽ đòi hỏi điều kiện Boolean A được nhận cả giá trị ĐÚNG và SAI, điều kiện Boolean B nhận cả giá trị ĐÚNG và SAI và điều kiện Boolean C cũng nhận cả giá trị ĐÚNG và SAI. Do đó, các hạng mục bao phủ kiểm thử cho kỹ thuật này là:
TCOVER1: |
A = ĐÚNG |
(đối với TCOND1) |
|
TCOVER2: |
A = SAI |
(đối với TCOND1) |
|
TCOVER3: |
B = ĐÚNG |
(đối với TCOND1) |
|
TCOVER4: |
B = SAI |
(đối với TCOND1) |
|
TCOVER5: |
C = ĐÚNG |
(đối với TCOND1) |
|
TCOVER6: |
C = SAI |
(đối với TCOND1) |
|
TCOVER7: |
A or (B and C) = ĐÚNG |
(đối với TCOND1) |
|
TCOVER8: |
A or (B and C) = SAI |
(đối với TCOND1) |
|
C.2.3.5.2 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử bao phủ điều kiện nhánh được ra ra bằng cách xác định các đường đi con của luồng điều khiển mà đến được một hoặc nhiều hạng mục bao phủ kiểm thử chưa được thực thi trong quá trình kiểm thử, xác định các đầu vào sẽ thực thi những đường đi con này và xác định kết quả mong đợi của quá trình kiểm thử, lặp đi lặp lại cho đến khi đạt được độ bao phủ yêu cầu. Trong ví dụ này, có thể tạo được một bộ các đầu vào kiểm thử sau (chú ý các bộ đầu vào kiểm thử khác cũng sẽ đạt được độ bao phủ điều kiện nhánh quy định):
Bảng C.3 - Các ca kiểm thử đối với kiểm thử điều kiện nhánh
Ca kiểm thử |
A |
B |
C |
A or (B and C) |
Các hạng mục bao phủ kiểm thử |
1 |
SAI |
SAI |
SAI |
SAI |
TCOVER 2, 4, 6 |
2 |
ĐÚNG |
ĐÚNG |
ĐÚNG |
ĐÚNG |
TCOVER 1, 3, 5 |
CHÚ THÍCH: Các ca kiểm thử trong bảng trên chưa “đầy đủ” vì chúng không bao gồm các kết quả mong đợi.
Bao phủ điều kiện nhánh thường có thể đạt được chỉ với hai ca kiểm thử, không kể số lượng các điều kiện Boolean thực tế bao gồm toàn bộ điều kiện.
C.2.3.5.3 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Vì chỉ có hai ca kiểm thử được tạo ra ở bảng trên nên có thể kết hợp chúng vào một bộ kiểm thử sau.
TS1: Các ca kiểm thử 1 và 2.
C.2.3.5.4 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì chỉ có hai ca kiểm thử và một bộ kiểm thử nên chỉ có thể xác định được một thủ tục kiểm thử dưới đây:
TP1: Bao gồm tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
C.2.3.5.5 Độ bao phủ kiểm thử điều kiện nhánh
Sử dụng các công thức đã nêu trong Điều 6.3.4 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử điều kiện nhánh đạt được là 100%.
C.2.3.6 Kiểm thử kết hợp điều kiện nhánh
C.2.3.6.1 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử kết hợp điều kiện nhánh, các hạng mục bao phủ kiểm thử là sự kết hợp của các giá trị Boolean của các điều kiện trong các quyết định. Trong ví dụ này, kỹ thuật này sẽ đòi hỏi tất cả các kết hợp của các điều kiện Boolean A, B và C. Do đó, các hạng mục bao phủ kiểm thử cho kỹ thuật này bao gồm:
TCOVER1: |
A = SAI, |
B = SAI, |
C = SAI |
(đối với TCOND1) |
TCOVER2: |
A = ĐÚNG, |
B = SAI, |
C = SAI |
(đối với TCOND1) |
TCOVER3: |
A = SAI, |
B = ĐÚNG, |
C = SAI |
(đối với TCOND1) |
TCOVER4: |
A = ĐÚNG, |
B = ĐÚNG, |
C = SAI |
(đối với TCOND1) |
TCOVER5: |
A = SAI, |
B = SAI, |
C = ĐÚNG |
(đối với TCOND1) |
TCOVER6: |
A = ĐÚNG, |
B = SAI, |
C = ĐÚNG |
(đối với TCOND1) |
TCOVER7: |
A = SAI, |
B = ĐÚNG, |
C = ĐÚNG |
(đối với TCOND1) |
TCOVER8: |
A = ĐÚNG, |
B = ĐÚNG, |
C = ĐÚNG |
(đối với TCOND1) |
C.2.3.6.2 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng bằng cách xác các đường đi con của luồng điều khiển mà đến được một hoặc nhiều hạng mục bao phủ kiểm thử chưa được thực thi trong quá trình kiểm thử, xác định các đầu vào mà sẽ thực thi những đường đi con và xác định kết quả mong đợi của quá trình kiểm thử, lặp đi lặp lại cho đến khi đạt được độ bao phủ yêu cầu. Trong ví dụ này, có thể đạt được bằng cách xây dựng các ca kiểm thử sau:
Bảng C.4 - Các ca kiểm thử đối với kiểm thử kết hợp điều nhánh
Ca kiểm thử |
A |
B |
C |
Các hạng mục bao phủ kiểm thử |
1 |
SAI |
SAI |
SAI |
TCOVER1 |
2 |
ĐÚNG |
SAI |
SAI |
TCOVER2 |
3 |
SAI |
ĐÚNG |
SAI |
TCOVER3 |
4 |
ĐÚNG |
ĐÚNG |
SAI |
TCOVER4 |
5 |
SAI |
SAI |
ĐÚNG |
TCOVER5 |
6 |
ĐÚNG |
SAI |
ĐÚNG |
TCOVER6 |
7 |
ALSE |
ĐÚNG |
ĐÚNG |
TCOVER7 |
8 |
ĐÚNG |
ĐÚNG |
ĐÚNG |
TCOVER8 |
CHÚ THÍCH: Các ca kiểm thử trong bảng trên không "đầy đủ" vì chúng không bao gồm các kết quả mong đợi.
Độ bao phủ kết hợp điều kiện nhánh rất lớn, đòi hỏi 2n ca kiểm thử để đạt được độ phủ 100% của một điều kiện có chứa n điều kiện Boolean. Đối với các điều kiện phức tạp thì không thể đạt được độ bao phủ này.
C.2.3.6.3 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Tất cả các ca kiểm thử đối với kỹ thuật này được tạo ra ở bảng trên được kết hợp trong một bộ kiểm thử dưới đây:
TS1: Các ca kiểm thử 1, 2, 3, 4, 5, 6, 7, 8.
C.2.3.6.4 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì chỉ có một bộ kiểm thử TS1, chỉ xác định được một thủ tục kiểm thử tương ứng như sau đây:
TP1: Bao gồm tất cả các ca kiểm thử trong bộ kiểm thử TS1, thực hiện theo trình tự quy định trong bộ kiểm thử.
C.2.3.6.5 Độ bao phủ kiểm thử kết hợp điều kiện nhánh
Sử dụng các công thức đã nêu trong Điều 6.3.5 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử kết hợp điều kiện nhánh đạt được là 100%.
C.2.3.7 Kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC)
Kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC) cần các ca kiểm thử ít hơn độ bao phủ kết hợp điều kiện nhanh. Loại kiểm thử này được sử dụng rộng rãi trong việc phát triển các phần niềm hệ thống điện tử, như quy định trong tiêu chuẩn RTCA / DO-178C. Kiểm thử MCDC đòi hỏi các ca kiểm thử chứng minh rằng mỗi điều kiện Boolean (A, B and C) có thể ảnh hưởng độc lập đến kết quả của quyết định. Nó ít hơn tổng số của tất cả các kết hợp (như quy định bởi độ bao phủ kết hợp điều kiện).
C.2.3.7.1 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC), các hạng mục bao phủ kiểm thử là các kết hợp khác nhau của các giá trị Boolean riêng biệt của điều kiện trong các quyết định mà cho phép một điều kiện Boolean duy nhất ảnh hưởng độc lập đến kết quả.
Đối với điều kiện quyết định [A or (B and C)], sẽ tạo ra 2 hạng mục bao phủ kiểm thử, mà sự thay đổi đổi trạng thái của A sẽ làm thay đổi kết quả, nhưng B và C giữ nguyên, tức là điều kiện A có thể ảnh hưởng độc lập đến kết quả của điều kiện này như sau:
TCOVER1: A = SAI, B = SAI, C = ĐÚNG Kết quả = SAI (đối với TCOND1)
TCOVER2: A = ĐÚNG, B = SAI, C = ĐÚNG Kết quả = ĐÚNG (đối với TCOND1)
Tương tự đối với B, cần phải có 2 ca kiểm thử mà cho thấy rằng B có thể ảnh hưởng độc lập đến kết quả, A và C giữ nguyên:
TCOVER3: A = SAI, B = SAI, C = ĐÚNG Kết quả = SAI (đối với TCOND1)
TCOVER4: A = SAI, B = ĐÚNG, C = ĐÚNG Kết quả = ĐÚNG (đối với TCOND1)
Cuối cùng đối với C, cần phải có 2 hợp kiểm thử mà cho thấy rằng C có thể ảnh hưởng độc lập đến kết quả, A và B giữ nguyên:
TCOVER5: A = SAI, B = ĐÚNG, C = SAI Kết quả = SAI (đối với TCOND1)
TCOVER6: A = SAI, B = ĐÚNG, C = ĐÚNG Kết quả = ĐÚNG (đối với TCOND1)
Sau khi tạo ra các cặp điều kiện kiểm thử cho từng điều kiện quyết định, chúng ta có thể thấy rằng TCOVER1 và TCOVER3, TCOVER4 và TCOVER6 giống nhau. Do đó, các điều kiện kiểm thử trùng lặp TCOVER3 và TCOVER6 sẽ không được sử dụng làm cơ sở để xây dựng các ca kiểm thử trong các bước tiếp theo.
C.2.3.7.2 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng bằng cách xác định đường đi con của luồng điều khiển mà đến được một hoặc nhiều hạng hạng mục bao phủ kiểm thử chưa được thực hiện trong quá trình kiểm thử, xác định các đầu vào mà sẽ thực hiện những đường đi đó và kết quả mong đợi của quá trình kiểm thử và lặp đi lặp lại cho đến khi đạt được độ bao phủ quy định. Trong ví dụ này, có thể đạt được độ bao phủ với một bộ các ca kiểm thử dưới đây:
CHÚ THÍCH: Các ca kiểm thử nêu trong bảng dưới đây không "đầy đủ" vì nó không bao gồm kết quả mong đợi.
Bảng C.5 - Các ca kiểm thử
Ca kiểm thử |
A |
B |
C |
Kết quả mong đợi |
Hạng mục bao phủ kiểm thử |
1 |
SAI |
SAI |
ĐÚNG |
SAI |
TCOVER1, TCOVER3 |
2 |
ĐÚNG |
SAI |
ĐÚNG |
ĐÚNG |
TCOVER2 |
3 |
SAI |
ĐÚNG |
ĐÚNG |
ĐÚNG |
TCOVER4, TCOVER6 |
4 |
SAI |
ĐÚNG |
SAI |
SAI |
TCOVER5 |
Tóm lại:
- Điều kiện A được chứng tỏ có ảnh hưởng độc lập đến kết quả của điều kiện quyết định của ca kiểm thử 1 và 2;
- Điều kiện B được chứng tỏ có ảnh hưởng độc lập đến kết quả của điều kiện quyết định của ca kiểm thử 1 và 3;
- Điều kiện C được chứng tỏ có ảnh hưởng độc lập đến kết quả của điều kiện quyết định của ca kiểm thử 3 và 4.
Lưu ý rằng có thể có giải pháp thay thế để đạt được MCDC. Ví dụ, A có thể được chứng tỏ có ảnh hưởng độc lập đến kết quả của điều kiện của hai ca kiểm thử sau đây.
Bảng C.6 - Các ca kiểm thử MCDC
Ca kiểm thử |
A |
B |
C |
Kết quả |
X |
SAI |
ĐÚNG |
SAI |
SAI |
Y |
ĐÚNG |
ĐÚNG |
SAI |
ĐÚNG |
Ca kiểm thử X giống ca kiểm thử 4 ở trên nhưng ca kiểm thử Y là một ca kiểm thử mà chưa được sử dụng trước đó. Tuy nhiên, vì đã đạt được độ bao phủ MCDC nên ca kiểm thử Y là không cần thiết cho mục đích tính độ bao phủ.
Để đạt được 100% độ phủ quyết định điều kiện thay đổi đòi hỏi tối thiểu phải có n+1 ca kiểm thử và tối đa 2n ca kiểm thử, trong đó n là số điều kiện Boolean trong điều kiện quyết định. Ngược lại, đối với độ bao phủ kết hợp điều kiện nhánh đòi hỏi phải có 2n ca kiểm thử. Do đó MCDC là một thỏa hiệp có có rủi ro thấp trong thực tế với độ bao phủ kết hợp điều kiện nhánh trong đó các biểu thức điều kiện liên quan đến nhiều hơn một vài điều kiện Boolean.
C.2.3.7.3 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Giả sử tất cả các ca kiểm thử được xây dựng trong Bảng C.5 cho kỹ thuật này được kết hợp vào các bộ kiểm thử, như sau:
TS1: Các ca kiểm thử 1, 2, 3, 4.
C.2.3.7.4 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì chỉ có một bộ kiểm thử, chỉ xác định được một thủ tục kiểm thử tương ứng như sau:
TP1: Bao gồm tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
C.2.3.7.5 Độ bao phủ kiểm thử bao phủ quyết định điều kiện thay đổi
Sử dụng các công thức đã nêu trong Điều 6.3.6 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC) đạt được là 100%.
C.2.3.8 Các biểu thức Boolean khác
Một nhược điểm của ba kỹ thuật thiết kế kiểm thử này và các phương pháp tính độ bao phủ kiểm thử của các kỹ thuật này là chúng dễ bị ảnh hưởng bởi sự bố trí của các biểu thức Boolean khi các quyết định điều khiển được đặt ở bên ngoài các điều kiện quyết định thực tế. Ví dụ:
Để chống lại điểm yếu này, việc thay đổi ba kỹ thuật thiết kế kiểm thử và các phương pháp tính độ bao phủ là thiết kế các bài kiểm thử cho tất cả các biểu thức Boolean, chứ không chỉ những biểu thức được sử dụng trực tiếp trong các quyết định luồng điều khiển.
C.2.3.9 Các biểu thức tối ưu
Đối với một số ngôn ngữ lập trình và các trình biên dịch "ngắn mạch", việc đánh giá của các toán tử lô-gic thực hiện bằng cách bỏ qua tất cả thành phần của một biểu thức mà không có ảnh hưởng trực tiếp đến kết quả của biểu thức đó.
Ví dụ, ngôn ngữ lập trình C và C ++ luôn ngắn mạch các toán từ "and" (&&) và "or" (||), ngôn ngữ lập trình Ada cung cấp các toán ngắn mạch đặc biệt and then và or else. Với những ví dụ này, khi có thể xác định được kết quả của một toán tử Boolean từ các điều kiện đầu tiên thì các điều kiện thứ hai sẽ không được đánh giá.
Kết quả là sẽ không thể hiển thị độ bao phủ một giá trị của điều kiện thứ hai. Đối với một toán tử ngắn mạch "and", các kết hợp khả thi là Đúng:Đúng, Đúng:Sai và Sai:X, trong đó X chưa biết. Đối với một toán tử ngắn mạch "or", các kết hợp khả thi là Sai:Sai, Sai:Đúng và Đúng:X
Các ngôn ngữ và trình biên dịch khác có thể ngắn mạch việc đánh giá của các toán tử lô-gic theo bất kỳ thứ tự nào. Trong trường hợp này, kết hợp khả thi không được biết đến. Mức độ tối ưu hóa ngắn mạch của các toán tử Boolean có thể phụ thuộc vào các switches biên dịch hoặc có thể là ngoài tầm kiểm soát của người dùng.
Các dạng kiểm soát ngắn mạch không gây trở ngại đến độ bao phủ điều kiện nhánh hoặc độ bao phủ quyết định điều kiện thay đổi, nhưng chúng gây cản trở đối với việc tính độ bao phủ kết hợp điều kiện nhánh. Có những trường hợp có thể thiết kế được các ca kiểm thử mà đạt 100% độ bao phủ (trên lý thuyết), nhưng thực tế không thể tính được độ bao phủ mà đạt được 100%.
C.2.3.10 Các nhánh và các quyết định khác
Những mô tả về kiểm thử điều kiện nhánh, kiểm thử kết hợp điều kiện nhánh và kiểm thử MCDC ở trên và các phương pháp tính độ bao phủ tương ứng của chúng được đưa ra trong các điều khoản của các nhánh hoặc quyết định được kiểm soát bởi các điều kiện Boolean. Các nhánh và các quyết định khác như các nhánh đa chiều (được thực hiện bởi câu lệnh "case", "switch" hoặc câu lệnh "goto"), và các vòng lặp tính toán (được thực hiện bằng các vòng lặp “for” hoặc “do” không có bất kỳ điều kiện nào) không sử dụng các điều kiện boolean và do đó không được mô tả.
Có một cách xử lý kịch bản này là sử dụng một trong ba kỹ thuật thiết kế kiểm thử và phương pháp tính độ bao phủ chủng làm một phần bổ sung cho kiểm thử nhánh và độ bao phủ nhánh hoặc độ bao phủ quyết định. Kiểm thử nhánh sẽ đề cập đến tất cả các quyết định đơn giản, các quyết định đa chiều và tất cả các vòng. Kiểm thử điều sẽ đề cập đến các quyết định mà bao gồm các điều kiện Boolean.
Trong thực tế, các ca kiểm thử đạt được 100% độ bao phủ bởi một trong các tùy chọn này cũng sẽ đạt được 100% độ phủ bởi một tùy chọn khác. Tuy nhiên, không thể so sánh được mức độ bao phủ thấp hơn giữa hai tùy chọn.
C.2.4.1 Giới thiệu
Mục đích của kiểm thử luồng dữ liệu là xây dựng một bộ các ca kiểm thử mà bao phủ các đường đi giữa các định nghĩa và cách sử dụng biến trong một hạng mục kiểm thử theo một mức độ bao phủ định nghĩa - sử dụng đã chọn. Kiểm thử luồng dữ liệu là kỹ thuật thiết kế kiểm thử dựa trên cấu trúc nhằm thực thi các đường đi con từ các điểm nơi mà mỗi biến trong một hạng mục kiểm thử được định nghĩa đến các điểm mà nó được tham chiếu. Những đường đi con trong đồ thị luồng điều khiển được gọi là các cặp định nghĩa - sử dụng. Các tiêu chí bao phủ luồng dữ liệu khác nhau đòi hỏi các cặp định nghĩa - sử dụng và các đường đi con được thực thi khác nhau. Các bộ kiểm thử được tạo ra ở đây đạt được 100% độ bao phủ (nếu có) đối với một trong những tiêu chí đó.
CHÚ THÍCH: Kiểm thử luồng dữ liệu đòi hỏi phải xác định các đối tượng dữ liệu có liên quan. Các công cụ phần mềm thường sẽ coi một mảng hoặc một bản ghi là một mục dữ liệu duy nhất chứ không phải là một mục phức hợp với nhiều cấu thành. Bỏ qua các cấu thành của các đối tượng phức hợp mà làm giảm hiệu quả của kiểm thử luồng dữ liệu.
C.2.4.2 Đặc tả
Hãy xem kiểm thử luồng dữ liệu của mục kiểm thử sau đây được viết bằng ngôn ngữ lập trình Ada:
Lưu ý rằng dòng thứ hai không phải là một định nghĩa (của R1 và R2) mà là một tuyên bố. (Đối với các ngôn ngữ có khởi tạo mặc định, nó sẽ là một định nghĩa.)
C.2.4.3 Bước 1: Xác định các tập tính năng (TD1)
Do chỉ có một hàm kiểm thử nên chỉ có thể xác định được một tập tính năng:
FS1: Solve_Quadratic function.
C.2.4.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Bước đầu tiên là liệt kê các biến được sử dụng trong hạng mục kiểm thử. Các biến đó là: A, B, C, Discrim, ls_Complex, R1 và R2. Tiếp theo, mỗi lần xuất hiện của một biến trong các hạng mục kiểm thử được tham chiếu chéo dựa vào danh sách chương trình và gán một loại hình của biến (định nghĩa của một biến, sử dụng biến để kiểm tra điều kiện hoặc sử dụng biến để tính toán).
Bảng C.7 - Sự xuất hiện của các biến và các loại hình của nó
Dòng lệnh |
Loại |
||
Định nghĩa |
c-use |
p-use |
|
0 |
A, B, C |
|
|
1 |
Discrim |
A, B, C |
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
Discrim |
5 |
Is_Complex |
|
|
6 |
|
|
|
7 |
Is_Complex |
|
|
8 |
|
|
|
9 |
|
|
ls_Complex |
10 |
R1 |
A, B, Discrim |
|
11 |
R2 |
A, B, Discrim |
|
12 |
|
|
|
13 |
|
R1, R2, Is_Complex |
|
Các điều kiện kiểm thử là các cặp định nghĩa - sử dụng.
Bước tiếp theo là xác định các cặp định nghĩa - sử dụng và kiểu sử dụng (c-use hoặc p-use) của chúng, mỗi cặp trong số đó là các hạng mục phủ kiểm thử, bằng cách xác định những liên kết từ mỗi đầu vào trong cột định nghĩa đến mỗi đầu vào tiếp theo đối với biến đó trọng cột c-use hoặc p-use.
Bảng C.8 - Các cặp định nghĩa - sử dụng và kiểu sử dụng của chúng
Cặp định
nghĩa - sử dụng |
Các biến |
Điều kiện kiểm thử |
|
c-use |
p-use |
||
0 → 1 |
A |
|
TCOND1 |
|
B |
|
TCOND2 |
|
C |
|
TCOND3 |
0 → 11 |
A |
|
TCOND4 |
|
B |
|
TCOND5 |
0 → 11 |
A |
|
TCOND6 |
|
B |
|
TCOND7 |
1 → 4 |
|
Discrim |
TCOND8 |
1 → 10 |
Discrim |
|
TCOND9 |
1 → 11 |
Discrim |
|
TCOND10 |
5 → 9 |
|
ls_Complex |
TCOND11 |
7 → 9 |
|
ls_Complex |
TCOND12 |
10 → 13 |
R1 |
|
TCOND13 |
11 → 13 |
R2 |
|
TCOND14 |
5 → 13 |
ls_Complex |
|
TCOND15 |
7 → 13 |
ls_Complex |
|
TCOND16 |
Lưu ý: không cần thiết phải tạo ra tất cả các cặp định nghĩa - sử dụng (như đã được tạo ra ở đây) khi xác định các hạng mục bao phủ kiểm thử (tùy thuộc vào kỹ thuật đang được sử dụng).
C.2.4.5 Kiểm thử tất cả các định nghĩa của biến
C.2.4.5.1 Bước 3a: Xác định các hạng mục bao phủ kiểm thử (TD3) - Kiểm thử tất cả các định nghĩa của biến
Trong kiểm thử tất cả các định nghĩa của biến, các hạng mục bao phủ kiểm thử là các đường đi con của đồ thị luồng điều khiển từ một định nghĩa của biến đến một số kiểu sử dụng (c-use hoặc p-use) của định nghĩa đó.
Bảng sau đây cho thấy một tập các cặp định nghĩa - sử dụng thỏa mãn được tiêu chí này.
Bảng C.9 - Kiểm thử tất cả các định nghĩa của biến
Hạng mục bao phủ kiểm thử |
Tất cả các định nghĩa của biến |
||
Các biến |
Cặp định nghĩa - sử dụng |
Điều kiện kiểm thử |
|
TCOVER1 |
A |
0 → 1 |
TCOND1 |
TCOVER2 |
B |
0 → 1 |
TCOND2 |
TCOVER3 |
C |
0 → 1 |
TCOND3 |
TCOVER4 |
Discrim |
1 → 4 |
TCOND8 |
TCOVER5 |
ls_Complex |
5 → 9 |
TCOND11 |
TCOVER6 |
ls_Complex |
7 → 9 |
TCOND12 |
TCOVER7 |
R1 |
10 → 13 |
TCOND13 |
TCOVER8 |
R2 |
11 → 13 |
TCOND14 |
C.2.4.5.2 Bước 4a: Xây dựng các ca kiểm thử (TD4) - Kiểm thử tất cả các định nghĩa của biến
Các ca kiểm thử được xây dựng bằng cách xác định các đường đi con của luồng điều khiển mà đến được một hoặc nhiều hạng mục bao phủ kiểm thử chưa được thực hiện trong khi kiểm thử, xác định các đầu vào mà sẽ thực thi những đường đi con này và kết quả mong đợi của kiểm thử và lặp đi lặp lại cho đến khi đạt được độ bao phủ quy định. Để đạt được 100% độ bao phủ kiểm thử luồng dữ liệu tất cả các định nghĩa của biến thì ít nhất một đường đi con từ mỗi định nghĩa đến một vài sử dụng của định nghĩa đó (p-use hoặc c-use) phải được thực thi. Bộ kiểm thử dưới đây sẽ thỏa mãn yêu cầu này:
Bảng C.10 - Các ca kiểm thử đối với kiểm thử tất cả các định nghĩa của biến
Ca kiểm thử |
Tất cả các định nghĩa của biến |
Đầu vào |
Kết quả mong đợi |
|||||||
Các biến |
Các cặp định nghĩa - sử dụng |
Các đường đi con |
Các hạng mục bao phủ kiểm thử |
A |
B |
C |
ls_Complex |
R1 |
R2 |
|
1 |
ls_Complex |
7 → 9 |
7-8-9 |
TCOVER6 |
1 |
2 |
1 |
SAI |
-1 |
-1 |
R1 |
10 → 13 |
10-11-12-13 |
TCOVER7 |
|||||||
R2 |
11 → 13 |
11-12-13 |
TCOVER8 |
|||||||
2 |
A,B,C, Discrim |
0 → 1 1 → 4 |
0-1 1-2-3-4 |
TCOVER1, TCOVER2, TCOVER3 TCOVER4 |
1 |
2 |
3 |
ĐÚNG |
Không xác định |
Không xác định |
3 |
ls_Complex |
5 → 9 |
5-8-9 |
TCOVER5 |
C.2.4.5.3 Độ bao phủ kiểm thử tất cả các định nghĩa của biến
Sử dụng các công thức đã nêu trong Điều 6.3.7.1 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử tất cả các định nghĩa của biến đạt được là 100%.
C.2.4.6 Kiểm thử tất cả các C-Uses
C.2.4.6.1 Bước 3b: Xác định các hạng mục bao phủ kiểm thử (TD3) - Kiểm thử tất cả các C-Uses
Trong tất kiểm thử các c-uses, các hạng mục bao phủ kiểm thử là các đường đi con của đồ thị luồng điều khiển từ một định nghĩa của biến đến tất cả c-use của định nghĩa đó. Bảng sau đây cho thấy một tập các cặp định nghĩa - sử dụng thỏa mãn tiêu chí này.
Bảng C.11 - Kiểm thử tất cả c-uses
Hạng mục bao phủ kiểm thử |
Tất cả các c-uses |
|||
Các biến |
Cặp định nghĩa - sử dụng |
Đường đi con |
Các điều kiện kiểm thử |
|
TCOVER1 |
A |
0 → 1 |
0-1 |
TCOND1 |
TCOVER2 |
B |
0 → 1 |
0-1 |
TCOND2 |
TCOVER3 |
C |
0 → 1 |
0-1 |
TCOND3 |
TCOVER4 |
A |
0 → 10 |
0-1-2-3-4-6-7-8-9-10 |
TCOND4 |
TCOVER5 |
B |
0 → 10 |
0-1-2-3-4-6-7-8-9-10 |
TCOND5 |
TCOVER6 |
A |
0 → 11 |
0-1-2-3-4-6-7-8-9-10-11 |
TCOND6 |
TCOVER7 |
B |
0 → 11 |
0-1-2-3-4-6-7-8-9-10-11 |
TCOND7 |
TCOVER8 |
Discrim |
1 → 10 |
1-2-3-4-6-7-8-9-10 |
TCOND9 |
TCOVER9 |
Discrim |
1 → 11 |
1-2-3-4-6-7-8-9-10-11 |
TCOND10 |
TCOVER10 |
R1 |
10 → 13 |
10-11-12-13 |
TCOND13 |
TCOVER11 |
R2 |
11 → 13 |
11-12-13 |
TCOND14 |
TCOVER12 |
ls_Complex |
5 → 13 |
5-8-9-12-13 |
TCOND15 |
TCOVER13 |
ls_Complex |
7 → 13 |
7-8-9-10-11-12-13 |
TCOND16 |
C.2.4.6.2 Bước 4b: Xây dựng các ca kiểm thử (TD4) - Kiểm thử tất cả c-uses
Các ca kiểm thử được xây dựng bằng cách xác định các đường đi con của luồng điều khiển đến được một hoặc nhiều hạng mục bao phủ kiểm thử chưa được thực hiện trong khi kiểm thử, xác định các đầu vào mà sẽ thực thi những đường đi con này và kết quả mong đợi của kiểm thử và lặp đi lặp lại cho đến khi đạt được độ bao phủ quy định. Để đạt được 100% độ bao phủ kiểm thử luồng dữ liệu tất cả c-uses thì ít nhất một đường đi con từ mỗi định nghĩa của biến đến tất cả c-uses của định nghĩa đó phải được thực thi.
Bảng C.12 - Các ca kiểm thử đối với kiểm thử tất cả c-uses
Ca kiểm thử |
Tất cả các c-uses |
Đầu vào |
Kết quả mong đợi |
|||||||
Các biến |
Các cặp định nghĩa - sử dụng |
Các đường đi con |
Các hạng mục bao phủ kiểm thử |
A |
B |
C |
ls_Complex |
R1 |
R2 |
|
1 |
A, B, C |
0 → 1 |
0-1 |
TCOVER1, TCOVER2, TCOVER3 |
1 |
2 |
1 |
SAI |
-1 |
-1 |
|
A,B |
0 → 10, |
0-1 -2-3-4- 6-7-8-9-10 |
TCOVER4, TCOVER5 |
|
|
|
|
|
|
|
A, B |
0 → 11 |
0-1-2-3-4-6-7-8-9-10-11 |
TCOVER6, TCOVER7 |
|
|
|
|
|
|
|
Discrim |
1 → 10 |
1-2-3-4-6-7-8-9-10 |
TCOVER8 |
|
|
|
|
|
|
|
|
1 → 11 |
1-2-3-4-6-7-8-9-10-11 |
TCOVER9 |
|
|
|
|
|
|
|
R1 |
10 → 13 |
10-11-12-13 |
TCOVER10 |
|
|
|
|
|
|
|
R2 |
11 → 13 |
11-12-13 |
TCOVER11 |
|
|
|
|
|
|
|
ls_Complex |
7 → 13 |
7-8-9-10-11-12-13 |
TCOVER13 |
|
|
|
|
|
|
2 |
ls_Complex |
5 → 13 |
5-8-9-12-13 |
TCOVER12 |
1 |
1 |
1 |
ĐÚNG |
Không xác định |
Không xác định |
C.2.4.6.3 Độ bao phủ kiểm thử tất cả các C-Uses
Sử dụng các công thức đã nêu trong Điều 6.3.7.2 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử tất cả các c-uses đạt được là 100%.
C.2.4.7 Kiểm thử tất cả các P-Uses
C.2.4.7.1 Bước 3c: Xác định các hạng mục bao phủ kiểm thử (TD3) - Kiểm thử tất cả các P-Uses
Trong tất kiểm thử tất cả các p-uses, các hạng mục bao phủ kiểm thử là các đường đi con của đồ thị luồng điều khiển từ một định nghĩa của biến đến tất cả p-uses của định nghĩa đó.
Bảng sau đây cho thấy một tập các cặp định nghĩa - sử dụng thỏa mãn tiêu chí này.
Bảng C.13 - Kiểm thử tất cả các p-uses
Hạng mục bao phủ kiểm thử |
Tất cả các p-uses |
||
Các biến |
Cặp định nghĩa - sử dụng |
Điều kiện kiểm thử |
|
TCOVER1 |
Discrim |
1 → 4 |
TCOND8 |
TCOVER2 |
ls_Complex |
5 → 9 |
TCOND11 |
TCOVER3 |
ls_Complex |
7 → 9 |
TCOND12 |
C.2.4.7.2 Bước 4c: Xây dựng các ca kiểm thử (TD4) - Kiểm thử tất cả các p-uses
Các ca kiểm thử được xây dựng bằng cách xác định các đường đi con của luồng điều khiển đến được một hoặc nhiều hạng mục bao phủ kiểm thử chưa được thực hiện trong khi kiểm thử, xác định các đầu vào mà sẽ thực thi những đường đi con này và kết quả mong đợi của kiểm thử và lặp đi lặp lại cho đến khi đạt được độ bao phủ quy định. Để đạt được 100% độ bao phủ kiểm thử luồng dữ liệu p-uses thì ít nhất một đường đi con từ mỗi định nghĩa của biến đến tất cả p-uses của định nghĩa đó phải được thực thi. Bộ kiểm thử dưới đây sẽ đáp ứng yêu cầu này:
Bảng C.14 - Các ca kiểm thử đối với kiểm thử tất cả các p-uses
Ca kiểm thử |
Tất cả các p-uses |
Đầu vào |
Các kết quả mong đợi |
|||||||
Các biến |
Các cặp định nghĩa - sử dụng |
Các đường đi con |
Hạng mục bao phủ kiểm thử |
A |
B |
C |
ls_Complex |
R1 |
R2 |
|
1 |
ls_Complex |
7 → 9 |
7-8-9 |
TCOVER3 |
1 |
2 |
1 |
SAI |
-1 |
-1 |
2 |
Discrim |
1 → 4 |
1-2-3-4 |
TCOVER1 |
1 |
1 |
1 |
ĐÚNG |
Không xác định |
Không xác định |
ls_Complex |
5 → 9 |
5-8-9 |
TCOVER2 |
C.2.4.7.3 Độ bao phủ kiểm thử tất cả các p-uses
Sử dụng các công thức đã nêu trong Điều 6.3.7.3 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử tất cả các p-uses đạt được là 100%.
C.2.4.8 Kiểm thử tất cả các sử dụng biến
C.2.4.8.1 Bước 3d: Xác định các hạng mục bao phủ kiểm thử (TD3) - Kiểm thử tất cả các sử dụng
Trong kiểm thử tất cả các sử dụng, các hạng mục bao phủ kiểm thử là các đường đi con của đồ thị luồng điều khiển từ một định nghĩa của biến đến tất cả sử dụng (cả c-use và p-use) của định nghĩa đó.
Bảng sau đây cho thấy một tập các cặp định nghĩa - sử dụng thỏa mãn tiêu chí này
Bảng C.15 - Kiểm thử tất cả các sử dụng biến
Các hạng mục bao phủ kiểm thử |
Tất cả các sử dụng biến/ Tất cả các đường định nghĩa - sử dụng |
|||
Các biến |
Cặp định nghĩa - sử dụng |
Đường đi con |
Các điều kiện kiểm thử |
|
TCOVER1 |
A |
0 → 1 |
0-1 |
TCOND1 |
TCOVER2 |
B |
0 → 1 |
0-1 |
TCOND2 |
TCOVER3 |
C |
0 → 1 |
0-1 |
TCOND3 |
TCOVER4 |
A |
0 → 10 |
0-1-2-3-4-6-7-8-9-10 |
TCOND4 |
TCOVER5 |
B |
0 → 10 |
0-1-2-3-4-6-7-8-9-10 |
TCOND5 |
TCOVER6 |
A |
0 → 11 |
0-1-2-3-4-6-7-8-9-10-11 |
TCOND6 |
TCOVER7 |
B |
0 → 11 |
0-1-2-3-4-6-7-8-9-10-11 |
TCOND7 |
TCOVER8 |
Discrim |
1 → 4 |
1-2-3-4 |
TCOND8 |
TCOVER9 |
Discrim |
1 → 10 |
1-2-3-4-6-7-8-9-10 |
TCOND9 |
TCOVER10 |
Discrim |
1 → 11 |
1-2-3-4-6-7-8-9-10-11 |
TCOND10 |
TCOVER11 |
ls_Complex |
5 → 9 |
5-8-9 |
TCOND11 |
TCOVER12 |
ls_Complex |
7 → 9 |
7-8-9 |
TCOND12 |
TCOVER13 |
R1 |
10 → 13 |
10-11-12-13 |
TCOND13 |
TCOVER14 |
R2 |
11 → 13 |
11-12-13 |
TCOND14 |
TCOVER15 |
ls_Complex |
5 → 13 |
5-8-9-12-13 |
TCOND15 |
TCOVER16 |
ls_Complex |
7 → 13 |
7-8-9-10-11-12-13 |
TCOND16 |
C.2.4.8.2 Bước 4d: Xây dựng các ca kiểm thử (TD4) - Kiểm thử tất cả các sử dụng
Các ca kiểm thử được xây dựng bằng cách xác định các đường đi con của luồng điều khiển đến được một hoặc nhiều hạng mục bao phủ kiểm thử chưa được thực hiện trong khi kiểm thử, xác định các đầu vào mà sẽ thực thi những đường đi con này và kết quả mong đợi của kiểm thử và lặp đi lặp lại cho đến khi đạt được độ bao phủ quy định. Để đạt được 100% độ bao phủ kiểm thử luồng dữ liệu tất cả các sử dụng thì ít nhất một đường đi con từ mỗi định nghĩa của biến đến tất cả sử dụng của định nghĩa đó (cả p-use và c-use) phải được thực thi. Bộ kiểm thử dưới đây sẽ đáp ứng yêu cầu này:
Bảng C.16 - Các ca kiểm thử đối với kiểm thử tất cả các sử dụng
Ca kiểm thử |
Tất cả các sử dụng |
Đầu vào |
Kết quả mong đợi |
|||||||
Các biến |
Cặp định nghĩa - sử dụng |
Đường đi con |
Hạng mục bao phủ kiểm thử |
A |
B |
C |
Is_Complex |
R1 |
R2 |
|
1 |
A, B, C |
0 → 1 |
0-1 |
TCOVER1, TCOVER2, TCOVER3 |
1 |
2 |
1 |
SAI |
-1 |
-1 |
A, B |
0 → 10 |
0-1-2-3-4-6-7-8-9-10 |
TCOVER4, TCOVER5 |
|
|
|
||||
A, B |
0 → 11 |
0-1-2-3-4-6-7-8-9-10-11 |
TCOVER6, TCOVER7 |
|
|
|
||||
Discrim |
1 → 4 |
1-2-3-4 |
TCOVER8 |
|
|
|
||||
1 → 10 |
1-2-3-4-6- 7-8-9-10 |
TCOVER9 |
|
|
|
|||||
1 → 11 |
1-2-3-4-6- 7-8-9-10-11 |
TCOVER10 |
|
|
|
|||||
ls_Complex R1 |
7 → 9 |
7-8-9 |
TCOVER12 |
|
|
|
||||
10 → 13 |
10-11-12-13 |
TCOVER13 |
|
|
|
|||||
R2 |
11 → 13 |
11-12-13 |
TCOVER14 |
|
|
|
||||
Is Complex |
7 → 13 |
7-8-9-10-11-12-13 |
TCOVER16 |
|
|
|
||||
2 |
ls_Complex |
5 → 9 |
5-8-9 |
TCOVER11 |
1 |
1 |
1 |
ĐÚNG |
Không xác định |
Không xác định |
ls_Complex |
5 → 13 |
5-8-9-12-13 |
TCOVER15 |
C.2.4.8.3 Độ bao phủ kiểm thử tất cả các sử dụng biến
Sử dụng các công thức đã nêu trong Điều 6.3.7.4 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử tất cả các sử dụng biến đạt được là 100%.
C.2.4.9 Kiểm thử tất cả các đường định nghĩa - sử dụng (All-DU-Paths Testing)
C.2.4.9.1 Bước 3e: Xác định các hạng mục bao phủ kiểm thử (TD3) - Kiểm thử tất cả các đường định nghĩa - sử dụng
Để đạt được 100% độ bao phủ tất cả các đường định nghĩa - sử dụng thì tất cả "đường đi con đơn giản" từ mỗi định nghĩa của biến đến tất cả sử dụng của định nghĩa đó phải được thực thi. Điều này khác với kiểm thử tất cả các sử dụng trong đó mỗi đường đi con đơn giản giữa các cặp định nghĩa - sử dụng phải được thực thi. Chỉ thoáng nhìn thì có vẻ như có hai đường đi qua hạng mục kiểm thử mà vẫn chưa được xác định trong các ca kiểm thử tất cả các sử dụng. Đó là đường đi 0-1-4-5-9-10 và đường đi 1-4-5-9-10. Tuy nhiên, cả hai đường đi này không khả thi (và do đó không có ca kiểm thử nào có thể được tạo ra). Do đó, các đường đi này không được coi là "đường đi con đơn giản" cho kiểm thử tất cả các đường định nghĩa - sử dụng.
Bảng C.17 - Kiểm thử tất cả các đường định nghĩa - sử dụng
Các hạng mục bao phủ kiểm thử |
Tất cả các đường định nghĩa - sử dụng |
|||
Các biến |
Cặp định nghĩa - sử dụng |
Đường đi |
Các điều kiện kiểm thử |
|
TCOVER1 |
A |
0 → 1 |
0-1 |
TCOND1 |
TCOVER2 |
B |
0 → 1 |
0-1 |
TCOND2 |
TCOVER3 |
C |
0 → 1 |
0-1 |
TCOND3 |
TCOVER4 |
A |
0 → 10 |
0-1-2-3-4-6-7-8-9-10 |
TCOND4 |
TCOVER5 |
B |
0 → 10 |
0-1-2-3-4-6-7-8-9-10 |
TCOND5 |
TCOVER6 |
A |
0 → 11 |
0-1-2-3-4-6-7-8-9-10-11 |
TCOND6 |
TCOVER7 |
B |
0 → 11 |
0-1-2-3-4-6-7-8-9-10-11 |
TCOND7 |
TCOVER8 |
Discrim |
1 → 4 |
1-2-3-4 |
TCOND8 |
TCOVER9 |
Discrim |
1 → 10 |
1-2-3-4-6-7-8-9-10 |
TCOND9 |
TCOVER10 |
Discrim |
1 → 11 |
1-2-3-4-6-7-8-9-10-11 |
TCOND10 |
TCOVER11 |
ls_Complex |
5 → 9 |
5-8-9 |
TCOND11 |
TCOVER12 |
ls_Complex |
7 → 9 |
7-8-9 |
TCOND12 |
TCOVER13 |
R1 |
10 → 13 |
10-11-12-13 |
TCOND13 |
TCOVER14 |
R2 |
11 → 13 |
11-12-13 |
TCOND14 |
TCOVER15 |
ls_Complex |
5 → 13 |
5-8-9-12-13 |
TCOND15 |
TCOVER16 |
ls_Complex |
7 → 13 |
7-8-9-10-11-12-13 |
TCOND16 |
C.2.4.9.2 Bước 4e: Xây dựng các ca kiểm thử (TD4) - Kiểm thử tất cả các đường định nghĩa - sử dụng
Giờ thì có thể xây dựng được các ca kiểm thử cho tất cả các đường định nghĩa - sử dụng. Một bộ các ca kiểm thử được xây dựng cho tất cả các sử dụng cũng đạt được mức độ bao phủ kiểm thử tối đa đối với tất cả các đường định nghĩa - sử dụng trong ví dụ này.
Bảng C.18 - Các ca kiểm thử cho kiểm thử tất cả các đường định nghĩa - sử dụng
Ca kiểm thử |
Tất cả các đường định nghĩa - sử dụng |
Đầu vào |
Kết quả mong đợi |
|||||||
Các biến |
Các cặp định nghĩa - sử dụng |
Đường đi |
Hạng mục bao phủ kiểm thử |
A |
B |
C |
Is_Complex |
R1 |
R2 |
|
1 |
A, B, C |
0 → 1 |
0-1 |
TCOVER1, TCOVER2, TCOVER3 |
1 |
2 |
1 |
SAI |
-1 |
-1 |
A, B |
0 → 10 |
0-1-2-3-4-6-7-8-9-10 |
TCOVER4, TCOVER5 |
|
|
|
||||
0 → 11 |
0-1-2-3-4-6- 7-8-9-10-11 |
TCOVER6, TCOVER7 |
|
|
|
|||||
Discrim |
1 → 4 |
1-2-3-4 |
TCOVER8 |
|
|
|
||||
1 → 10 |
1-2-3-4-6-7-8-9-10 |
TCOVER9 |
|
|
|
|||||
ls_Complex
R1 |
1 → 11 |
1-2-3-4-6-7-8-9-10-11 |
TCOVER10 |
|
|
|
||||
7 → 9 |
7-8-9 |
TCOVER12 |
|
|
|
|||||
10 → 13 |
10-11-12-13 |
TCOVER13 |
|
|
|
|||||
R2 |
11 → 13 |
11-12-13 |
TCOVER14 |
|
|
|
||||
ls_Complex |
7 → 13 |
7-8-9-10-11-12-13 |
TCOVER16 |
|
|
|
||||
2 |
ls_Complex |
5 → 9 |
5-8-9 |
TCOVER11 |
1 |
1 |
1 |
ĐÚNG |
Không xác định |
Không xác định |
ls_Complex |
5 → 13 |
5-8-9-12-13 |
TCOVER15 |
C.2.4.9.3 Tính độ bao phủ kiểm thử tất cả các đường định nghĩa - sử dụng
Sử dụng các công thức đã nêu trong Điều 6.3.7.5 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Do đó, độ bao phủ các hạng mục bao phủ kiểm thử đối với kiểm thử tất cả các đường định nghĩa - sử dụng đạt được là 100%.
C.2.4.9.4 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Vì các ca kiểm thử được xây dựng bao phủ tất cả các hạng mục bao phủ kiểm thử nên chúng sẽ được sử dụng làm ví dụ để xác định các bộ kiểm thử. Tất cả các ca kiểm thử mà làm cho biến ls_Complex tính toán nhận kết quả SAI có thể được gộp vào một bộ kiểm thử, tất cả các ca kiểm thử có biến tính toán nhận kết quả ĐÚNG sẽ được gộp vào một bộ kiểm thử khác, như sau:
TS1: Gồm ca kiểm thử 1.
TS2: Gồm ca kiểm thử 2.
C.2.4.9.5 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Tất cả các bộ kiểm thử có thể được kết hợp vào một thủ tục một kiểm thử được thực hiện theo thứ tự tuần tự, đó là:
TP1: Bao gồm tất cả các ca kiểm thử trong bộ kiểm thử TS1, tiếp theo là những ca kiểm thử trong bộ kiểm thử TS2, theo thứ tự quy định tại các bộ kiểm thử
Hướng dẫn và ví dụ về việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm
D1. Hướng dẫn và ví dụ kiểm thử dựa trên kinh nghiệm
D.1.1 Tổng quan
Phụ lục này đưa ra hướng dẫn về việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên đặc tả nêu trong Điều 5.4 và và tính độ bao phủ từng kỹ thuật kiểm thử dựa trên đặc tả nêu trong Điều 6.4 bằng các ví dụ cụ thể. Ví dụ trong phụ lục này dựa theo quy trình Thiết kế và chuẩn bị kiểm thử được định nghĩa trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013).
D.2 Các ví dụ về kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm
D.2.1 Đoán lỗi
D.2.1.1 Giới thiệu
Mục đích của đoán lỗi là để tạo ra một bộ các ca kiểm thử mà bao gồm các lỗi có thể xảy ra trong quá trình kiểm thử, kỹ thuật này đòi hỏi phải sử dụng kiến thức và kinh nghiệm của kỹ sư kiểm thử về các hạng mục kiểm thử trước đó. Các ca kiểm thử được xây dựng để khắc phục từng loại lỗi được kỹ sư kiểm thử xác định là có khả năng xuất hiện trong hạng mục kiểm thử hiện hành. Kỹ thuật này thường sẽ được áp dụng sau các kỹ thuật thiết kế kiểm thử dựa trên đặc tả như phân vùng tương đương và phân tích giá trị biên để bổ sung các loại lỗi được tạo ra bởi những kỹ thuật đó.
D.2.1.2 Đặc tả
Hãy xem xét một hạng mục kiểm thử tạo điểm được sử dụng làm ví dụ về phân tích giá trị biên với cơ sở kiểm thử sau:
Nếu thành phần nhận được điểm thi (theo thang điểm 75) và điểm luận văn (c/w) (theo thang điểm 25) là các đầu vào, từ đó có thể tính được điểm cho khóa học, điểm của khóa học được phân loại thành các điểm từ loại 'A' đến điểm loại ‘D’. Các điểm này được đưa ra căn cứ vào cách tính toán điểm tổng. Điểm tổng bằng điểm thi và điểm luận văn (c/w) cộng với nhau, do đó chúng ta có các phân vùng sau:
Điểm tổng lớn hơn hoặc bằng 70 - đạt điểm A
Điểm tổng lớn hơn hoặc bằng 50, nhưng nhỏ hơn 70 - đạt điểm B
Điểm tổng lớn hơn hoặc bằng 30, nhưng nhỏ hơn 50 - đạt điểm C
Điểm tổng nhỏ hơn 30 - đạt điểm D
Nếu phát hiện (các) đầu vào không hợp lệ (ví dụ như điểm nằm ngoài giới hạn quy định) thì sẽ xuất hiện bản tin lỗi ('FM'). Tất cả các điềm đầu vào mà đạt phải là các số nguyên.
D.2.1.3 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được định nghĩa trong cơ sở kiểm thử nên chỉ có một tập tính năng (FS) được tạo ra, đó là:
FS1: Hàm tạo điểm
D.2.1.4 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Các điều kiện kiểm thử được xác định bằng cách tạo ra một danh sách các loại lỗi tiềm ẩn có thể có mặt trong các hạng mục kiểm thử, dựa trên kiến thức và kinh nghiệm về các lỗi tương tự xuất hiện trong các hạng mục kiểm thử khác đã được kiểm thử trước đó. Đối với hàm tạo điểm, có thể xác định được các điều kiện kiểm thử sau đây:
TCOND1: Nhập NULL (đối với FS1)
TCOND2: Nhập số 0 (đối với FS1)
TCOND3: Nhập số âm (đối với FS1)
TCOND4: Nhập đầu vào theo thứ tự đảo ngược (đối với FS1)
TCOND5: Nhập số gồm nhiều chữ số (ví dụ: 10 chữ số) (đối với FS1)
TCOND6: Nhập chuỗi gồm nhiều chữ cái alphabet (ví dụ: 10 chữ cái trong bộ chữ cái) (đối với FS1)
D.2.1.5 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi loại lỗi là một hạng mục bao phủ kiểm thử (tức là các hạng mục bao phủ kiểm thử tương tự các điều kiện kiểm thử). Do đó, có thể xác định được các hạng mục bao phủ kiểm thử sau đây:
TCOVER1: |
Nhập NULL |
(đối với TCOND1) |
TCOVER2: |
Nhập số 0 |
(đối với TCOND2) |
TCOVER3: |
Nhập số âm |
(đối với TCOND3) |
TCOVER4: |
Nhập đầu vào theo thứ tự đảo ngược |
(đối với TCOND4) |
TCOVER5: |
Nhập số gồm nhiều chữ số (ví dụ: 10 chữ số) |
(đối với TCOND5) |
TCOVER6: |
Nhập chuỗi gồm nhiều chữ cái alphabet (ví dụ: 10 chữ cái trong bộ chữ cái) |
(đối với TCOND6) |
D.2.1.6 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử có thể được xây dựng bằng cách lựa chọn một loại lỗi cho các ca kiểm thử hiện có, xác định (các) đầu vào để thực hiện các tham số của ca kiểm thử theo các loại lỗi được lựa chọn, xác định kết quả mong đợi và lặp đi lặp lại cho đến khi tất cả các hạng mục bao phủ kiểm thử đã bao gồm trong một ca kiểm thử. Đối với ví dụ này, có thể có các ca kiểm thử sau.
Bảng D.1 - Các ca kiểm thử đối với đoán lỗi
Ca kiểm thử |
1 |
2 |
3 |
4 |
Đầu vào (điểm thi) |
NULL |
25 |
NULL |
0 |
Đầu vào (điểm luận văn) |
20 |
NULL |
NULL |
20 |
Điểm tổng (theo tính toán) |
20 |
25 |
NULL |
20 |
Hạng mục bao phủ kiểm thử |
TCOVER1 điểm thi |
TCOVER1 điểm luận văn |
TCOVER1 điểm thi và điểm luận văn |
TCOVER2 điểm thi |
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bảng D.2 - Các ca kiểm thử đối với đoán lỗi (tiếp theo) |
||||
Ca kiểm thử |
5 |
6 |
7 |
8 |
Đầu vào (điểm thi) |
25 |
0 |
-25 |
25 |
Đầu vào (điểm luận văn) |
0 |
0 |
20 |
-25 |
Điểm tổng (theo tính toán) |
25 |
0 |
-5 |
0 |
Hạng mục bao phủ kiểm thử |
TCOVER2 điểm luận văn |
TCOVER2 điểm thi và điểm luận văn |
TCOVER3 điểm thi |
TCOVER3 điểm luận văn |
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bảng D.3 - Các ca kiểm thử đối với đoán lỗi (tiếp theo)
Ca kiểm thử |
9 |
10 |
11 |
12 |
Đầu vào (điểm thi) |
-25 |
20 |
1234567890 |
25 |
Đầu vào (điểm luận văn) |
-50 |
55 |
20 |
1234567890 |
Điểm tổng (theo tính toán) |
-75 |
75 |
1234567910 |
1234567915 |
Hạng mục bao phủ kiểm thử |
TCOVER3 điểm thi và điểm luận văn |
TCOVER4 điểm thi và điểm luận văn |
TCOVER5 điểm thi |
TCOVER5 điểm luận văn |
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bảng D.4 - Các ca kiểm thử đối với đoán lỗi (tiếp theo)
Ca kiểm thử |
13 |
14 |
15 |
16 |
Đầu vào (điểm thi) |
1234567890 |
abcdefghij |
25 |
abcdefghij |
Đầu vào (điểm luận văn) |
1234567890 |
20 |
abcdefghij |
abcdefghij |
Điểm tổng (theo tính toán) |
2469135780 |
NULL |
NULL |
NULL |
Hạng mục bao phủ kiểm thử |
TCOVER5 điểm thi và điểm luận văn |
TCOVER6 điểm thi |
TCOVER6 điểm luận văn |
TCOVER6 điểm thi và điểm luận văn |
Đầu ra mong đợi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
Bản tin lỗi |
D.2.1.7 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Vì tất cả các ca kiểm thử được xây dựng ở trên đều không hợp lệ nên đã xuất hiện một bản tin lỗi, tất các các ca kiểm thử không hợp lệ này có thể được đặt trong cùng một bộ kiểm thử như sau:
TS1: Gồm các ca kiểm thử: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16.
D.2.1.8 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Chỉ có một thủ tục được yêu cầu như sau:
TP1: Bao gồm các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
D.2.1.9 Độ bao phủ kiểm thử đoán lỗi
Như đã nêu trong Điều 6.4.1, không có phương pháp để tính toán độ bao phủ kiểm thử đoán lỗi.
Hướng dẫn và ví dụ về việc áp dụng các kỹ thuật thiết kế kiểm thử thay thế cho nhau
E.1 Hướng dẫn và ví dụ về các kỹ thuật thiết kế kiểm thử thay đổi cho nhau
E.1.1 Tổng quát
Mặc dù các kỹ thuật kiểm thử trình bày trong tiêu chuẩn này được phân loại thành các kỹ thuật thiết kế kiểm thử dựa trên đặc tả, các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc và các kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm, nhưng trong thực tế một số kỹ thuật kiểm thử có thể được sử dụng thay thế cho nhau (xem Điều 5.1). Điều này được thể hiện trong ví dụ dưới đây, ví dụ dưới đây minh họa cách kiểm thử nhánh (kỹ thuật kiểm thử này thuộc kỹ thuật thiết kế kiểm thử dựa trên cấu trúc) có thể được áp dụng thay cho kỹ thuật kiểm thử dựa trên đặc tả.
E.1.2 Kiểm thử nhánh áp dụng như kỹ thuật kiểm thử dựa trên đặc tả
E.1.2.1 Đặc tả
Hãy xem đặc tả ví dụ sau đây, nó định nghĩa một hàm đăng nhập mà có tên người dùng và mật khẩu là đầu vào để xác định liệu người dùng có hợp lệ không:
Thành phần sẽ yêu cầu phải có tên đăng nhập và mật khẩu. Người dùng phải nhập tên đăng nhập và mật khẩu tương ứng để đăng nhập vào hệ thống. Người dùng chỉ được phép nhập tên và mật khẩu ba lần và mỗi lần 20 giây. Nếu người dùng không nhập đúng tên và mật khẩu trong 3 lần và mỗi lần trong vòng 20 giây thì hệ thống sẽ bị khóa và không cho phép đăng nhập nữa.
Đồ thị luồng điều khiển cho thành phần này được trình bày trong hình dưới đây:
Hình E.1 - Đồ thị luồng điều khiển đối với hàm đăng nhập
E.1.2.2 Bước 1: Xác định các tập tính năng (TD1)
Vì chỉ có một hạng mục kiểm thử được xác định trong cơ sở kiểm thử, chỉ có một tính năng được xác định dưới đây:
FS1: Hàm đăng nhập
E.1.2.2 Bước 2: Xác định các điều kiện kiểm thử (TD2)
Đồ thị luồng điều khiển cung cấp một cái nhìn tổng quan về tính năng và hỗ trợ việc xác định các điều kiện cho kiểm thử nhánh. Các khối hình vuông trong đồ thị luồng điều khiển đại diện cho các đoạn mã nguồn của chương trình trong thành phần, các khối hình thoi đại diện cho các quyết định. Các hình mũi tên ở phía ngoài mỗi hình thoi đại diện cho kết quả quyết định. Các luồng chuyển đổi là:
B1 → B2 B3 → B4 B5 → B4
B2 → B3 B3 → B6 B5 → B6
B3 → B2 B4 → B5 B5 → B7
Các điều kiện kiểm thử là các nhánh được đại diện bởi các mũi tên trong đồ thị luồng điều khiển. Đối với tập tính năng hàm đăng nhập, có tổng cộng chín điều kiện kiểm thử dưới đây:
TCOND1: |
B1 → B2 |
(đối với tập tính năng FS1) |
TCOND2: |
B2 → B3 |
(đối với tập tính năng FS1) |
TCOND3: |
B3 → B2 |
(đối với tập tính năng FS1) |
TCOND4: |
B3 → B4 |
(đối với tập tính năng FS1) |
TCOND5: |
B3 → B6 |
(đối với tập tính năng FS1) |
TCOND6: |
B4 → B5 |
(đối với tập tính năng FS1) |
TCOND7: |
B5 → B4 |
(đối với tập tính năng FS1) |
TCOND8: |
B5 → B6 |
(đối với tập tính năng FS1) |
TCOND9: |
B5 → B7 |
(đối với tập tính năng FS1) |
E.1.2.4 Bước 3: Xác định các hạng mục bao phủ kiểm thử (TD3)
Đối với bao phủ nhánh, các hạng mục bao phủ kiểm thử là các nhánh trong đồ thị luồng điều khiển, hạng mục bao phủ này tương tự như các điều kiện kiểm thử. Trong ví dụ này có chín hạng mục bao kiểm thử bao phủ nhánh sau đây:
TCOVER1: B1 → B2 |
(đối với TCOND1) |
TCOVER2: B2 → B3 |
(đối với TCOND2) |
TCOVER3: B3 → B2 |
(đối với TCOND3) |
TCOVER4: B3 → B4 |
(đối với TCOND4) |
TCOVER5: B3 → B6 |
(đối với TCOND5) |
TCOVER6: B4 → B5 |
(đối với TCOND6) |
TCOVER7: B5 → B4 |
(đối với TCOND7) |
TCOVER8: B5 → B6 |
(đối với TCOND8) |
TCOVER9: B5 → B7 |
(đối với TCOND9) |
E.1.2.5 Bước 4: Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử đối với kiểm thử nhánh được xây dựng bằng cách xác định các đường con của luồng điều khiển đi đến một hoặc nhiều nhánh (các hạng mục bao phủ kiểm thử) mà chưa được thực hiện trong thời gian kiểm thử, xác định đầu vào mà thực hiện các đường con này, xác định kết quả mong đợi của mỗi bài kiểm thử, lặp đi lặp lại cho đến khi đạt được mức bao phủ kiểm thử quy định. Đối với bao phủ nhánh, bất kỳ ca kiểm thử riêng lẻ nào sẽ thực hiện một đường con và do đó có nhiều quyết định và nhiều nhánh.
Hãy xem xét một ca kiểm thử mà thực thi đường đi con của luồng điều khiển: B1 → B2 → B3 → B4 → B5 → B7. Trường hợp này chỉ xảy ra khi tên người dùng và mật khẩu hợp lệ được nhập đúng trong lần đầu tiên. Các đường đi thực hiện 5 trong 9 nhánh, đạt được độ bao phủ 56% (không giống như độ bao phủ các quyết định).
Bây giờ hãy xem xét một ca kiểm thử mà thực thi đường đi con của luồng điều khiển: B1 → B2 → B3 → B2 → B3 → B4 → B5 → B4 → B5 → B6. Đường đi này chỉ xuất hiện khi nhập tên người dùng không hợp lệ và mật khẩu không chính xác và nhập mật khẩu chính xác không không đúng thời gian quy định là 20 giây. Bây giờ tất cả các nhánh đã được bao phủ trừ nhánh B3 → B6. Nhánh này có thể được bao phủ nếu tên người dùng không hợp lệ được nhập đến ba lần trong hoặc thời gian chờ nhập mật khẩu hợp lệ quá lâu. Sau đó, tất cả các nhánh đã được bao phủ, bao gồm tất cả các quyết định. Lưu ý rằng một số điều kiện trong các quyết định không được bao phủ
Các ca kiểm thử bao phủ từng đường đi của đồ thị luồng điều khiển được trình bày trong bảng dưới đây:
Bảng E.1 - Các ca kiểm thử đối với hàm đăng nhập
Ca kiểm thử |
Đầu vào |
Đường đi |
Hạng mục bao phủ kiểm thử |
Kết quả mong đợi |
|||
Tên đăng nhập |
T/g chờ nhập
tên đăng nhập |
Mật khẩu |
T/g chờ nhập mật khẩu (giây) |
||||
1 |
Andy |
≤ 20 |
Warhol |
≤ 20 |
B1→B2→B3→B4 →B5→B7 |
TCOVER1, TCOVER2, TCOVER4, TCOVER6, TCOVER9 |
Đăng nhập được |
2 |
InVaLiD Andy |
≤ 20 ≤ 20 |
InVaLiD Warhol |
≤ 20 ≤ 21 |
B1→B2→B3→B2 →B3→B4→B5→ B4→B5→B6 |
TCOVER1, TCOVER2, TCOVER3, TCOVER4, TCOVER6, TCOVER7, TCOVER8 |
Hệ thống bị khóa |
3 |
Brandy |
≥ 21 |
|
- |
B1→B2→B3→B6 |
TCOVER1, TCOVER2, TCOVER5 |
Hệ thống bị khóa |
E.1.2.6 Bước 5: Tập hợp các bộ kiểm thử (TD5)
Vì chỉ có ba ca kiểm thử được tạo ra ở bảng trên nên có kết hợp chúng vào trong một bộ kiểm thử dưới đây:
TS1: Các ca kiểm thử 1, 2 và 3.
E.1.2.7 Bước 6: Xác định các thủ tục kiểm thử (TD6)
Vì chỉ có ba ca kiểm thử và một bộ kiểm thử nên có thể xác định được một thủ tục kiểm thử dưới đây:
TP1: Bao gồm tất cả các ca kiểm thử trong bộ kiểm thử TS1, theo thứ tự quy định trong bộ kiểm thử.
E.1.2.8 Độ bao phủ kiểm thử nhánh
Sử dụng công thức đã nêu trong Điều 6.3.2 và các hạng mục bao phủ kiểm thử được xác định ở trên, ta có:
Như vậy, độ bao phủ các hạng mục bao phủ kiểm thử nhánh đạt được là 100%
Hiệu quả bao phủ của kỹ thuật thiết kế kiểm thử
F.1 Hiệu quả bao phủ của kỹ thuật thiết kế kiểm thử
F.1.1 Hướng dẫn
Tiêu chuẩn này không cung cấp hướng dẫn về việc lựa chọn các kỹ thuật thiết kế kiểm thử hoặc điều kiện kết thúc kiểm thử, ngoại trừ những hướng dẫn được lựa chọn từ Điều 5 và 6. Lý do chính là không có sự đồng thuận về những kỹ thuật và tiêu chí mà có hiệu quả nhất. Chỉ có sự đồng thuận duy nhất là việc lựa chọn phải khác nhau vì nó phụ thuộc vào một số yếu tố như rủi ro, lĩnh vực ứng dụng và chi phí. Nghiên cứu về hiệu quả của các kỹ thuật thiết kế và kiểm thử và phương pháp tính độ bao phủ kiểm thử đã không đưa ra các kết quả rõ ràng.
Không yêu cầu nào được đưa ra khi lựa chọn các phương pháp thiết kế ca kiểm thử và các phương pháp tính độ bao phủ kiểm thử tương ứng. Các kỹ thuật thiết kế kiểm thử dựa trên đặc tả rất hiệu quả trong việc phát hiện các lỗi bỏ sót các yêu cầu (errors of omission), trong khi các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc chỉ có thể phát hiện lỗi sai yêu cầu (errors of commission). Vì vậy, bản kế hoạch kiểm thử thường yêu cầu phải sử dụng kỹ thuật phân tích giá trị biên để tạo ra một bộ các ca kiểm thử đầu tiên trong khi vẫn phải đạt được 100% độ bao phủ nhánh. Phương pháp kết hợp này có thể phải sử dụng kiểm thử nhánh để tạo ra bất kỳ ca kiểm thử bổ sung nào để đạt được bao phủ của tất cả nhánh bị bỏ qua bởi bộ các ca kiểm thử phân tích giá trị biên.
Lý tưởng là độ bao phủ kiểm thử được chọn làm điều kiện kết thúc kiểm thử sẽ đạt 100%. Các định nghĩa chặt chẽ về các mức bao phủ kiểm thử đôi khi làm cho mức độ bao phủ kiểm thử này không thể tính được, tuy nhiên các định nghĩa nêu trong Điều 6 cho phép các hạng mục bao phủ không cần tính toán mà vẫn đạt mức độ bao phủ 100%.
Với điều kiện kết thúc kiểm thử 100% (và chỉ có 100%) có thể sắp xếp chúng theo một thứ tự, nếu các tiêu chí được trình bày xếp vào hoặc bao gồm các tiêu chí khác. Một tiêu chí được xếp vào loại tiêu chí khác nếu đối với tất cả hạng mục kiểm thử và các cơ sở kiểm thử của chúng, tất cả ca kiểm thử đáp ứng các tiêu chí đầu tiên cũng sẽ đáp ứng tiêu chí thứ hai. Ví dụ, bao phủ nhánh được xếp vào loại bao phủ câu lệnh vì nếu bao phủ nhánh đạt được độ bao phủ (100%) thì độ bao phủ câu lệnh cũng sẽ đạt được độ bao phủ 100%.
Cần lưu ý rằng mối quan hệ "ghép" được mô tả ở đây liên kết chặt chẽ với các tiêu chí bao phủ kiểm thử (chứ không phải là kỹ thuật thiết kế kiểm thử) và do đó chỉ thể hiện hiệu quả tương đối của các kỹ thuật thiết kế kiểm thử.
Không phải tất cả các tiêu chí bao phủ kiểm thử có thể liên hệ với nhau bằng cách sắp xếp ghép và các tiêu chí dựa trên đặc tả và các tiêu chí dựa trên cấu trúc không liên quan gì với nhau. Sự sắp xếp thứ tự của tiêu chí bao phủ kiểm thử dựa trên cấu trúc được minh họa trong Hình F.1 dưới đây, trong đó mũi tên đi từ tiêu chí này đến tiêu chí khác chỉ ra rằng tiêu chí thứ nhất có thể ghép vào tiêu chí thứ hai. Nếu tiêu chí bao phủ kiểm thử không xuất hiện theo thứ tự thì nó không liên hệ ghép tới bất kỳ tiêu chí nào.
Hình F.1 - Sự sắp xếp thứ tự các tiêu chí bao phủ kiểm thử dựa trên cấu trúc (Reid 1996)
Mặc dù việc sắp xếp dễ hiểu nhưng mối quan hệ ghép có một số hạn chế cần được xem xét trước khi sử dụng nó để chọn lựa tiêu chí kết thúc kiểm thử:
- Thứ nhất nó chỉ liên quan đến một tập con các tiêu chí kết thúc kiểm thử có sẵn và tập con này không mang tính hiệu quả cao, vì vậy các tiêu chí khác không được trình bày trong hình trên vẫn cần được xem xét.
- Thứ hai, mối quan hệ ghép không cung cấp phương pháp mà một tiêu chí ghép với một tiêu chí khác và do đó cũng không cung cấp bất kỳ phương pháp hiệu quả có giá trị nào.
- Thứ ba, sự sắp xếp thứ tự các tiêu chí bao phủ chỉ áp dụng đối với một tiêu chí trong khi người ta khuyến cáo rằng có thể áp dụng đối với nhiều hơn một tiêu chí được sử dụng, có ít nhất một tiêu chí bao phủ kiểm thử dựa trên chức năng và một tiêu chí bao phủ kiểm thử dựa trên cấu trúc.
- Cuối cùng và quan trọng nhất, quan hệ ghép không nhất thiết phải đặt tiêu chí kết thúc kiểm thử theo khả năng xuất hiện các lỗi (hiệu quả kiểm thử của nó). Ví dụ, đối với một số hạng mục kiểm thử, để đạt được 100% độ bao phủ đường đi có thể không có hiệu quả bằng một số các tiêu chí mà nó ghép vào, chẳng hạn những tiêu chí có liên quan với luồng dữ liệu. Bởi vì một vài lỗi là nhạy cảm với số liệu và sẽ không được phát hiện ra bằng cách đơn giản là thực thi đường đi của chúng và cũng đòi hỏi các biến mang một giá trị riêng (ví dụ sự phân chia "không được bảo vệ" bởi một biến số nguyên có thể có một lỗi lớn trong một hạng mục kiểm thử mà chỉ không đạt nếu biến đó mang một giá trị âm). Việc thỏa mãn các tiêu chí luồng dữ liệu có thể tập trung việc kiểm thử vào các khía cạnh của một hành vi của một hạng mục kiểm thử, nhờ đó tăng khả năng bộc lộ những lỗi này. Người ta chỉ ra rằng trong một số trường hợp hiệu quả kiểm thử được tăng lên bằng cách kiểm thử một tập con các đường đi quy định theo một tiêu chí cụ thể nhưng thực hiện tập con này với nhiều ca kiểm thử hơn.
Các mối quan hệ ghép phụ thuộc nhiều vào định nghĩa của độ bao phủ đối với một tiêu chí, mặc dù hình trên là đúng với các định nghĩa tại Điều 5 nhưng nó không thể áp dụng cho các định nghĩa khác được sử dụng ở các phần khác.
Đối chiếu kỹ thuật thiết kế kiểm thử trong tiêu chuẩn này với BS 7925-2
Phụ lục này đối chiếu các kỹ thuật thiết kế kiểm thử của tiêu chuẩn này và tiêu chuẩn BS 7925-2
Bảng G.1 - Ánh xạ các kỹ thuật thiết kế kiểm thử trong BS 7925-2:1998 đến tiêu chuẩn này (TCVN 12849-4:2020 (ISO/IEC/IEEE 29119-4:2015))
BS 7925-2:1998 |
TCVN 12849-4:2020 (ISO/IEC/IEEE 29119-4:2015) |
||
Các kỹ thuật thiết kế kiểm thử |
|||
3.1 |
Phân vùng tương đương |
5.2.1 |
Phân vùng tương đương |
3.2 |
Phân tích giá trị biên |
5.2.3 |
Phân tích giá trị biên |
3.3 |
Kiểm thử chuyển đổi trạng thái |
5.2.8 |
Kiểm thử chuyển đổi trạng thái |
3.4 |
Đồ thị nguyên nhân - kết quả |
5.2.7 |
Đồ thị nguyên nhân - kết quả |
3.5 |
Kiểm thử cú pháp |
5.2.4 |
Kiểm thử cú pháp |
3.6 |
Kiểm thử câu lệnh |
5.3.1 |
Kiểm thử câu lệnh |
3.7 |
Kiểm thử nhánh/ kiểm thử dựa trên bảng quyết định |
5.3.2 |
Kiểm thử nhánh |
5.3.3 |
Kiểm thử dựa trên bảng quyết định |
||
3.8 |
Kiểm thử luồng dữ liệu |
5.3.7 |
Kiểm thử luồng dữ liệu |
3.9 |
Kiểm thử điều kiện nhánh |
5.3.4 |
Kiểm thử điều kiện nhánh |
3.10 |
Kiểm thử kết hợp điều nhánh |
5.3.5 |
Kiểm thử kết hợp điều nhánh |
3.11 |
Kiểm thử quyết định điều kiện kết hợp nâng cao |
5.3.6 |
Kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC) |
3.13 |
Kiểm thử ngẫu nhiên |
5.2.10 |
Kiểm thử ngẫu nhiên |
Phương pháp tính độ bao phủ kiểm thử |
|||
3.1 |
Độ bao phủ phân vùng tương đương |
6.2.2 |
Độ bao phủ phân vùng tương đương |
3.2 |
Độ bao phủ phân tích giá trị biên |
6.2.3 |
Độ bao phủ phân tích giá trị biên |
3.3 |
Độ bao phủ chuyển đổi trạng thái |
6.2.8 |
Độ bao phủ kiểm thử chuyển đổi trạng thái |
3.4 |
Độ bao phủ nguyên nhân - kết quả |
6.2.7 |
Độ bao phủ đồ thị nguyên nhân - kết quả |
3.5 |
Độ bao phủ cú pháp |
6.2.4 |
Độ bao phủ kiểm thử cú pháp |
3.6 |
Độ bao phủ câu lệnh |
6.3.1 |
Độ bao phủ kiểm thử câu lệnh |
3.7 |
Độ bao phủ quyết định và nhánh |
6.3.2 |
Độ bao phủ kiểm thử nhánh |
6.3.3 |
Độ bao phủ kiểm thử dựa trên bảng quyết định |
||
3.8 |
Độ bao phủ luồng dữ liệu |
6.3.7 |
Độ bao phủ kiểm thử luồng dữ liệu |
3.9 |
Độ bao phủ điều kiện nhánh |
6.3.4 |
Độ bao phủ kiểm thử điều kiện nhánh |
3.10 |
Độ bao phủ kết hợp điều kiện nhánh |
6.3.5 |
Độ bao phủ kiểm thử kết hợp điều nhánh |
3.11 |
Độ bao phủ quyết định điều kiện thay đổi |
6.3.6 |
Độ bao phủ kiểm thử quyết định điều kiện thay đổi (MCDC) |
3.13 |
Kiểm thử ngẫu nhiên |
6.2.10 |
Độ bao phủ kiểm thử ngẫu nhiên |
Hướng dẫn áp dụng các kỹ thuật đo và thiết kế kiểm thử |
|||
B.1 |
Phân vùng tương đương |
B.2.1 |
Phân vùng tương đương |
B.2 |
Phân tích giá trị biên |
B.2.3 |
Phân tích giá trị biên |
B.3 |
Kiểm thử chuyển đổi trạng thái |
B.2.8 |
Kiểm thử chuyển đổi trạng thái |
B.4 |
Đồ thị nguyên nhân - kết quả |
B.2.7 |
Đồ thị nguyên nhân - kết quả |
B.5 |
Kiểm thử cú pháp |
B.2.4 |
Kiểm thử cú pháp |
B.6 |
Kiểm thử câu lệnh |
C.2.1 |
Kiểm thử câu lệnh |
B.7 |
Kiểm thử nhánh/ kiểm thử dựa trên bảng quyết định |
C.2.2 |
Kiểm thử nhánh/ kiểm thử dựa trên bảng quyết định |
B.8 |
Kiểm thử luồng dữ liệu |
C.2.4 |
Kiểm thử luồng dữ liệu |
B.9 |
Kiểm thử điều kiện nhánh |
C.2.3 |
Kiểm thử điều kiện nhánh, Kiểm thử kết hợp điều nhánh và kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC) |
B.10 |
Kiểm thử kết hợp điều nhánh |
|
|
B.11 |
Kiểm thử quyết định điều kiện thay đổi |
|
|
B.13 |
Kiểm thử ngẫu nhiên |
B.2.10 |
Kiểm thử ngẫu nhiên |
Những hiệu quả của kỹ thuật kiểm thử |
|||
Phụ lục C |
Hiệu quả của các kỹ thuật kiểm thử |
Phụ lục F |
Hiệu quả bao phủ kỹ thuật kiểm thử |
Thư mục tài liệu tham khảo
[1] The Software Test Engineer's Handbook (Cẩm nang kỹ sư kiểm thử phần mềm) Bath G., & McKav J. Tập đoàn O'Reilly Media, 2008
[2] Black Box Testing, Techniques for Functional Testing of Software and Systems (Kiểm tra hộp đen, Kỹ thuật kiểm tra chức năng của phần mềm và hệ thống) của Beizer B. Tập đoàn John Wiley & Sons, 1995
[3] Non-Functional Testing (Kiểm tra phi chức năng) của Nhóm vận động đặc biệt của Hiệp hội máy tính Anh trong kiểm thử phần mềm được đánh giá ngày 7/9/2011. Trực tuyến tại http:/www.testingstandards.co.uk/non_functional_testing_techniques.htm
[4] BS 7925-2:1998 Software testing - Software component testing (Kiểm thử phần mềm - Kiểm thử thành phần phần mềm) của Viện Tiêu chuẩn Anh quốc - http:/shop.bsigroup.com/
[5] Practical Software Testing: A Process-Oriented Approach (Thực hành kiểm thử phần mềm: Cách tiếp cận quy trình đã định hướng) Burnstein I. Springer-Verlag, 2003
[6] A Practitioner’s Guide to Software Test Design (Hướng dẫn dành cho thực hành viên về thiết kế kiểm thử phần mềm) Copeland L. Tập đoàn Artech House, 2004
[7] Quality Programming (Lập trình chất lượng) Cho C.K. Wiley, 1987
[8] Testing Software Design Modelled by Finite-State Machines (Thiết kế phần mềm kiểm thử được mô hình hóa bởi các máy trạng thái hữu hạn) Chow T.S. 1978 thuộc IEEE Transactions on Software Engineering, Vol. SE-4(3).
[9] Systematic Software Testing (Kiểm thử phần mềm có hệ thống) Craig R., & Jaskiel S. Tập đoàn Artech House, 2002
[10] Software Testing: Principles and Practices (Kiểm thử phần mềm: Nguyên tắc và thông lệ) Desikan S.,& Ramesh G. Pearson Education, 2007
[11] Combination Testing Strategies: A Survey (Chiến lược kiểm thử kết hợp: Khảo sát) Grindal M., Offutt J., Andler S. 2005. trong Kiểm tra phần mềm, xác minh và độ tin cậy, John Wiley & Sons Ltd., 15, trang 167-199.
[12] Classification Trees for Partition Testing (Cây phân loại để kiểm tra phân vùng) GROCHTMANN. M. and Grimm, K. trong Kiểm tra phần mềm, xác minh và độ tin cậy, John Wiley & Sons Ltd trang 63-82, 1993
[13] Guide to Advanced Software Testing (Hướng dẫn kiểm thử phần mềm nâng cao) Jonasen Hass A.M. tập đoàn Artech House, 2008
[14] ISO/IEC TR 19759:2015 Software Engineering - Guide to the Software Engineering Body of Knowledge (SWEBOK) (Kỹ thuật phần mềm - Hướng dẫn cho Tổ chức/cơ quan kỹ thuật phần mềm về sự thông hiểu)
[15] ISO/IEC 25010:2011 Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models (Kỹ thuật hệ thống và phần mềm - Đánh giá và yêu cầu chất lượng cho hệ thống và phần mềm (SQuaRE) - Mô hình chất lượng cho hệ thống và phần mềm)
[16] ISO/IEC 25030:2019, Software engineering - Software product Quality Requirements and Evaluation (SQuaRE) - Quality requirements (Kỹ thuật hệ thống và phần mềm - Đánh giá và yêu cầu chất lượng cho hệ thống và phần mềm (SQuaRE) - Các yêu cầu chất lượng)
[17] Testing Computer Software (Kiểm thử phần mềm máy tính) Kaner C. Tập đoàn TAB Books, 1998
[18] The C Programming Language (Ngôn ngữ lập trình C) Kernighan B.W., & Richie D.M. Prentice-Hall Software Series, 1998
[19] Software Testing in the Real World: Improving the Process (Kiểm thử phần mềm trong thực tế: Nâng cao quy trình) Kit E. ACM Press, 1995
[20] Orthogonal Latin Squares: An Application of Experiment Design to Compiler Testing (Hình vuông Latin trực giao: Một ứng dụng của thiết kế thử nghiệm để kiểm tra trình biên dịch) Mandl R. Commun. ACM. 1985, 28 (10) Trang 1054-1058
[21] The Art of Software Testing (Kỹ thuật kiểm thử phần mềm) Myers G. Tập đoàn John Wiley & Sons, 1979
[22] Cause-Effect Graphing Analysis and Validation of Requirements (Phân tích đồ thị Nguyên nhân-Kết quả và xác nhận các yêu cầu) Nursimulu K., & Probert R.L. Trong kỷ yếu của CASCON năm 1995.
[23] RTCA/DO-178C Software Considerations in Airborne Systems and Equipment Certification (Xem xét phần mềm trong chứng nhận hệ thống và thiết bị trên không) Tập đoàn RTCA, 2011.
[24] Popular Misconceptions in Module Testing (Những quan niệm sai lầm phổ biến trong kiểm thử mô-đun) Reid S. 1996 trong Kỷ yếu hội thảo kiểm thử phần mềm (STC), Washington DC.
Mục lục
Lời giới thiệu
1 Phạm vi áp dụng
2 Đánh giá sự phù hợp
2.1 Mục đích sử dụng
2.2 Sự phù hợp hoàn toàn
2.3 Sự phù hợp có sửa đổi
3 Tài liệu viện dẫn
4 Thuật ngữ và định nghĩa
5 Các kỹ thuật thiết kế kiểm thử
5.1 Tổng quan
5.2 Các kỹ thuật kiểm thử dựa trên đặc tả
5.2.1 Phân vùng tương đương
5.2.2 Phương pháp cây phân loại
5.2.3 Phân tích giá trị biên
5.2.4 Kiểm thử cú pháp
5.2.5 Các kỹ thuật thiết kế kiểm thử tổ hợp
5.2.6 Kiểm thử bảng quyết định
5.2.7 Đồ thị nguyên nhân - kết quả
5.2.8 Kiểm thử chuyển đổi trạng thái
5.2.9 Kiểm thử kịch bản
5.2.10 Kiểm thử ngẫu nhiên
5.3 Các kỹ thuật kiểm thử dựa trên cấu trúc
5.3.1 Kiểm thử câu lệnh
5.3.2 Kiểm thử nhánh
5.3.3 Kiểm thử quyết định
5.3.4 Kiểm thử điều kiện nhánh
5.3.5 Kiểm thử kết hợp điều kiện nhánh
5.3.6 Kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC)
5.3.7 Kiểm thử luồng dữ liệu
5.4 Các kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm
5.4.1 Đoán lỗi
6 Tính độ bao phủ kiểm thử
6.1 Tổng quan
6.2 Tính độ bao phủ các kỹ thuật thiết kế kiểm thử dựa trên đặc tả
6.2.1 Độ bao phủ kỹ thuật phân vùng tương đương
6.2.2 Độ bao phủ phương pháp cây phân loại
6.2.3 Độ bao phủ kỹ thuật phân tích giá trị biên
6.2.4 Độ bao phủ kiểm thử cú pháp
6.2.5 Độ bao phủ kỹ thuật thiết kế kiểm thử tổ hợp
6.2.6 Độ bao phủ kiểm thử bảng quyết định
6.2.7 Độ bao phủ kiểm thử đồ thị nguyên nhân - kết quả
6.2.8 Độ bao phủ kiểm thử chuyển đổi trạng thái
6.2.9 Độ bao phủ kiểm thử kịch bản
6.2.10 Độ bao phủ kiểm thử ngẫu nhiên
6.3 Tính độ bao phủ các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc
6.3.1 Độ bao phủ câu lệnh
6.3.2 Độ bao phủ kiểm thử nhánh
6.3.3 Độ bao phủ kiểm thử quyết định
6.3.4 Độ bao phủ kiểm thử điều kiện nhánh
6.3.5 Độ bao phủ kiểm thử kết hợp điều kiện nhánh
6.3.6 Độ bao phủ kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC)
6.3.7 Độ bao phủ kiểm thử luồng dữ liệu
6.4 Tính độ bao phủ kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm
6.4.1 Độ bao phủ đoán lỗi
Phụ lục A (Tham khảo) Các đặc tính chất lượng kiểm thử
Phụ lục B (Tham khảo) Hướng dẫn và ví dụ về việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên đặc tả
Phụ lục C (Tham khảo) Hướng dẫn và ví dụ về việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc
Phụ lục D (Tham khảo) Hướng dẫn và ví dụ về việc áp dụng các kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm
Phụ lục E (Tham khảo) Hướng dẫn và ví dụ về việc áp dụng các kỹ thuật thiết kế kiểm thử thay thế cho nhau
Phụ lục F (Tham khảo) Hiệu quả bao phủ của kỹ thuật thiết kế kiểm thử
Phụ lục G (Tham khảo) Đối chiếu kỹ thuật thiết kế kiểm thử trong tiêu chuẩn này với BS 7925-2
Thư mục tài liệu tham khảo
Ý kiến bạn đọc
Nhấp vào nút tại mỗi ô tìm kiếm.
Màn hình hiện lên như thế này thì bạn bắt đầu nói, hệ thống giới hạn tối đa 10 giây.
Bạn cũng có thể dừng bất kỳ lúc nào để gửi kết quả tìm kiếm ngay bằng cách nhấp vào nút micro đang xoay bên dưới
Để tăng độ chính xác bạn hãy nói không quá nhanh, rõ ràng.