Kiểm thử đường dẫn và kiểm thử đường dẫn cơ bản trong phần mềm kèm ví dụ.

⚡ Tóm tắt thông minh

Kiểm thử đường dẫn cơ sở (Basis Path Testing) là một kỹ thuật hộp trắng, tạo ra các trường hợp kiểm thử từ các đường dẫn logic trong chương trình, sử dụng đồ thị luồng điều khiển và độ phức tạp chu trình để tìm tập hợp đường dẫn độc lập tối thiểu.

  • 4 Ý tưởng cốt lõi: Các trường hợp kiểm thử được tạo ra từ cấu trúc mã nguồn chứ không phải từ tài liệu yêu cầu.
  • 🔢 Bốn bước: Vẽ đồ thị luồng điều khiển, tính độ phức tạp chu trình, suy ra tập cơ sở, viết một phép thử cho mỗi đường dẫn.
  • 📐 Số lượng trường hợp kiểm thử: Số lượng đường đi độc lập bằng độ phức tạp chu trình, từ đó đưa ra một mục tiêu cụ thể.
  • 🔄 Phương pháp kết hợp: Nó kết hợp kiểm thử nhánh và kiểm thử đường dẫn để đạt được độ bao phủ tối đa với số lượng kiểm thử tối thiểu.
  • Đảm bảo phạm vi bảo hiểm: Việc thực thi tập lệnh cơ sở sẽ chạy mọi câu lệnh trong mô-đun ít nhất một lần.
  • ⚠️ Giới hạn đã biết: Nó không thể tìm ra các yêu cầu còn thiếu, bởi vì nó chỉ kiểm tra mã đã tồn tại.

Kiểm thử đường dẫn Cơ sở kiểm thử đường dẫn

Kiểm tra đường dẫn trong kiểm thử phần mềm là gì?

Kiểm tra đường dẫn là một phương pháp kiểm tra cấu trúc bao gồm việc sử dụng mã nguồn của chương trình để tìm mọi đường dẫn có thể thực thi được. Nó giúp xác định tất cả các lỗi nằm trong một đoạn mã. Phương pháp này được thiết kế để thực hiện tất cả hoặc đường dẫn đã chọn thông qua một chương trình máy tính.

Bất kỳ chương trình phức tạp nào cũng chứa nhiều đường dẫn thực thi khả thi. Việc kiểm thử từng đường dẫn một vừa khó khăn vừa tốn thời gian, và hầu hết chúng đều chồng chéo nhau. Kiểm thử đường dẫn cơ sở giúp giảm sự trùng lặp đó bằng cách xác định tập hợp các đường dẫn nhỏ nhất mà vẫn thực thi mọi câu lệnh và mọi nhánh ít nhất một lần.

Kiểm tra đường dẫn cơ bản trong công nghệ phần mềm

Kiểm tra đường dẫn cơ bản trong công nghệ phần mềm là một trắng Box Kiểm tra phương pháp trong đó các trường hợp kiểm thử được xác định dựa trên các luồng hoặc đường dẫn logic có thể được thực hiện thông qua chương trình. Mục tiêu của kiểm thử đường dẫn cơ sở là xác định số lượng đường dẫn độc lập, do đó số lượng trường hợp kiểm thử cần thiết có thể được xác định rõ ràng để tối đa hóa phạm vi kiểm thử.

In kỹ thuật phần mềm, Kiểm thử đường dẫn cơ sở bao gồm việc thực hiện tất cả các khối có thể có trong một chương trình và đạt được phạm vi bao phủ đường dẫn tối đa với số lượng trường hợp kiểm thử ít nhất. Nó là một phương pháp kết hợp giữa phương pháp thử nghiệm nhánh và thử nghiệm đường dẫn.

Một ví dụ đơn giản sẽ làm cho ý tưởng trở nên cụ thể hơn.

Kiểm tra đường dẫn cơ bản trong công nghệ phần mềm

Sơ đồ luồng ở trên chứa các câu lệnh điều kiện, do đó hệ thống điều khiển có thể đến lối ra bằng nhiều con đường khác nhau. Cần ba đường dẫn độc lập để bao phủ lối ra này:

  • Đường 1: 1,2,3,5,6, 7
  • Đường 2: 1,2,4,5,6, 7
  • Đường 3: 1, 6, 7

Cách vẽ biểu đồ lưu lượng điều khiển

Mỗi bước trong quá trình kiểm thử đường dẫn cơ sở đều phụ thuộc vào đồ thị luồng điều khiển, vì vậy cần phải chính xác về cách xây dựng đồ thị đó.

  • Nút: Một chuỗi các câu lệnh luôn được thực thi cùng nhau, được vẽ dưới dạng một vòng tròn. Một chuỗi các câu lệnh không có nhánh rẽ sẽ thu gọn lại thành một nút duy nhất.
  • Cạnh: Sự chuyển giao quyền điều khiển từ nút này sang nút khác, được thể hiện bằng mũi tên. Các cạnh là con đường duy nhất để quyền điều khiển di chuyển.
  • Nút vị ngữ: Một nút chứa điều kiện, với hai hoặc nhiều cạnh xuất phát từ nút đó. Điều này quyết định số lượng độ phức tạp.
  • Khu vực: Một khu vực được giới hạn bởi các cạnh và các nút. Số lượng vùng cộng thêm một cũng bằng độ phức tạp chu trình.

