12/08/2018, 13:50

Tìm hiểu về All pairs Testing và ưu điểm của pair testing giữa các tester khi làm việc

Bài viết này là nghiên cứu tổng hợp ứng dụng vào kiểm tra tất cả các cặp, có thể hữu ích cho những người đang tìm kiếm để thực hiện kết hợp trong khi tiến hành kiểm thử để giảm số lượng test cases, tiết kiệm được thời gian và công sức. Nhiều người cho rằng kiểm thử phần mềm càng nhiều càng tốt, ...

Bài viết này là nghiên cứu tổng hợp ứng dụng vào kiểm tra tất cả các cặp, có thể hữu ích cho những người đang tìm kiếm để thực hiện kết hợp trong khi tiến hành kiểm thử để giảm số lượng test cases, tiết kiệm được thời gian và công sức.

Nhiều người cho rằng kiểm thử phần mềm càng nhiều càng tốt, thử nghiệm tất cả các trạng thái và biến có thể kết hợp đảm bảo tìm thấy tất cả các lỗi. Thực tế, không có đủ thời gian hoặc đủ tester để kiểm tra mọi sự kết hợp của tất cả các biến. Không phải tất cả các lỗi sẽ được tìm thấy, làm cho đảm bảo chất lượng quản lý rủi ro.

Vậy làm thế nào để xác nhận rằng sản phẩm đã sẵn sàng để phát hành trong thời gian và các thông số chi phí hợp lý ? Nghĩa là, làm thế nào để quản lý các rủi ro không kiểm tra tất cả mọi thứ? Một giải pháp là sử dụng phương pháp kiểm thử, được hỗ trợ bởi các công cụ thích hợp, mà giúp bạn định lượng quản lý rủi ro này.

1. All pairs Testing là gì?

All pair testing (Kiểm thử tất cả các cặp) hay còn gọi là pairwise testing,là một phương pháp test được thực hiện để kiểm thử các phần mềm sử dụng phương pháp tổ hợp. Đó là một phương pháp để kiểm tra tất cả các kết hợp rời rạc có thể có của các thông số liên quan, phương pháp test ít nhất sao cho chất lượng tốt nhất.

Thực tế quan sát cho thấy, hầu hết lỗi do kết hợp của 2 yếu tố/tham số. => Kiểm thử tất cả các cặp sinh bộ kiểm thử chứa tất cả các cặp giá trị cần kiểm thử của các biến.

  • Giảm đáng kể số lượng ca kiểm thử.
  • Vẫn hiệu quả trong việc phát hiện lỗi (50-90%).

9-18-2016 8-54-11 AM.jpg

Giả sử có một chức năng của phần mềm được kiểm thử trong đó đã có 10 trường đầu vào và 10 giá trị cho từng trường đầu vào. Thì sẽ có 10 ^ 10 đầu vào có thể được kiểm tra. Trong trường hợp này, kiểm tra toàn diện là không thể thực hiện được.

Để hiểu hơn những khái niệm về kiểm tra tất cả các cặp, ta xét một ví dụ.

Ví dụ

Một ứng dụng với list box đơn giản với 10 phần tử ( 0,1,2,3,4,5,6,7,8,9) cùng với một checkbox, radio Button, Text Box và OK Button. Các ràng buộc cho ô Text là nó có thể chấp nhận các giá trị chỉ từ 1 đến 100. Dưới đây là những giá trị mà mỗi một trong số các đối tượng giao diện có thể thực hiện:

  • List Box - 0,1,2,3,4,5,6,7,8,9

  • Check Box - Checked hoặc Unchecked

  • Radio Button - ON hoặc OFF

  • Text Box - Bất kỳ giá trị từ 1 đến 100

Sự kết hợp đầy đủ các ứng dụng được tính như sau

  • List Box = 10 giá trị

  • Check Box = 2 giá trị

  • Radio Button = 2 giá trị

  • Text Box = 100 giá trị

--> Tổng số testcase khi sử dụng phương pháp Cartesian, nghĩa là khi ta kiểm tra đầy đủ tất cả các trường hợp là 10 x 2 x 2 x 100 = 4000 testcase.

--> Tổng số testcase bao gồm những trường hợp tiêu cực có thể > 4000

Như vậy, sẽ mất rất nhiều thời gian để kiểm tra đầy đủ.

**Ý tưởng để làm giảm số lượng các trường hợp kiểm thử. Đầu tiên chúng ta sẽ cố gắng tìm ra số lượng các trường hợp sử dụng các kỹ thuật kiểm thử phần mềm thông thường. **

Ta xét các giá trị

  • List box: chia thành 2 vùng kiểm tra 0 và những giá trị khác (others) (1,2,3,4,5,6,7,8,9).

  • Check box: giữ nguyên 2 giá trị: Checked hoặc Unchecked

  • Radio Button: giữ nguyên 2 giá trị: ON hoặc OFF

  • Text Box: Bất kỳ giá trị từ 1 đến 100 có thể được chia thành ba đầu vào (Integer hợp lệ là trong khoảng từ 1 đến 100, Integer không hợp lệ là ngoài khoảng 1 đến 100 và các kí tự đặc biệt không phải là số nguyên).

