Các nội dung sẽ xuất hiện trong bài thi ISTQB Foundation (CTFL)
- Mô tả khái niệm và tầm quan trọng của bao phủ code (code coverage). (K2)
- Giải thích các khái niệm vềđộ bao phủ dòng lệnh (statement coverage) và độ bao phủ quyết định (decision coverage) và hiểu rằng các khái niệm này cũng có thể được sử dụng ở các cấp độ kiểm thử khác ngoài kiểm thử thành phần (ví dụ: về quy trình nghiệp vụ ở cấp độ hệ thống). (K2)
- Viết các kịch bản kiểm thử từ các luồng điều khiển đã cho bằng cách sử dụng các kỹ thuật thiết kế kiểm thử sau: a) độ bao phủ dòng lệnh; b) độ bao phủ quyết định. (K3)
- Đánh giá mức độ đầy đủ của độ bao phủ dòng lệnh và độ bao phủ quyết định. (K3)
Trong phần này, chúng ta sẽ xem xét chi tiết về khái niệm độ bao phủ và cách mà nó có thể được sử dụng để đo lường các khía cạnh của sự tỉ mỉ của việc kiểm thử. Để xem cách mà độ bao phủ thực sự hoạt động như thế nào, ta sẽ sử dụng một số ví dụ ở cấp độ code (mặc dù mức độ phù hợp cũng áp dụng cho các cấp độ khác, chẳng hạn như thủ tục nghiệp vụ). Cụ thể, chúng ta sẽ chỉ ra cách đo mức độ bao phủ của các câu lệnh và độ bao phủ quyết định cũng như cách viết các trường hợp kiểm thử để mở rộng mức độ bao phủ nếu nó không phải là 100%. Các nguyên tắc tương tự áp dụng cho độ bao phủ của các hạng mục phạm vi cấp hệ thống, ví dụ như các hạng mục menu.
Các thuật ngữ được sử dụng trong phần này: bao phủ code (code coverage), bao phủ quyết định (decision coverage), bao phủ câu lệnh (statement coverage), kiểm thử cấu trúc (structural testing), kiểm thử dựa trên cấu trúc (structure-based) và kiểm thử hộp trắng (white-box testing).
SỬ DỤNG CÁC KỸ THUẬT DỰA TRÊN CẤU TRÚC ĐỂ ĐO ĐỘ BAO PHỦ VÀ KIỂM THỬ THIẾT KẾ
Các kỹ thuật dựa trên cấu trúc phục vụ hai mục đích: đo lường phạm vi kiểm thử và thiết kế trường hợp kiểm thử cấu trúc. Chúng thường được sử dụng đầu tiên để đánh giá số lượng kiểm thử được thực hiện bởi các kiểm thử bắt nguồn từ các kỹ thuật dựa trên đặc tả kỹ thuật, tức là để đánh giá mức độ phù hợp. Sau đó, chúng được sử dụng để thiết kế các bài kiểm thử bổ sung với mục đích tăng phạm vi kiểm thử.
Các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc (Structure-based test design techniques) là một cách tốt để tạo các trường hợp kiểm thử bổ sung khác với các kiểm thử hiện có. Chúng có thể giúp đảm bảo phạm vi kiểm thử rộng hơn, theo nghĩa là các trường hợp kiểm thử đạt được mức độ phù hợp 100% trong bất kỳ biện pháp nào sẽ thực hiện tất cả các phần của phần mềm theo quan điểm của các mục được kiểm thử.
Độ bao phủ kiểm thử là gì?
Độ bao phủ kiểm thử đo lường (theo một số cách cụ thể) số lượng kiểm thử được thực hiện bởi một tập hợp các kiểm thử (bắt nguồn từ một số cách khác, ví dụ: sử dụng các kỹ thuật dựa trên đặc tả kỹ thuật). Bất cứ nơi nào chúng ta có thể đếm mọi thứ và có thể biết liệu từng thứ đó đã được kiểm thử bằng một sốbài kiểm thử hay chưa, thì chúng ta có thể đo lường mức độ bao phủ. Đo lường độ bao phủ cơ bản là
Trong đó “độ bao phủ” là bất cứ thứ gì có thể đếm và xem liệu một bài kiểm thử đã thực hiện hoặc sử dụng mục này hay chưa.
Có nguy hiểm trong việc sử dụng đo độ bao phủ. Bao phủ 100% không có nghĩa là đã kiểm thử 100%! Các kỹ thuật bao quát chỉ đo lường một chiều của một khái niệm đa chiều. Hai trường hợp kiểm thử khác nhau có thể đạt được mức độ phù hợp chính xác như nhau nhưng dữ liệu đầu vào của một trường hợp có thể tìm thấy lỗi mà dữ liệu đầu vào của trường hợp kia không tìm thấy.
Một nhược điểm của phép đo mức độ bao phủ của code là nó đo mức độ bao phủ của những gì đã được viết, tức là bản thân code đó; nó không thể nói bất cứ điều gì về phần mềm chưa được viết. Nếu một chức năng được chỉ định chưa được triển khai, các kỹ thuật kiểm thử dựa trên đặc tả kỹ thuật sẽ tiết lộ điều này. Nếu một chức năng bị bỏ qua trong đặc tả, thì các kỹ thuật dựa trên kinh nghiệm có thể tìm thấy nó. Nhưng các kỹ thuật dựa trên cấu trúc chỉ có thể nhìn vào một cấu trúc đã có sẵn ở đó.
Các loại bao phủ
Độ bao phủ kiểm thử có thể được đo lường dựa trên một số yếu tố cấu trúc khác nhau trong một hệ thống hoặc thành phần. Độ bao phủ có thể được đo lường ở cấp độ kiểm thử thành phần, cấp độ kiểm thử tích hợp hoặc ở cấp độ kiểm thử hệ thống hoặc kiểm thử chấp nhận.
Ví dụ: ở cấp độ hệ thống hoặc mức độ chấp nhận, các mục bao phủ có thể là yêu cầu, tùy chọn menu, màn hình hoặc các giao dịch kinh doanh điển hình. Đo độ bao phủ khác bao gồm những thứ như các thành phần cấu trúc cơ sở dữ liệu (bản ghi, trường và trường con) và tệp (file). Việc kiểm tra các công cụ mới là rất đáng giá vì thị trường công cụ kiểm thử đang phát triển khá nhanh.
Ở cấp độ tích hợp, có thể đo độ bao phủ của các giao diện hoặc các tương tác cụ thể đã được kiểm thử. Độ bao phủ của mô-đun (module), đối tượng (object) hoặc thủ tục (procedure) cũng có thể được đo lường (và được hỗ trợ bởi các công cụ ở một mức độ nào đó).
Có thể đo độ bao phủ cho từng kỹ thuật dựa trên đặc tả kỹ thuật:
- EP: tỷ lệ phần trăm của các phân vùng tương đương được thực hiện (có thể đo lường riêng biệt phạm vi phân vùng hợp lệ và không hợp lệ nếu điều này hợp lý)
- BVA: phần trăm ranh giới được thực hiện (cũng có thể tách ranh giới hợp lệ và không hợp lệ nếu muốn)
- Các bảng quyết định: tỷ lệ phần trăm các quy tắc nghiệp vụ hoặc các cột trong bảng quyết định được kiểm thử
- Kiểm thử chuyển đổi trạng thái: có một số biện pháp bảo hiểm khả thi:
- Tỷ lệ các trạng thái được truy cập.
- Tỷ lệ phần trăm chuyển đổi (hợp lệ) được thực hiện (điều này được gọi là độ bao phủ 0-switch của Chow)
- Tỷ lệ phần trăm các cặp chuyển đổi hợp lệ được thực hiện (“cặp chuyển đổi” hoặc độ bao phủ 1-switch của Chow), và chuỗi chuyển đổi dài hơn, chẳng hạn như chuyển đổi bộ ba, bộ bốn….
- Tỷ lệ chuyển đổi không hợp lệ được thực hiện (từ bảng trạng thái)
Bản gốc Tiếng Anh các bạn có thể Tải về Tại đây