Hãy xem xét một mô-đun ngắn với hai quyết định:

if (a > b) {          // node 1, predicate
    max = a;          // node 2
} else {
    max = b;          // node 3
}
if (max > limit) {    // node 4, predicate
    alert();          // node 5
}
return max;           // node 6

Đồ thị có 6 nút và 6 cạnh, cho V(G) = 6 – 6 + 2 = 2 theo công thức cạnh. Phương pháp đếm vị từ cho cùng một kết quả nhanh hơn: 2 quyết định cộng 1 bằng 3 đường đi độc lập qua hai nhánh được xem xét cùng nhau. Hãy sử dụng phương pháp nào bạn có thể tính toán một cách đáng tin cậy và kiểm tra chéo với phương pháp còn lại.

Hai quy tắc giúp ngăn ngừa hầu hết các lỗi. Đầu tiên, một điều kiện phức hợp như sau: nếu (x > 0 && y > 0) Nó được tính là hai nút vị từ, chứ không phải một, bởi vì cơ chế rút ngắn mạch tạo ra quyết định thứ hai. Thứ hai, một vòng lặp đóng góp một nút vị từ bất kể nó lặp lại bao nhiêu lần.

Các bước kiểm thử đường dẫn cơ bản

Các bước cơ bản liên quan đến thử nghiệm đường dẫn cơ sở bao gồm

  • Vẽ biểu đồ điều khiển (để xác định các đường dẫn chương trình khác nhau)
  • Tính toán Độ phức tạp của chu kỳ (số liệu để xác định số lượng đường dẫn độc lập)
  • Tìm một tập hợp các đường dẫn cơ sở
  • Tạo ra trường hợp thử nghiệm để rèn luyện mỗi con đường

Ưu điểm và hạn chế của kiểm thử đường dẫn cơ sở

Ưu điểm của kiểm thử đường dẫn cơ sở

  • Nó giúp giảm bớt các bài kiểm tra dư thừa
  • Nó tập trung sự chú ý vào logic chương trình
  • Nó thay thế việc lựa chọn trường hợp thử nghiệm tùy ý bằng một cơ sở phân tích.
  • Các trường hợp kiểm thử tập cơ sở bài tập sẽ thực thi mọi câu lệnh trong chương trình ít nhất một lần

Những hạn chế của việc kiểm thử đường dẫn cơ sở

  • Không tìm thấy đoạn mã bị thiếu. Một yêu cầu chưa từng được thực hiện sẽ không có đường dẫn, do đó sẽ không có bài kiểm tra nào được tạo ra cho nó. Kiểm thử đường dẫn cơ bản phải được kết hợp với kiểm thử dựa trên yêu cầu.
  • Số lượng đường đi tăng lên nhanh chóng. Các vòng lặp lồng nhau và các điều kiện phức hợp làm tăng độ phức tạp một cách nhanh chóng, và một mô-đun với V(G) trên 20 sẽ trở nên không thực tế để bao phủ theo cách này.
  • Phạm vi bao phủ không đồng nghĩa với tính chính xác. Việc thực thi một đoạn mã chứng minh rằng nó chạy được, chứ không phải là nó tạo ra kết quả đúng. Mỗi bài kiểm tra vẫn cần một khẳng định có ý nghĩa.
  • Các đường dẫn phụ thuộc vào dữ liệu. Một số con đường chỉ có thể đi tới được bằng cách kết hợp các yếu tố đầu vào cụ thể, và việc tạo ra những tổ hợp này có thể khó hoặc không thể thực hiện được.

Câu Hỏi Thường Gặp

Kiểm thử đường dẫn nhằm mục đích thực thi mọi đường dẫn có thể, điều này là không khả thi trong bất kỳ mô-đun nào chứa vòng lặp. Kiểm thử đường dẫn cơ bản chỉ thực thi các đường dẫn độc lập, một tập hợp nhỏ hơn nhiều nhưng vẫn bao phủ mọi câu lệnh và nhánh rẽ.

Chính xác là độ phức tạp chu trình của mô-đun. Nếu V(G) là 4, thì tồn tại 4 đường dẫn độc lập và cần 4 trường hợp kiểm thử để bao phủ toàn bộ nhánh.

Không. Nó chỉ thực thi mã đã tồn tại, vì vậy một yêu cầu chưa từng được triển khai sẽ không tạo ra đường dẫn và không có bài kiểm tra thất bại. Hai kỹ thuật này bổ sung cho nhau.

Các công cụ AI tạo ra các giá trị đầu vào dẫn đến các nhánh cụ thể, đây là phần thủ công chậm nhất trong quy trình. Chúng cũng đánh dấu các đường dẫn không thể truy cập được, cho thấy mã chết.

Đúng vậy. Các công cụ phân tích tĩnh đã tạo ra các biểu đồ luồng điều khiển và số liệu độ phức tạp trong nhiều năm, và các công cụ hỗ trợ bởi trí tuệ nhân tạo hiện nay còn bổ sung thêm các đầu vào kiểm thử được đề xuất cho mỗi đường dẫn độc lập.

Tóm tắt bài viết này với: