Kiểm tra mảng trực giao là gì? (Ví dụ)
⚡ Tóm tắt thông minh
Kiểm thử mảng trực giao là một kỹ thuật hộp đen sử dụng các mảng thống kê để xây dựng một tập dữ liệu kiểm thử nhỏ gọn, bao phủ mọi cặp giá trị đầu vào với số lượng trường hợp kiểm thử ít hơn nhiều so với yêu cầu của kiểm thử kết hợp toàn diện.

Kiểm tra mảng trực giao
Kiểm tra mảng trực giao (OAT) Kiểm thử mảng trực giao là một kỹ thuật kiểm thử phần mềm sử dụng mảng trực giao để tạo ra các trường hợp kiểm thử. Đây là một phương pháp kiểm thử thống kê, và nó đặc biệt hữu ích khi hệ thống cần kiểm thử chấp nhận một lượng lớn dữ liệu đầu vào. Kiểm thử mảng trực giao tối đa hóa phạm vi kiểm thử bằng cách ghép cặp và kết hợp các đầu vào, do đó hệ thống được kiểm tra với số lượng trường hợp kiểm thử ít hơn và thời gian thực thi ngắn hơn.
Ví dụ, khi cần xác minh vé tàu, các yếu tố như số lượng hành khách, số vé, số ghế và số hiệu tàu phải được kiểm tra. Việc kiểm tra từng yếu tố một rất tốn thời gian. Sẽ hiệu quả hơn khi kỹ sư QA kết hợp nhiều dữ liệu đầu vào lại với nhau và kiểm tra chúng trong một lần chạy duy nhất. Trong những trường hợp như vậy, chúng ta có thể sử dụng phương pháp kiểm thử mảng trực giao (Orthogonal Array).
Việc ghép cặp hoặc kết hợp các đầu vào để tiết kiệm thời gian được gọi là kiểm thử theo cặp (Pairwise testing), và kỹ thuật OATS là một cách để tạo ra bộ kiểm thử theo cặp. Bởi vì kỹ thuật này hoạt động hoàn toàn dựa trên các giá trị đầu vào và kết quả mong đợi, mà không cần xem xét mã nội bộ, nên nó thuộc về nhóm kiểm thử theo cặp (pairwise testing). kiểm tra hộp đen gia đình.
Tại sao OAT (Thử nghiệm mảng trực giao)?
Trong bối cảnh hiện tại, việc cung cấp sản phẩm phần mềm chất lượng cho khách hàng đã trở nên khó khăn do tính phức tạp của mã.
Trong phương pháp thông thường, bộ kiểm thử bao gồm các trường hợp kiểm thử được tạo ra từ mọi sự kết hợp của các giá trị đầu vào và điều kiện tiên quyết. Do đó, cần phải bao phủ n trường hợp kiểm thử.
Nhưng trong thực tế, người kiểm thử sẽ không có đủ thời gian để thực hiện tất cả các trường hợp kiểm thử nhằm phát hiện ra lỗi, vì còn có các hoạt động khác như lập tài liệu, ghi nhận ý kiến đóng góp và phản hồi từ khách hàng cần được thực hiện trong giai đoạn kiểm thử.
Do đó, người quản lý kiểm thử muốn tối ưu hóa số lượng và chất lượng của các ca kiểm thử để đảm bảo tối đa Phạm vi kiểm tra Với nỗ lực tối thiểu. Nỗ lực này được gọi là Tối ưu hóa trường hợp thử nghiệm.
- Phương pháp có hệ thống và thống kê để kiểm tra tương tác giữa các cặp đôi.
- Các điểm tương tác và tích hợp là nguồn gốc chính gây ra lỗi.
- Thực hiện một bộ trường hợp kiểm thử được xác định rõ ràng, ngắn gọn, có khả năng phát hiện ra hầu hết (nhưng không phải tất cả) các lỗi.
- Phương pháp trực giao đảm bảo bao phủ từng cặp của tất cả các biến.
Do đó, kỹ thuật này được sử dụng song song với các phương pháp giảm thiểu đầu vào khác mà nhóm nghiên cứu đã và đang áp dụng. Phân vùng tương đương và phân tích giá trị biên Phương pháp mảng trực giao quyết định giá trị nào đáng để kiểm tra cho một trường dữ liệu duy nhất; trong khi đó, mảng trực giao quyết định giá trị nào trong số đó nên được kiểm tra cùng nhau.
Cách biểu diễn phép thử mảng trực giao
Một mảng trực giao được mô tả bằng một công thức ngắn gọn hơn là bằng các thành phần của nó. Sơ đồ bên dưới cho thấy ba đại lượng trong công thức đó liên quan như thế nào đến hình dạng của mảng.
- Chạy (N) – Số hàng trong mảng, tương ứng với số lượng trường hợp kiểm thử sẽ được tạo ra.
- Các yếu tố (K) – Số cột trong mảng, tương ứng với số lượng biến tối đa có thể được xử lý.
- Cấp độ (V) – Số lượng giá trị tối đa có thể nhận được trên mỗi thừa số.
Thông thường, một yếu tố đơn lẻ có từ 2 đến 3 đầu vào cần được kiểm tra. Số lượng đầu vào tối đa đó sẽ quyết định các Mức độ.
Đọc tên mảng từ trái sang phải. Trong L9(34) Số 9 là số lần chạy, số 3 là số cấp độ mà mỗi yếu tố có thể có, và chỉ số trên 4 là số lượng yếu tố. Bài báo tương tự sử dụng L4(23), tức là bốn lượt chạy cho ba yếu tố, mỗi yếu tố có hai mức.
Hai thuộc tính làm cho một mảng trở nên trực giao, và cả hai thuộc tính này đều phải được thỏa mãn trước khi có thể tin tưởng vào số lần lặp lại:
- Cân đối: Mỗi cấp độ của một yếu tố xuất hiện với số lần bằng nhau trong cột riêng của nó.
- Độ hoàn chỉnh từng cặp: Đối với bất kỳ hai cột nào, mọi sự kết hợp của một cấp độ từ mỗi cột đều xuất hiện với số lần như nhau.
Nếu thuộc tính thứ hai không được đáp ứng, bảng chỉ đơn thuần là một tập dữ liệu kiểm thử rút gọn, chứ không phải là một mảng trực giao, và sự đảm bảo từng cặp biện minh cho việc rút gọn sẽ không còn áp dụng nữa.
Cách thực hiện Kiểm tra mảng trực giao: Ví dụ
- Xác định biến độc lập cho kịch bản.
- Tìm mảng nhỏ nhất có số lần chạy.
- Ánh xạ các yếu tố vào mảng.
- Chọn các giá trị cho bất kỳ mức “còn lại” nào.
- Chép lại các đoạn nhạc thành trường hợp thử nghiệm, đồng thời bổ sung bất kỳ tổ hợp nào đặc biệt đáng ngờ mà không được tạo ra.
Hai ví dụ minh họa bên dưới áp dụng năm bước đó, đầu tiên là cho một bài toán nhỏ hai cấp độ và sau đó là cho một bài toán lớn hơn ba cấp độ.
Ví dụ 1
Một trang web có ba phần riêng biệt (Trên cùng, Giữa, Dưới cùng) mà người dùng có thể xem hoặc ẩn đi một cách độc lập.
- Số yếu tố = 3 (Trên, Giữa, Dưới)
- Số cấp độ (Hiển thị) = 2 (Ẩn hoặc Hiển thị)
- Kiểu mảng = L4(2)3)
(4 là số lần chạy đạt được sau khi tạo mảng OAT)
Nếu chúng ta sử dụng kỹ thuật thông thường là thay đổi từng phần một, chúng ta cần khoảng 2 x 3 = 6 trường hợp thử nghiệm.
| Các trường hợp kiểm tra | Kịch bản | Các giá trị cần kiểm tra |
|---|---|---|
| Bài kiểm tra số 1 | Hidden | Áo sơ mi |
| Bài kiểm tra số 2 | CHO XEM | Áo sơ mi |
| Bài kiểm tra số 3 | Hidden | đáy |
| Bài kiểm tra số 4 | CHO XEM | đáy |
| Bài kiểm tra số 5 | Hidden | Tên đệm |
| Bài kiểm tra số 6 | CHO XEM | Tên đệm |
Sáu lần chạy đó thay đổi từng phần một và không bao giờ đặt hai phần ở cùng một trạng thái đã chọn cạnh nhau. Việc thử nghiệm mọi sự kết hợp sẽ mất 23 = 8 lượt chạy.
Nếu chúng ta thực hiện OAT testing, chúng ta cần 4 test case như dưới đây:
| Các trường hợp kiểm tra | TOP | Tên đệm | đáy |
|---|---|---|---|
| Bài kiểm tra số 1 | Thành viên ẩn danh | Thành viên ẩn danh | Thành viên ẩn danh |
| Bài kiểm tra số 2 | Thành viên ẩn danh | Có thể nhìn thấy | Có thể nhìn thấy |
| Bài kiểm tra số 3 | Có thể nhìn thấy | Thành viên ẩn danh | Có thể nhìn thấy |
| Bài kiểm tra số 4 | Có thể nhìn thấy | Có thể nhìn thấy | Thành viên ẩn danh |
Chọn bất kỳ hai cột nào trong bảng đó và tất cả bốn cặp Ẩn/Hiện đều xuất hiện chính xác một lần, đó là tính chất trực giao ở dạng đơn giản nhất.
Ví dụ 2
Chức năng của bộ vi xử lý phải được kiểm tra:
- Nhiệt độ: 100C, 150C và 200C.
- Áp suất: 2 psi, 5 psi và 8 psi
- Doping Tỷ lệ: 4%, 6% và 8%
- Tốc độ lắng đọng: 0.1 mg/s, 0.2 mg/s và 0.3 mg/s
Bằng phương pháp thông thường, chúng ta cần 34 = 81 trường hợp kiểm thử để bao phủ tất cả các đầu vào. Chúng ta hãy sử dụng phương pháp OATS thay thế:
Số lượng yếu tố = 4 (nhiệt độ, áp suất, do)ping số lượng và tỷ lệ gửi tiền)
Mức độ = 3 mức độ cho mỗi yếu tố (nhiệt độ có 3 mức độ – 100°C, 150°C và 200°C – và tương tự các yếu tố khác cũng có 3 mức độ)
Tạo một mảng như sau:
1. Cột ghi số thừa số
| Trường hợp thử nghiệm # | Nhiệt độ | Sức ép | Doping số lượng | Tỉ lệ lắng đọng |
|---|
2. Nhập số hàng bằng với số mức độ cho mỗi yếu tố. Ví dụ: nhiệt độ có 3 mức. Do đó, hãy chèn 3 hàng cho mỗi mức nhiệt độ.
| Trường hợp thử nghiệm # | Nhiệt độ | Sức ép | Doping số lượng | Tỉ lệ lắng đọng |
|---|---|---|---|---|
| 1 | 100C | |||
| 2 | 100C | |||
| 3 | 100C | |||
| 4 | 150C | |||
| 5 | 150C | |||
| 6 | 150C | |||
| 7 | 200C | |||
| 8 | 200C | |||
| 9 | 200C |
3. Bây giờ hãy phân bổ áp lực, làm như sau:ping lượng và tốc độ lắng đọng trong các cột.
Ví dụ: Nhập 2 psi ở các nhiệt độ 100°C, 150°C và 200°C, tương tự như vậy, hãy nhập doping Tỷ lệ 4% áp dụng cho 100°C, 150°C, 200°C, v.v.
| Trường hợp thử nghiệm # | Nhiệt độ | Sức ép | Doping số lượng | Tỉ lệ lắng đọng |
|---|---|---|---|---|
| 1 | 100C | 2 psi | 4% | 0.1 mg/s |
| 2 | 100C | 5 psi | 6% | 0.2 mg/s |
| 3 | 100C | 8 psi | 8% | 0.3 mg/s |
| 4 | 150C | 2 psi | 4% | 0.1 mg/s |
| 5 | 150C | 5 psi | 6% | 0.2 mg/s |
| 6 | 150C | 8 psi | 8% | 0.3 mg/s |
| 7 | 200C | 2 psi | 4% | 0.1 mg/s |
| 8 | 200C | 5 psi | 6% | 0.2 mg/s |
| 9 | 200C | 8 psi | 8% | 0.3 mg/s |
Do đó, trong OA, chúng ta cần 9 trường hợp kiểm thử.
Lưu ý về độ chính xác: Điền đầy ba cột còn lại theo hướng thẳng xuống, giống như bước 3, lặp lại áp lực tương tự.ping và sự lắng đọng gấp ba lần bên trong mỗi khối nhiệt độ. Áp suất vàping Do đó, lượng di chuyển cùng nhau, và các cặp như 2 psi với 6% không bao giờ xuất hiện, vì vậy chín hàng trên là một tập dữ liệu thử nghiệm rút gọn chứ không phải là một mảng trực giao thực sự. L9(3) cân bằng4Mảng bên dưới giữ nguyên chín lượt chạy trong khi bao phủ tất cả chín cặp cấp độ giữa mỗi hai yếu tố.
| Trường hợp thử nghiệm # | Nhiệt độ | Sức ép | Doping số lượng | Tỉ lệ lắng đọng |
|---|---|---|---|---|
| 1 | 100C | 2 psi | 4% | 0.1 mg/s |
| 2 | 100C | 5 psi | 6% | 0.2 mg/s |
| 3 | 100C | 8 psi | 8% | 0.3 mg/s |
| 4 | 150C | 2 psi | 6% | 0.3 mg/s |
| 5 | 150C | 5 psi | 8% | 0.1 mg/s |
| 6 | 150C | 8 psi | 4% | 0.2 mg/s |
| 7 | 200C | 2 psi | 8% | 0.2 mg/s |
| 8 | 200C | 5 psi | 4% | 0.3 mg/s |
| 9 | 200C | 8 psi | 6% | 0.1 mg/s |
So sánh phương pháp kiểm thử mảng trực giao với phương pháp kiểm thử từng cặp (kiểm thử tất cả các cặp).
Hai thuật ngữ này được sử dụng thay thế cho nhau trong nhiều nhóm, nhưng chúng không hoàn toàn giống nhau. Cả hai đều nhằm mục đích bao phủ các cặp giá trị, nhưng chúng khác nhau ở mức độ ràng buộc của bảng kết quả.
| Yếu tố | Kiểm tra mảng trực giao | Kiểm tra từng cặp (tất cả các cặp) |
|---|---|---|
| Cấu trúc cơ bản | Mảng trực giao, được mượn từ thiết kế thí nghiệm. | Mảng bao phủ, được tạo ra bởi thuật toán tìm kiếm |
| Quy tắc phạm vi bảo hiểm | Mỗi cặp xuất hiện với số lần bằng nhau. | Mỗi cặp đều xuất hiện ít nhất một lần. |
| Các yếu tố có mức độ không đồng đều | Cần một mảng đa cấp, loại mảng này có thể không tồn tại với hình dạng yêu cầu. | Được xử lý trực tiếp bởi máy phát điện |
| Số lần chạy điển hình | Bằng hoặc cao hơn một chút, do yêu cầu về sự cân bằng. | Bằng hoặc thấp hơn với cùng các yếu tố đầu vào |
| Ràng buộc giữa các giá trị | Khó diễn đạt bên trong mảng | Được hỗ trợ bởi hầu hết các máy phát điện hiện đại. |
Trên thực tế, mảng trực giao cân bằng là mô hình giảng dạy rõ ràng hơn và là lựa chọn an toàn hơn khi các yếu tố có cùng số lượng cấp độ, trong khi mảng bao phủ là loại mảng mà hầu hết các công cụ tạo ra cho các dự án thực tế với các đầu vào không đồng đều và phức tạp. Cả hai đều bổ sung cho nhau. kiểm tra bảng quyết định và kiểm tra chuyển trạng thái, tập trung vào các quy tắc kinh doanh và trình tự chứ không phải là sự kết hợp của các giá trị.
Công cụ kiểm tra mảng trực giao
Việc tự xây dựng mảng chỉ khả thi đối với các ví dụ nhỏ nêu trên. Với số lượng thừa số lớn hơn bốn hoặc năm, các nhóm sẽ sử dụng trình tạo, và công cụ này sẽ tự động quyết định số lần xuất hiện của mảng.
- HÌNH ẢNH: một trình tạo dòng lệnh mã nguồn mở từ MicrosoftCác tham số và giá trị của chúng được ghi trong một tệp mô hình văn bản thuần túy, và công cụ sẽ in ra tập hợp các tổ hợp. Công cụ hỗ trợ các ràng buộc và mô hình con, điều này rất quan trọng khi một số cặp giá trị không hợp lệ. Xem thêm Kho lưu trữ PICT.
- HÀNH ĐỘNG: Một công cụ nghiên cứu từ NIST tạo ra các mảng phủ cho độ phủ từ hai chiều đến sáu chiều, đồng thời công bố thư viện các mảng được tính toán trước. Công cụ này có sẵn từ... Dự án kiểm thử tổ hợp của NIST.
- Nền tảng kết hợp thương mại: các công cụ được lưu trữ bổ sung yêu cầu tracKhả năng thực hiện, kết quả mong đợi và xuất dữ liệu sang hệ thống quản lý thử nghiệm, phù hợp với các nhóm lớn cần theo dõi quá trình kiểm toán.
- Các thư viện mảng đã xuất bản: Các mảng tiêu chuẩn như L4, L8, L9, L16 và L18 được lập bảng và có thể sao chép trực tiếp khi số lượng yếu tố và cấp độ khớp nhau.
Bất kể công cụ nào tạo ra bảng, các hàng được tạo ra vẫn cần được chuyển đổi thành các trường hợp có thể chạy được với dữ liệu thực và kết quả mong đợi, sau đó được lên lịch như bất kỳ bộ kiểm thử nào khác. các kỹ thuật kiểm thử phần mềm Đã được sử dụng trong dự án.
Ưu điểm của phương pháp kiểm thử mảng trực giao
- Đảm bảo kiểm tra các tổ hợp từng cặp của tất cả các biến đã chọn.
- Giảm số lượng trường hợp thử nghiệm.
- Tạo ra ít trường hợp kiểm thử hơn nhưng vẫn bao quát được sự tương tác giữa mọi cặp biến số.
- Có thể xử lý một tổ hợp phức tạp các biến số.
- Tạo đơn giản hơn và ít xảy ra lỗi hơn so với các bộ kiểm tra được tạo bằng tay.
- Nó rất hữu ích cho Thử nghiệm hội nhậpvà cũng hữu ích cho kiểm tra cấu hình, nơi mà sự kết hợp giữa trình duyệt, hệ điều hành và thiết bị tăng lên nhanh chóng.
- Nó cải thiện năng suất do giảm chu kỳ kiểm tra và thời gian kiểm tra.
Các khoản tiết kiệm tích lũy trong suốt kiểm tra hồi quyBởi vì một bộ kiểm thử cân bằng nhỏ hơn có chi phí thấp hơn để chạy lại trong mỗi chu kỳ, trong khi một bộ kiểm thử kết hợp toàn diện thường chỉ được chạy một lần rồi bị bỏ qua một cách lặng lẽ.
Nhược điểm của phương pháp kiểm thử mảng trực giao
- Khi lượng dữ liệu đầu vào tăng lên, độ phức tạp của thiết kế trường hợp kiểm thử cũng tăng lên. Kết quả là, công sức và thời gian bỏ ra tăng lên, và người kiểm thử phải tìm đến các phương pháp khác. Kiểm tra tự động hóa.
- Kiểm tra từng cặp không phải là kiểm tra toàn diện. Một lỗi chỉ xuất hiện khi ba giá trị cụ thể xảy ra cùng nhau có thể không bị phát hiện trong toàn bộ hệ thống.
- Các yếu tố có số lượng cấp độ khác nhau không thể ánh xạ một cách gọn gàng vào một mảng chuẩn, do đó cần có một mảng hỗn hợp nhiều cấp độ hoặc một bộ tạo mảng bao phủ.
- Việc lựa chọn các mức độ là một quyết định mang tính chủ quan. Nếu một giá trị quan trọng bị bỏ sót trong mô hình đầu vào, thì không có mảng nào có thể khôi phục được nó.
- Các ràng buộc giữa các giá trị, chẳng hạn như phương thức thanh toán chỉ hợp lệ ở một quốc gia, rất khó thể hiện và thường tạo ra các hàng không hợp lệ cần phải xóa thủ công.
Không có hạn chế nào trong số này loại trừ hoàn toàn kỹ thuật này; chúng chỉ đơn giản là đặt ra giới hạn của nó. Mảng trực giao làm giảm vấn đề kết hợp, trong khi phân tích rủi ro và kiểm thử miền Xác định những yếu tố nào xứng đáng được đưa vào mô hình ngay từ đầu.
Những sai sót hoặc sai sót khi thực hiện OAT
- Hướng nỗ lực kiểm thử vào sai khu vực của ứng dụng.
- Chọn sai các thông số để kết hợp.
- Sử dụng phương pháp kiểm thử mảng trực giao khi tập dữ liệu đầu vào đủ nhỏ để kiểm thử toàn diện.
- Áp dụng phương pháp kiểm thử mảng trực giao thủ công trên một mô hình đủ lớn để cần đến máy phát điện.
- Chỉ dựa vào phương pháp kiểm thử mảng trực giao đối với các ứng dụng rủi ro cao, nơi yêu cầu độ phủ sâu hơn.
Mục cuối cùng là mục gây ra nhiều thiệt hại nhất trong thực tế. Đối với các tính năng quan trọng về an toàn hoặc tài chính, tập hợp các cặp dữ liệu là mức sàn chứ không phải mức trần, và nó thường được bổ sung bằng các trường hợp cụ thể tại... Thử nghiệm hệ thống ở cấp độ này và phù hợp với kế hoạch tổng thể được mô tả trong các loại kiểm thử phần mềm.

