Kỹ Thuật Kiểm Thử Hộp Đen – Black-Box Testing Là Gì?
Hãy bắt đầu với một cái nhìn tổng quan về các kiểm thử hộp đen (Black-box testing) trước khi đi sâu vào chi tiết của từng kỹ thuật.
Kiểm thử hộp đen – Black-box testing còn được gọi là kỹ thuật kiểm thử dựa vào đặc tả (specification-based techniques) hay kỹ thuật dựa vào hành vi (behavioral techniques) thực hiện các bài kiểm tra dựa trên cách thức hoạt động của hệ thống.
Đây là một kỹ thuật kiểm thử phần mềm tập trung vào kiểm tra chức năng của phần mềm mà không cần biết về cấu trúc nội bộ hoặc mã nguồn bên trong. Trong kiểm thử hộp đen, người thực hiện kiểm thử tập trung vào đầu vào và đầu ra của phần mềm để kiểm tra xem phần mềm hoạt động như mong đợi hay không, mà không cần hiểu cách nó được triển khai.
Mục tiêu chính của kiểm thử hộp đen là xác định liệu phần mềm thực hiện đúng chức năng được đặt ra hay không, bất kể cách thức nó thực hiện bên trong là gì. Các đặc điểm quan trọng của kiểm thử hộp đen bao gồm:
- Chức năng: Kiểm thử hộp đen tập trung vào kiểm tra tính năng và chức năng của phần mềm. Điều này đảm bảo rằng phần mềm đáp ứng đúng yêu cầu và mong đợi từ người dùng.
- Không biết về mã nguồn: Người thực hiện kiểm thử không cần biết về mã nguồn bên trong hoặc cấu trúc của phần mềm. Họ chỉ cần biết về đầu vào và đầu ra mong đợi.
- Đa dạng các kịch bản kiểm thử: Kiểm thử hộp đen có thể sử dụng nhiều kịch bản kiểm thử khác nhau để kiểm tra các khía cạnh khác nhau của chức năng.
- Kiểm tra hợp lý hoặc ngẫu nhiên: Kiểm thử hộp đen có thể thực hiện kiểm thử theo cách hợp lý dựa trên kiến thức về hệ thống hoặc thực hiện kiểm thử ngẫu nhiên để tìm ra các trường hợp đặc biệt.
- Tập trung vào người dùng cuối: Kiểm thử hộp đen giúp đảm bảo rằng phần mềm hoạt động theo cách mà người dùng cuối cùng sẽ sử dụng.
Kỹ Thuật Phân Vùng Tương Đương Là Gì?
Kỹ thuật phân vùng tương đương (Equivalence Partitioning) là một kỹ thuật kiểm thử phần mềm mà trong đó các tập hợp dữ liệu hoặc giá trị đầu vào được chia thành các nhóm tương đương dựa trên cách phần mềm xử lý chúng. Mục tiêu chính của phân vùng tương đương là giảm số lượng trường hợp kiểm thử cần kiểm tra trong khi vẫn đảm bảo rằng các trường hợp kiểm thử quan trọng được bao phủ. Bằng cách chọn một giá trị đại diện từ một phân vùng, phạm vi bảo hiểm cho tất cả các mục trong cùng một phân vùng được giả định.
Về cơ bản, kỹ thuật này sử dụng mô hình đồ họa hoặc toán học xác địnhh các lớp tương đương của đầu vào, đầu ra, giá trị bên trong, mối quan hệ thời gian, phép tính hoặc bất kỳ thứ gì khác được quan tâm. Các lớp hoặc phân vùng này được gọi là tương đương vì chúng có khả năng được hệ thống xử lý theo cùng một cách. Một số lớp có thể được gọi là các lớp tương đương hợp lệ vì chúng mô tả các tình huống hợp lệ mà hệ thống sẽ xử lý bình thường. Các lớp khác có thể được gọi là các lớp tương đương không hợp lệ vì chúng mô tả các tình huống không hợp lệ mà hệ thống nên từ chối hoặc ít nhất báo cáo cho người dùng để sửa hoặc xử lý ngoại lệ.
Việc xây dựng kịch bản kiểm thử phải tiến hành cho cả các lớp hợp lệ và các lớp không hợp lệ bằng cách chọn ra một thành viên từ mỗi phân vùng tương đương. Chúng ta có thể tạo một bộ kiểm tra hợp lệ bằng cách chọn một thành viên từ mỗi phân vùng tương đương hợp lệ và đảm bảo rằng mỗi lớp hợp lệ được kiểm tra ít nhất một lần. Tuy nhiên, quy tắc này không kết hợp nhiều lớp tương đương không hợp lệ trong một test case. Bởi sự hiện diện của một giá trị không hợp lệ có thể che giấu việc xử lý không chính xác một giá trị không hợp lệ khác.
Tránh Lỗi Phân Vùng Tương Đương
Mặc dù phân vùng tương đương khá đơn giản, nhưng mọi người vẫn có thể mắc một số lỗi phổ biến khi áp dụng nó. Hãy xem xét những lỗi này để bạn có thể tránh chúng.
- Tập hợp con phải rời rạc. Nghĩa là, không có hai tập con nào có một hoặc nhiều phần tử chung. Toàn bộ điểm của phân vùng tương đương là để kiểm tra xem một hệ thống có xử lý các tình huống khác nhau một cách khác nhau hay không (và tất nhiên là đúng cách).
- Không tập hợp con nào có thể rỗng. Nghĩa là, nếu thao tác phân vùng tương đương tạo ra một tập hợp con không có phần tử nào, thì điều đó hầu như không hữu ích cho việc thử nghiệm. Chúng tôi không thể chọn một thành viên của tập hợp con đó vì nó không có thành viên nào.
- Không có tính loại trừ. Hãy lưu ý rằng quá trình phân vùng tương đương không trừ đi, mà chia ra. Về mặt lý thuyết, phân vùng tương đương không tạo ra các tập con “dự phòng” bằng cách nào đó bị loại bỏ trong quá trình. Lưu ý rằng điều này rất quan trọng bởi vì nếu điều này không đúng, thì chúng ta có khả năng không kiểm tra được một số tập hợp con quan trọng của đầu vào, đầu ra, cấu hình hoặc một số yếu tố quan tâm khác mà bằng cách nào đó đã bị loại bỏ trong quá trình thiết kế thử nghiệm.
Xây Dựng Các Bài Kiểm Thử Phân Vùng Tương Đương
Xây Dựng Kiểm Thử Với Các Giá Trị Hợp Lệ
Ví dụ, bạn đang thử nghiệm một ứng dụng dựa trên trình duyệt. Yêu cầu đặc tả đảm bảo ứng dụng chạy được trên 2 trình duyệt: Internet Explorer và Firefox; với 3 loại kết nối: dial-up (quay số), DSL và modem cap. Trong mỗi trường hợp kiểm thử, một trong các loại kết nối và một trong các loại trình duyệt sẽ được đưa ra kiểm thử.
Trong ví dụ trên, chúng ta có thể kết hợp các giá trị trên các phân vùng tương đương khi các giá trị độc lập và đều hợp lệ. Tất nhiên, không phải lúc nào cũng vậy.
Xây Dựng Kiểm Thử Với Các Giá Trị Không Hợp Lệ
Trong một số trường hợp, phân vùng tương đương bao gồm cả các giá trị không hợp lệ. Ví dụ, chúng ta đang kiểm thử một ứng dụng quản lý dự án, giống như Microsoft Project. Giả sử rằng tập hợp X là loại sự kiện mà chúng ta đang xử lý, có thể là một task (X1) hoặc milestone (X2). Giả sử rằng tập Y là ngày bắt đầu của sự kiện, có thể là trong quá khứ (Y1), hôm nay (Y2) hoặc trong tương lai (Y3). Giả sử rằng tập hợp Z là ngày kết thúc của sự kiện, có thể vào hoặc sau ngày bắt đầu (Z1) hoặc trước ngày bắt đầu (Z2). Tất nhiên, Z2 không hợp lệ vì không có sự kiện nào có thời lượng âm.
Như sơ đồ trên, các TC1, TC2, TC3 chúng ta kiểm thử các tổ hợp task, milestones với ngày bắt đầu trong quá khứ, hiện tại và tương lai cũng như ngày kết thúc hợp lệ. Trong TC4, chúng ta kiểm thử xem ngày kết thúc không hợp lệ có bị từ chối chính xác hay không. Bạn có thể phân vùng phụ tình huống không hợp lệ, chúng ta cũng có thể thử nghiệm với ngày bắt đầu ở hiện tại và một ngày trong tương lai cùng với ngày kết thúc trước ngày bắt đầu, điều này sẽ bổ sung thêm 2 trường hợp thử nghiệm.
Như đã đề cập ở trên, kỹ thuật phân vùng tương đương không kết hợp nhiều giá trị không hợp lệ trong cùng một test case. Trong hệ thống quan trọng về an toàn hoặc nhiệm vụ quan trọng, bạn có thể muốn kiểm tra các tổ hợp giá trị không hợp lệ ngay cả khi trình phân tích cú pháp dừng ở lỗi đầu tiên. Chỉ cần nhớ rằng, bất cứ khi nào bạn bắt đầu thử nghiệm tổ hợp, bạn sẽ có thể dành nhiều thời gian để thử nghiệm những thứ không quá quan trọng.
Khả năng áp dụng
Kỹ thuật này có thể áp dụng ở bất kỳ cấp độ thử nghiệm nào và phù hợp khi tất cả các thành viên của một tập hợp các giá trị được kiểm tra dự kiến sẽ được xử lý theo cùng một cách và khi các tập hợp giá trị được ứng dụng sử dụng không tương tác. EP mạnh nhất khi được sử dụng kết hợp với phân tích giá trị biên giúp mở rộng các giá trị thử nghiệm để bao gồm các giá trị trên các cạnh của phân vùng. EP, sử dụng các giá trị từ các phân vùng hợp lệ, là một kỹ thuật thường được sử dụng cho smoke testing một bản dựng mới hoặc bản phát hành mới vì nó nhanh chóng xác định xem chức năng cơ bản có hoạt động hay không.
Hạn chế/Khó khăn
Nếu giả định không chính xác và các giá trị trong phân vùng không được xử lý theo cùng một cách, thì kỹ thuật này có thể bỏ sót lỗi. Cần chọn các phân vùng tương đương một cách cẩn thận. Ví dụ, một trường đầu vào chấp nhận số dương và số âm có thể được kiểm tra tốt hơn dưới dạng hai phân vùng hợp lệ, một cho số dương và một cho số âm, do khả năng xử lý khác nhau. Tùy thuộc vào việc có cho phép số 0 hay không, điều này có thể trở thành một phân vùng khác. Điều quan trọng đối với Nhà phân tích thử nghiệm là phải hiểu quá trình xử lý cơ bản để xác định phân vùng tốt nhất của các giá trị. Nhà phân tích thử nghiệm cũng nên tính đến các phụ thuộc có thể có giữa các phân vùng tương đương của các tham số khác nhau. Ví dụ: trong hệ thống đặt vé máy bay, tham số “người lớn đi cùng” chỉ có thể được sử dụng kết hợp với lớp tuổi “trẻ em”.
Độ bao phủ
Nếu hành vi của đối tượng thử nghiệm phụ thuộc vào một tham số duy nhất, thì mỗi phân vùng tương đương, dù hợp lệ hay không hợp lệ, phải được kiểm tra ít nhất một lần. Trong trường hợp có nhiều hơn một tham số, người kiểm thử nên chọn loại phạm vi bảo hiểm đơn giản hoặc kết hợp tùy thuộc vào rủi ro. Do đó, cần phân biệt giữa các tổ hợp chỉ chứa các phân vùng hợp lệ và các tổ hợp chứa một hoặc nhiều phân vùng không hợp lệ. Liên quan đến các kết hợp chỉ có các phân vùng tương đương hợp lệ, yêu cầu tối thiểu là phạm vi bao phủ đơn giản của tất cả các phân vùng hợp lệ trên tất cả các tham số. Số lượng trường hợp thử nghiệm tối thiểu cần thiết trong một bộ thử nghiệm như vậy bằng với số lượng phân vùng hợp lệ lớn nhất của một tham số, giả sử các tham số độc lập với nhau.
Các loại bao phủ kỹ lưỡng hơn liên quan đến các kỹ thuật tổ hợp bao gồm bao phủ theo cặp hoặc bao phủ đầy đủ của bất kỳ sự kết hợp nào của các phân vùng hợp lệ. Các phân vùng tương đương không hợp lệ nên được kiểm tra ít nhất là riêng lẻ, tức là kết hợp với các phân vùng hợp lệ cho các tham số khác, để tránh che khuyết điểm. Vì vậy, mỗi phân vùng không hợp lệ đóng góp một trường hợp thử nghiệm cho bộ thử nghiệm để bảo hiểm đơn giản. Trong trường hợp rủi ro cao, các kết hợp khác có thể được thêm vào bộ thử nghiệm, ví dụ: chỉ bao gồm các phân vùng không hợp lệ hoặc các cặp phân vùng không hợp lệ.
Loại Lỗi Phát Hiện
Nhà phân tích kiểm thử sử dụng kỹ thuật này để tìm ra lỗi trong việc xử lý các giá trị dữ liệu khác nhau.