--> Số lượng các testcase sử dụng kỹ thuật kiểm thử phần mềm đã giảm xuống còn 2 x 2 x 2 x 3 = 24 (bao gồm cả trường hợp tiêu cực).

Úng dụng kỹ thuật All pairs testing ta vẫn có thể làm giảm sự kết hợp sâu hơn.

Bước 1: Sắp xếp các giá trị: biến có nhiều vùng giá trị nhất sắp xếp đầu tiên và biến có số lượng vùng giá trị ít nhất được để ở cuối cùng.

Text Box List Box Check box Radio Button

Bước 2: Điền các vùng giá trị tương ứng vào bảng theo cột. Bắt đầu từ List box cột thứ 2, có thể lấy 2 giá trị: 0 và others.

Text Box List Box Check box Radio Button
0
others
0
others
0
others

Bước 3: Tiếp tục điền vùng giá trị cho cột Check box: có thể nhận 2 giá trị là check và uncheck.

Text Box List Box Check box Radio Button
0 check
others uncheck
0 check
others uncheck
0 check
others uncheck

Bước 4: Kiểm tra để đảm bảo rằng đã bao phủ tất cả các trường hợp kết hợp giữa List box và Check box. Sắp xếp lại như sau:

Text Box List Box Check box Radio Button
0 check
others uncheck
0 uncheck
others check
0 check
others uncheck

Bước 5: Tiếp tục điền giá trị cho cột Radio Button: nhân 2 giá trị là ON hoặc OFF.

Text Box List Box Check box Radio Button
0 check ON
others uncheck OFF
0 uncheck OFF
others check ON
0 check OFF
others uncheck ON

Bước 6: Xác minh để đảm bảo tất cả các cặp giá trị đều được bao phủ như trong bảng dưới đây.

Text Box List Box Check box Radio Button
Valid Int 0 check ON
Valid Int others uncheck OFF
InValid Int 0 uncheck OFF
InValid Int others check ON
AlphaSpecialCharacter 0 check OFF
AlphaSpecialCharacter others uncheck ON

Kết quả kiểm tra

  • Kết quả kết hợp đầy đủ trong> 4000 test cases.
  • Kết quả kỹ thuật thông thường kiểm thử phần mềm 24 test cases.
  • Kết quả kỹ thuật Pair Wise Kiểm thử phần mềm chỉ trong 6 test cases.

1.1. Thực hiện tất cả các cặp thử nghiệm

Nếu kiểm tra tất cả các kết hợp có thể có của giá trị là không cần thiết, thì làm thế nào để xây dựng cách kiểm tra tất cả các cặp.

Có một số ứng dụng cho phép nhập vào các biến và tạo ra các bài kiểm tra. Tuy nhiên, nó là hữu ích để thử xây dựng các trường hợp kiểm tra bằng tay một lần hoặc hai lần để hiểu chính xác tất cả các cặp thử nghiệm hoạt động như thế nào.

1.2. Nhận xét về lập bảng kết hợp dùng phương pháp All-Pairs

  • PICT (Pairwise Independent Combinatorial Testing Tool) đây là một phần mềm dễ sử dụng và có nhiều chức năng của công ty Microsoft.

  • Đây là phần mềm miễn phí dùng để tạo testcase kết hợp dễ dàng.

    • http://www.pairwise.org/tools.asp
    • Sinh ra tất cả các cặp với số ca kiểm thử ít nhất.
  • Sử dụng pairwise khi cần thiết

    • Rất nhiều biến/tham số và lỗi xảy ra sẽ nghiêm trọng.
    • Giảm đáng kể số ca kiểm thử.

2. Pair Testing

Nếu bạn là một kiểm thử phần mềm và đã có kinh nghiệm một vài năm trong nghề, bạn có thể tìm thấy chính mình trong một trong các tình huống sau đây:

  • Bạn đang làm việc chăm chỉ để tìm lỗi trong một hệ thống lớn và không thể test được tất cả mọi thứ trong phạm vi deadline. Bạn đã tìm ra một số bug tốt và nghĩ rằng bug có nhiều tại đó, nhưng đến deadline và các phần mềm được phát hành. Một tuần sau đó, một khách hàng lớn tìm thấy một vấn đề nghiêm trọng với việc phát hành mới và cho phép tất cả mọi người biết về nó trong một thông cáo báo chí ngành công nghiệp. Khi đó, bạn bắt đầu suy nghĩ về những gì đã xảy ra và làm thế nào bạn có thể cải thiện đảm bảo kiểm tra của mình.

  • Bạn đang ở trên một cuộc phỏng vấn việc làm, và những người qua bàn yêu cầu bạn làm thế nào để kiểm tra một sản phẩm, đặc biệt là khi có quá nhiều việc phải làm trong thời gian quá ít.

  • Quản lý của bạn có một sự hiểu biết cơ bản của kiểm thử phần mềm, và kết quả là, đặt ra những kỳ vọng không thực tế để bạn "kiểm tra mọi thứ." Họ yêu cầu% độ bao phủ 100, bao gồm cả kiểm tra tất cả các yếu tố đầu vào có thể, từ tất cả các giao diện có thể, vào tất cả các đường dẫn hệ thống có thể, vào tất cả các kết quả đầu ra có thể. Bạn biết đây là những yêu cầu vô lý, và bạn bắt đầu suy nghĩ về phương pháp kiểm tra thay thế. (Và / hoặc cơ hội việc làm thay thế).

