Kiểm thử đường (path testing)

Một phần của tài liệu Bài giảng công nghệ phần mềm học viện nông nghiệp việt nam (Trang 161 - 162)

D) CÁC CÁCH BIỂU DIỄN CỦA MÔ HÌNH PHÂN TÍCH

f. Đặc tả giao diện đối tượng

7.4.4. Kiểm thử đường (path testing)

Kiểm thử đường là một chiến lược kiểm thử cấu trúc với mục tiêu thực thi tất cả các đường trong một thành phần hoặc một chương trình. Trước tiên, mọi đường độc lập đều được thực thi, sau đó tất cả các câu lệnh trong thành phần phải được thực thi ít nhất một lần. Hơn nữa, tất cả các điều kiện cũng đều phải được kiểm thử với hai trường hợp đúng và sai.

Trong tiến trình phát triển hướng đối tượng, kiểu kiểm thử này cũng có thể được sử dụng để kiểm thử việc thực thi các phương thức của đối tượng. Số lượng đường độc lập trong một chương trình thường cân xứng với kích thước của nó. Khi một module được tích hợp vào trong hệ thống, nó trở nên khó sử dụng phương pháp kiểm thử cấu trúc. Kỹ thuật kiểm thử đường được sử dụng nhiều khi kiểm thử đơn vị.

Kiểm thử đường không kiểm thử tất cả những kết hợp có thể của các thành phần trong chương trình. Đối với bất kỳ thành phần nào ngoài thành phần thông thường không có vòng lặp,

thì điều này là không khả thi vì có vô số đường kết hợp có thể trong một chương trình có lặp. Thậm chí khi tất cả các câu lệnh của chương trình đều đã được thực thi ít nhất một lần, lỗi của chương trình vẫn có thể xuất hiện khi kết hợp các đường riêng biệt.

Điểm bắt đầu của kiểm thử đường là sơ đồ luồng chương trình, đó là một mô hình khung của tất cả các đường trong chương trình. Một đồ thị luồng bao gồm các điểm biểu diễn các lệnh và đường mũi tên biểu diễn luồng điều khiển. Đồ thị luồng được xây dựng từ việc thay thế các lệnh điều khiển trong chương trình bởi các lược đồ tương đương. Nếu không có lệnh goto trong chương trình, việc xây dựng lược đồ này khá đơn giản. Mỗi nhánh của câu lệnh rẽ nhánh (if/case) là một đường riêng biệt. Một mũi tên lặp để chỉ tới điều kiện trong câu lệnh lặp. Sơ đồ của giải thuật tìm kiếm nhị phân được biểu diễn trong hình 7.15, nó tương đương với giải thuật được biểu diễn trong hình 7.14.

Mục tiêu của kiểm thử đường là đảm bảo rằng mỗi đường chạy qua chương trình được thực thi ít nhất một lần. Các đường độc lập là đường có ít nhất một cạnh mới trong đồ thị. Cả các

nhánh điều kiện đúng và điều kiện sai đều phải được thực thi.

Đồ thị cho giải thuật tìm kiếm được biểu diễn trong hình 7.15, mỗi đỉnh của đồ thị biểu diễn một câu lệnh thực thi. Ta có thể tìm thấy các đường trong chương trình tìm kiếm nhị phân theo sơ đồ trên:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14 1, 2, 3, 4, 5, 14

1, 2, 3, 4, 5, 6, 7, 11, 12, 5… 1, 2, 3, 4, 6, 7, 2, 11, 13, 5…

Nếu tất cả các đường được thực thi, chúng ta có thể chắc chắn rằng mọi lệnh trong phương thứcđã được thực hiện ít nhất một lần. Và mỗi nhánh được thực thi với cả hai điều kiện: đúng và sai. Thông thường, ta có thể tính toán được số lượng các đường độc lập trong chương trình thông qua luồng đồ thị của chươngtrình. Tuy nhiên, khi chương trình có cấu trúc rẽ nhánh phức tạp, rất khó xác định được số trường hợp kiểm thử đã được thực hiện. Khi đó, có thể sử dụng các công cụ kiểm thử tự động để phát hiện ra cách thức thực thi thực sự của chương trình.

Các công cụ kiểm thử tự động cùng làm việc với trình biên dịch. Trong lúc biên dịch, người phân tích có thể thêm các chỉ thị phụ để sinh ra mã. Chúng đếm số lần mỗi câu lệnh đã được thực hiện. Sau khi chương trình đã thực hiện, một bản phác thảo thực thi có thể được in ra.

Nó chỉ ra những phần chương trình đã được thực thi và chưa được thực thi bằng cách sử dụng các trường hợp kiểm thử đặc biệt. Qua đó có thể phát hiện ra những phần chương trình chưa được thực thi.

Một phần của tài liệu Bài giảng công nghệ phần mềm học viện nông nghiệp việt nam (Trang 161 - 162)

Tải bản đầy đủ (PDF)

(183 trang)