Đo độ bao phủ cho các kỹ thuật dựa trên đặc tả kỹ thuật sẽ áp dụng ở bất kỳ cấp độ kiểm thử nào mà kỹ thuật đó đã được sử dụng (ví dụ: cấp độ hệ thống hoặc thành phần).
Khi BA (người phân tích nghiệp vụ), người kiểm thử hệ thống hoặc người dùng thảo luận về độ bao phủ, nó rất có thể đề cập đến tỷ lệ phần trăm các yêu cầu đã được kiểm thử bằng một tập hợp các kiểm thử. Điều này có thể được đo bằng một công cụ như công cụ quản lý yêu cầu hoặc công cụ quản lý kiểm thử.
Tuy nhiên, khi các lập trình viên thảo luận về mức độ bao phủ, họ rất có thể đề cập đến mức độ bao phủ của code, trong đó các phần tử cấu trúc có thể được xác định bằng một công cụ, vì có công cụ hỗ trợ tốt để đo mức độ bao phủ của code (code coverage). Chúng ta sẽ bao phủ về độ bao phủ dòng lênh và bao phủ quyết định.
Kết quả của các dòng lệnh và quyết định đều là những cấu trúc có thể được đo lường bằng code và có công cụ hỗ trợ tốt cho các biện pháp bao phủ này. Bao phủ code thường được thực hiện trong kiểm thử thành phần và kiểm thử tích hợp thành phần. Nếu ai đó tuyên bố đã đạt được mức độ bao phủ của code, thì điều quan trọng là phải thiết lập chính xác những yếu tố nào của code đã được bao phủ, vì mức độ bao phủ của câu lệnh thường yếu hơn đáng kể so với mức độ bao phủ của quyết định hoặc một số biện pháp bao phủ code khác.
Làm thế nào để đo độ bao phủ
Đối với hầu hết các mục đích thực tế, đo độ bao phủ là thứ cần có công cụ hỗ trợ. Tuy nhiên, kiến thức về các bước thường được thực hiện để đo mức độ bao phủ là hữu ích trong việc hiểu giá trị tương đối của từng kỹ thuật. Ví dụ của chúng ta giả định một công cụ đo độ bao phủ xâm nhập mà thay đổi code bằng cách thêm thiết bị:
- Quyết định yếu tố cấu trúc sẽ được sử dụng, tức là các mục bao phủ sẽ được tính.
- Đếm các phần tử cấu trúc hoặc hạng mục.
- Dụng cụ code.
- Chạy các bài kiểm thử cần đo độ bao phủ cần thiết.
- Sử dụng đầu ra từ thiết bị, xác định tỷ lệ phần trăm của các thành phần hoặc hạng mục được thực hiện.
Mã hóa code (bước 3) ngụ ý thêm code bên cạnh từng phần tử cấu trúc để ghi lại khi phần tử cấu trúc đó đã được thực hiện. Việc xác định biện pháp bao phủ thực tế (bước 5) là vấn đề của phân tích thông tin được ghi lại.
Đo độ bao phủ của mã được thực hiện tốt nhất bằng cách sử dụng các công cụ (như được mô tả trong Chương 6) và có một số công cụ như vậy trên thị trường. Những công cụ này có thể giúp tăng chất lượng và năng suất kiểm thử. Chúng tăng chất lượng bằng cách đảm bảo rằng nhiều khía cạnh cấu trúc hơn được kiểm thử, do đó có thể tìm thấy lỗi trên các đường dẫn cấu trúc đó. Chúng tăng năng suất và hiệu quả bằng cách làm nổi bật lên các bài kiểm thử mà có thể dư thừa, tức là kiểm thử cấu trúc giống như các bài kiểm thử khác (mặc dù điều này không nhất thiết là điều xấu, vì chúng ta có thể tìm thấy lỗi khi kiểm thử cùng một cấu trúc với dữ liệu khác).
Tương tự như tất cả các kỹ thuật kiểm thử dựa trên cấu trúc, các kỹ thuật bao phủ code được sử dụng tốt nhất trên các vùng mã phần mềm mà yêu cầu kiểm thử kỹ lưỡng hơn. Code an toàn quan trọng; code quan trọng cho việc hoạt động chính xác của hệ thống và các đoạn code phức tạp đều là ví dụ về các kỹ thuật dựa trên cấu trúc đặc biệt đáng áp dụng. Ví dụ: DO178-B [RTCA] yêu cầu độ bao phủ cấu trúc đối với một số loại hệ thống nhất định sẽ được quân đội sử dụng. Các kỹ thuật bao phủ cấu trúc phải luôn được sử dụng cùng với các kỹ thuật kiểm thử dựa trên đặc tả kỹ thuật và dựa trên kinh nghiệm hơn là một phương pháp thay thế cho chúng.
Thiết kế trường hợp kiểm thử dựa trên cấu trúc
Nếu bạn đang hướng đến một mức độ bao phủ nhất định (ví dụ 95%) nhưng chưa đạt được mục tiêu của mình (ví dụ: bạn chỉ đạt được 87% cho đến hiện tại), thì các trường hợp kiểm thử bổ sung có thể được thiết kế với mục đích thực hiện một số hoặc tất cả các yếu tố kết cấu chưa đạt. Đây là thiết kế kiểm thử dựa trên cấu trúc. Các kiểm thử mới này sau đó được chạy qua mã công cụ và một phép đo độ bao phủ mới được tính toán. Điều này được lặp lại cho đến khi đạt được độ bao phủ cần thiết (hoặc cho đến khi bạn quyết định rằng mục tiêu của mình quá tham vọng!). Lý tưởng nhất là tất cả các bài kiểm thử phải được chạy lại trên mã không có công cụ.
Chúng ta sẽ xem xét một số ví dụ về độ bao phủ và thiết kế kiểm thử dựa trên cấu trúc cho kiểm thử trên dòng lệnh và quyết định bên dưới.
Bản gốc Tiếng Anh các bạn có thể Tải về Tại đây