Hoc-kiem-thu-phan-mem.jpg

  • Kiểm thử theo cặp là cách tiếp cận một quá trình kiểm thử thiết kế bởi có hai tester kiểm tra được điều tương tự tại cùng một thời gian và địa điểm, liên tục trao đổi ý tưởng.

  • Khi kết hợp, hai tester sử dụng một máy tính hoặc thiết bị test. Trong một phiên, khi khác cho thấy những ý tưởng hoặc các kiểm tra, chú ý và ghi chép, lắng nghe, đặt câu hỏi, lấy tài liệu tham khảo,..

  • Cặp tester nên giải quyết một công việc kiểm thử duy nhất, có cùng một mục tiêu chung trong suy nghĩ. Mặc dù cặp đôi này sẽ làm việc cùng nhau, một người phải sở hữu trách nhiệm để nhận nhiệm vụ thực hiện. Người có quyền sở hữu của công việc có thể làm một số chuẩn bị, nhưng cặp đôi sẽ thành công hơn nếu có sự linh hoạt. Một danh sách kiểm tra đơn giản hoặc tập hợp các ý tưởng kiểm thử sẽ là một điểm khởi đầu tốt.

  • Trong một phiên họp, cặp tester nên nói chuyện nhiều hơn khi họ kiểm tra để có được chia sẻ sự hiểu biết về những gì họ đang làm, và quan trọng hơn, tại sao họ đang làm nó.

2.1. Ưu điểm của Pair testing khi làm việc

  • Sáng tạo cao

    • Làm việc trong một cặp buộc mỗi người để giải thích ý tưởng của họ và phản ứng với những ý tưởng của người khác. Quá trình đơn giản của ý tưởng phân nhịp để đưa chúng vào tập trung tốt hơn và tự nhiên gây nên nhiều ý tưởng hơn.

    • Áp dụng các thông tin và cái nhìn sâu sắc của hai người cho một vấn đề có thể dẫn đến việc khám phá cách dễ dàng một người làm việc một mình có thể là nạn nhân của tầm nhìn đường hầm.

    • Ghép cặp mang con người tiếp xúc gần đủ để tìm hiểu về nhau và thực hành giao tiếp và giải quyết vấn đề.

    • Những tình bạn thân thiết và lời dẫn về quy trình, nhất thiết phải duy trì bởi các cặp để phối hợp các nỗ lực của họ, có xu hướng tăng năng lượng tích cực trong quá trình này.

  • Năng suất cao

    • Mỗi người phải ở lại tập trung vào các công việc hoặc có nguy cơ để cho đối tác của họ xuống.

    • Ghép cặp cho phép người vào bàn phím để theo tàu của họ suy nghĩ mà không dừng lại để ghi chép hoặc tìm thông tin tham khảo. Nó khuyến khích theo đuổi dogged của hiểu biết.

    • Hai người cùng làm việc giới hạn sự tự nguyện của những người khác để ngắt lời họ.

  • Kỹ thuật Đào tạo

    • Một ghép cặp mạnh là một trong những nơi mọi người đang nhóm lại vì vậy mà sức mạnh của họ sẽ cùng có bổ sung những điểm yếu của họ. Đây là một cơ hội để mọi người học hỏi lẫn nhau.

    • Ghép cặp là rất tốt cho người mới để tiếp tục học tập bằng cách kiểm tra với người khác và nó cũng rất hữu ích cho các tester có kinh nghiệm khi họ là người mới đến một miền để nhanh chóng nhận kiến thức kinh doanh.

3. Kết luận

  • Kiểm thử tất cả các cặp cho phép đảm bảo kiểm tra phù hợp mà không cần thử nghiệm mọi sự kết hợp có thể.

  • Kiểm thử tất cả các cặp có thể giảm >=75% số lượng các kiểm tra chạy. Cùng với đó tiết kiệm thời gian, tester sẽ có thể dành nhiều thời gian phát triển các test case phức tạp và ít thời gian thực hiện các test case tầm thường trên sự kết hợp của các biến.

  • Giúp cải thiện khả năng để quản lý nỗ lực kiểm thử. Sẽ dành nhiều thời gian tập trung vào kiểm tra thực tế và ít thời gian lo lắng về việc liệu kiểm tra của bạn đúng hay không.

0