Đánh giá và so sánh kỹ thuật ma trận đồ thị với một số kỹ thuật thiết

Một phần của tài liệu (LUẬN văn THẠC sĩ) kỹ thuật ma trận đồ thị trong phương pháp kiểm thử hộp trắng (Trang 74 - 76)

6. Bố cục của luận văn:

3.4.Đánh giá và so sánh kỹ thuật ma trận đồ thị với một số kỹ thuật thiết

kế ca kiểm thử khác

Kỹ thuật ma trận kiểm thử là một trong những kỹ thuật kiểm thử hộp trắng. Ma trận kiểm thử được sử dụng như một dữ liệu có cấu trúc để kiểm tra các con đường cơ bản: số đường đi qua nút (có thể tính cả trọng số của chúng). Ma trận kiểm thử là một công cụ mạnh trong việc đánh giá cấu trúc điều khiển chương trình.

Thứ nhất, về mặt kỹ thuật, kỹ thuật ma trận kiểm thử có những ưu thế

nổi trội sau:

- So với kỹ thuật đồ thị dòng, tận dụng được những tính năng đặc trưng của kỹ thuật đồ thị dòng là “kiểm thử đường cơ sở”. Chúng ta biết rằng phương pháp đường cơ sở giúp cho người thiết kế trường hợp kiểm thử có thể suy dẫn ra một cách đo độ phức tạp logic của thiết kế thủ tục và dùng cách đo này như một hướng dẫn để xác định một tập cơ sở các đường thực hiện. Các trường hợp kiểm thử được suy dẫn ra để thực hiện một tập cơ sở, được đảm bảo để thực hiện mọi câu lệnh trong chương trình ít nhất một lần trong khi kiểm thử. Mỗi kết cấu có cấu trúc theo triết lý lập trình có cấu trúc như sequence, if, while, until, case đều có một cú pháp đơn giản thể hiện. Như vậy, kỹ thuật ma trận đồ thị thực chất cũng là một kỹ thuật dựa trên cấu trúc điều khiển của chương trình. Từ đó tính được độ phức tạp V(G) và xác định được các đường kiểm thử cụ thể.

Bên cạnh đó, kỹ thuật ma trận kiểm thử đã khắc phục được hạn chế rất lớn của kỹ thuật đồ thị dòng là việc xác định miền phẳng kín trên đồ thị dòng

rất khó tự động hóa (mặc dù thực hiện bằng tay lại rất trực quan và dễ). Điều này gây trở ngại lớn cho việc lập trình.

- So với kỹ thuật điều kiện logic, bao phủ được điều kiện logic, nó đỡ phức tạp hơn vì không phải phân tích các kiểu sai và điều kiện phức hợp cấu thành từ hơn một điều kiện đơn nhờ các toán tử Bool.

- So với kỹ thuật kiểm thử phân nhánh, nó vẫn kiểm thử được từng điều kiện trong chương trình. Giống như kiểm thử nhánh, việc thực hiện vẫn theo nguyên tắc: với mỗi điều kiện phức hợp C, thì với mỗi nhánh “true” và “false” của C, mỗi điều kiện đơn trong C phải được kiểm thử ít nhất một lần.

- So với kỹ thuật kiểm thử miền, nó cũng quan tâm đến kiểm thử nhánh và toán tử quan hệ, dùng “ràng buộc điều kiện làm điều kiện cần thử” để phát hiện sai ở nhánh và toán tử khi xảy ra 1 lần và không có biến chung.

- So với kỹ thuật kiểm thử điều khiển theo dòng dữ liệu, nó duyệt toàn bộ chứ không chỉ tuyển chọn các đoạn đường của chương trình tương ứng nhằm định vị việc xác định biến và sử dụng biến trong chương trình. Với chiến lược theo dòng dữ liệu, chương trình được kiểm soát phần lớn trạng thái.

Thứ hai, về mặt thiết kế ca kiểm thử, kỹ thuật ma trận đồ thị dựa vào ý tưởng phương pháp bao phủ câu lệnh bao gồm cả bao phủ quyết định/điều kiện, thực hiện đủ các ca kiểm thử mà mỗi điều kiện trong một quyết định thực hiện trên tất cả các kết quả có thể ít nhất 1 lần và mỗi điểm vào được gọi ít nhất 1 lần, và bao phủ đa điều kiện, viết đủ các ca kiểm thử mà tất cả những sự kết hợp của các kết quả điều kiện có thể trong mỗi quyết định, và tất cả các điểm vào phải được gọi ít nhất 1 lần. So với một số kỹ thuật thiết kế ca kiểm thử khác, nó có những ưu thế nhất định.

- So với kỹ thuật phân lớp tương đương, nó không bỏ sót một ca kiểm thử có lợi nào.

- So với kỹ thuật phân tích giá trị biên, nó không đòi hỏi yêu cầu óc sáng tạo cao và lượng chuyên môn hóa nhất định cũng như đòi hỏi tính kinh nghiệm cao.

- So với kỹ thuật đồ thị nguyên nhân – kết quả, nó không cần khảo sát đầu vào. Việc kiểm tra sự kết hợp đầu vào không phải là một nhiệm vụ đơn giản, thường là rất lớn, dễ có thể dẫn tới việc kiểm thử không có hiệu quả, mất thời gian do số lượng các ca kiểm thử rất lớn. Bên cạnh đó, kỹ thuật đồ thị nguyên nhân – kết quả cũng gặp khó khăn trong việc chuyển đổi đồ thị thành bảng quyết định, tức là không có tính thuật toán, khó có thể tự động hóa nó bằng việc viết một chương trình.

- So với kỹ thuật đoán lỗi, nó không yêu cầu một quy trình có tính trực giác cao, không cần liệt kê những trường hợp đặc biệt đó mà có thể đã bị bỏ sót khi chương trình được thiết kế.

Tất nhiên mỗi kỹ thuật có thể đóng góp một tập riêng các ca kiểm thử hữu dụng, nhưng không cái nào trong số chúng tự nó đóng góp một tập trọn vẹn các ca kiểm thử.

Một phần của tài liệu (LUẬN văn THẠC sĩ) kỹ thuật ma trận đồ thị trong phương pháp kiểm thử hộp trắng (Trang 74 - 76)