Thử nghiệm tích cực và thử nghiệm tiêu cực với các ví dụ

⚡ Tóm tắt thông minh

Kiểm thử tích cực và kiểm thử tiêu cực cùng nhau quyết định xem phần mềm có chấp nhận những gì nó nên chấp nhận và từ chối những gì nó không nên từ chối hay không. Bài viết này giải thích cả hai phương pháp, các kỹ thuật đằng sau chúng, các ví dụ thực tiễn và các biện pháp giúp giảm thiểu lỗi phát sinh.

  • Kết quả xét nghiệm dương tính: Chỉ cung cấp dữ liệu hợp lệ và xác nhận rằng ứng dụng hoàn thành quy trình dự định chính xác như mô tả trong thông số kỹ thuật.
  • Kết quả xét nghiệm âm tính: Nhập dữ liệu không hợp lệ hoặc dữ liệu quá mức và xác nhận rằng ứng dụng từ chối, hiển thị lỗi rõ ràng và vẫn hoạt động ổn định.
  • 📏 Phân tích giá trị biên: Kiểm tra giới hạn của mọi phạm vi được chấp nhận, sau đó kiểm tra thêm một bước bên ngoài phạm vi đó, để nhanh chóng phát hiện các lỗi sai lệch một đơn vị.
  • 🧩 Phân vùng tương đương: Chia các dữ liệu đầu vào thành nhóm hợp lệ và nhóm không hợp lệ, sau đó lấy mẫu một giá trị từ mỗi nhóm thay vì kiểm tra tất cả.
  • ⚖️ Quy tắc phạm vi bảo hiểm: Hãy viết ít nhất hai trường hợp cho mỗi yêu cầu, một trường hợp tích cực và một trường hợp tiêu cực, để đảm bảo không có tiêu chí chấp nhận nào được đưa ra thị trường mà chưa được kiểm thử.
  • 🛡️ Lợi ích an ninh: Các trường hợp tiêu cực làm lộ ra các lỗi tiêm mã, mã thông báo hết hạn và các ngoại lệ chưa được xử lý mà các lần chạy thành công không bao giờ gặp phải.
  • 🤖 Phù hợp với tự động hóa: Tự động hóa các luồng tích cực ổn định để đo giá trị hồi quy và tự động hóa các kiểm tra xác thực tiêu cực để phản hồi về khả năng phục hồi.

Kiểm thử phần mềm là quá trình xác minh và thẩm định một ứng dụng phần mềm để kiểm tra xem nó có hoạt động như mong đợi hay không. Mục đích là để tìm ra lỗi và cải thiện chất lượng sản phẩm. Có hai cách để kiểm thử phần mềm, đó là kiểm thử tích cực và kiểm thử tiêu cực.

Hai cách tiếp cận này trả lời hai câu hỏi trái ngược nhau: liệu ứng dụng có hoạt động khi mọi thứ diễn ra suôn sẻ, và liệu nó có duy trì ổn định khi xảy ra sự cố?

Kết quả xét nghiệm dương tính là gì?

Thử nghiệm tích cực Kiểm thử là một loại kiểm thử được thực hiện trên một ứng dụng phần mềm bằng cách cung cấp các tập dữ liệu hợp lệ làm đầu vào. Nó kiểm tra xem ứng dụng phần mềm có hoạt động như mong đợi với các đầu vào tích cực hay không.

Kiểm thử tích cực được thực hiện để kiểm tra xem ứng dụng phần mềm có hoạt động đúng như mong đợi hay không. Do đó, nó còn được gọi là kiểm thử đường dẫn thành công.

Ví dụ, hãy xem hộp văn bản số được hiển thị bên dưới.

Thử nghiệm tích cực

Có một hộp văn bản trong ứng dụng chỉ có thể chấp nhận số. Việc nhập các giá trị lên đến 99999 sẽ được hệ thống chấp nhận và bất kỳ giá trị nào khác ngoài giá trị này sẽ không được chấp nhận. Để thực hiện kiểm tra tích cực, hãy đặt các giá trị đầu vào hợp lệ từ 0 đến 99999 và kiểm tra xem hệ thống có chấp nhận các giá trị đó không.

Thử nghiệm tiêu cực là gì?

Kiểm tra tiêu cực Kiểm thử là một phương pháp kiểm thử được thực hiện trên ứng dụng phần mềm bằng cách cung cấp các tập dữ liệu không hợp lệ hoặc không phù hợp làm đầu vào. Nó kiểm tra xem ứng dụng phần mềm có hoạt động như mong đợi khi nhận được các đầu vào tiêu cực hoặc không mong muốn từ người dùng hay không.

Mục đích của kiểm thử tiêu cực là để đảm bảo ứng dụng phần mềm không bị lỗi và vẫn hoạt động ổn định khi nhận dữ liệu đầu vào không hợp lệ. Do đó, nó còn được gọi là kiểm thử đường dẫn lỗi hoặc kiểm thử sự cố.

Ví dụ, hãy xem xét trường dữ liệu tương tự nhận các ký tự thay vì chữ số.

Kiểm tra tiêu cực

Kiểm tra phủ định có thể được thực hiện bằng cách nhập các ký tự từ A đến Z hoặc từ a đến z. Hệ thống phần mềm không được chấp nhận các giá trị, nếu không nó sẽ đưa ra thông báo lỗi cho những dữ liệu đầu vào không hợp lệ này.

Trong cả hai loại thử nghiệm, cần xem xét những điều sau:

  • Dữ liệu đầu vào
  • Một hành động cần được thực hiện
  • Kết quả đầu ra

Kết quả xét nghiệm dương tính so với kết quả xét nghiệm âm tính: Những điểm khác biệt chính

Cả hai phương pháp đều có chung một điểm. trường hợp thử nghiệm Cấu trúc. Sự khác biệt nằm ở dữ liệu đầu vào bạn cung cấp và ở điều mà kết quả đạt yêu cầu chứng minh.

Tham số Thử nghiệm tích cực Kiểm tra tiêu cực
Còn được biết là Chúc bạn kiểm thử thành công! Kiểm tra đường dẫn lỗi hoặc lỗi
Đầu vào được sử dụng Dữ liệu hợp lệ, đúng như mong đợi Dữ liệu không hợp lệ, cực đoan hoặc không mong đợi
Mục tiêu Xác nhận tính năng này hoạt động đúng như mong đợi. Xác nhận rằng tính năng này từ chối những gì nó không nên từ chối.
Kết quả dự kiến Luồng quy trình hoàn tất thành công Một lỗi rõ ràng xuất hiện nhưng hệ thống vẫn ổn định.
Xử lý lỗi Không phải là trọng tâm Toàn bộ trọng tâm
Toàn Diện Hẹp, tuân theo thông số kỹ thuật. Rộng hơn, nó khám phá mọi thứ nằm ngoài phạm vi quy định.
Rủi ro thường gặp nếu bỏ qua Các tính năng cốt lõi bị lỗi khi xuất xưởng Sự cố và lỗ hổng bảo mật ảnh hưởng đến quá trình sản xuất.

Kết quả kiểm tra dương tính thất bại cho thấy chức năng bị hỏng. Kết quả kiểm tra âm tính thất bại cho thấy có bộ phận bảo vệ bị thiếu, việc sửa chữa sẽ tốn kém hơn nhiều một khi người dùng đã phát hiện ra.

Các kỹ thuật xét nghiệm được sử dụng để xác định kết quả dương tính và âm tính.

Trên thực tế, hai kỹ thuật thiết kế đầu vào kinh điển tạo ra cả trường hợp tích cực và tiêu cực từ cùng một yêu cầu:

  • Phân tích giá trị biên
  • Phân vùng tương đương

Phân tích giá trị biên

Đây là một trong những kỹ thuật kiểm thử phần mềm trong đó các ca kiểm thử được thiết kế để bao gồm các giá trị ở ranh giới. Nếu dữ liệu đầu vào được sử dụng trong giới hạn giá trị biên thì đó được gọi là Kiểm tra tích cực. Nếu dữ liệu đầu vào được chọn nằm ngoài giới hạn giá trị biên thì đó được gọi là Kiểm thử âm tính.

Ví dụ, hãy xem phạm vi được chấp nhận được minh họa bên dưới.

Thử nghiệm tích cực và tiêu cực

Một hệ thống có thể chấp nhận các số từ 0 đến 10 giá trị số. Tất cả các số khác là giá trị không hợp lệ. Theo kỹ thuật này, các giá trị biên -1,0,1 và 9,10,11 sẽ được kiểm tra.

Phân vùng tương đương

Đây là một kiểm thử phần mềm kỹ thuật chia dữ liệu đầu vào thành nhiều phân vùng. Các giá trị từ mỗi phân vùng phải được kiểm tra ít nhất một lần. Các phân vùng có giá trị hợp lệ được sử dụng để Kiểm tra Tích cực. Trong khi các phân vùng có giá trị không hợp lệ được sử dụng để kiểm tra âm tính.

Ví dụ, hãy nghiên cứu hai phân vùng được hiển thị bên dưới.

Phân vùng tương đương

Các giá trị số từ 0 đến 10 có thể được chia thành hai (hoặc ba) phần. Trong trường hợp của chúng ta, chúng ta có hai phần: từ -10 đến -1 và từ 0 đến 10. Có thể lấy các giá trị mẫu (5 và -5) từ mỗi phần để kiểm tra các trường hợp. Xem thêm phân vùng tương đương và phân tích giá trị biên Xem thêm các ví dụ minh họa trong bài học.

Cách thực hiện xét nghiệm dương tính và âm tính

Chuỗi quy trình sau đây biến một yêu cầu thành một tập hợp cân bằng các trường hợp tích cực và tiêu cực.

  1. Hãy đọc kỹ các yêu cầu về giới hạn. Ghi chú lại mọi định dạng, phạm vi và trường bắt buộc được chấp nhận. Bất cứ điều gì được quy định cho phép đều được coi là trường hợp tích cực, và bất cứ điều gì bị loại trừ đều được coi là trường hợp tiêu cực.
  2. Hãy viết luận điểm khẳng định trước. Cung cấp dữ liệu hợp lệ, thực hiện hành động và ghi lại kết quả thành công dự kiến ​​làm cơ sở so sánh.
  3. Từ các giới hạn tương tự, hãy suy ra các trường hợp tiêu cực. Sử dụng phân tích giá trị biên và phân vùng tương đương để tạo ra các trường trống, kiểu dữ liệu sai và số nằm ngoài phạm vi cho phép.
  4. Thêm đầu vào mang tính thù địch. Bao gồm SQL injection chuỗi ký tự, mã thông báo hết hạn và tải trọng API bị lỗi. kiểm tra bảo mật Các lỗ hổng xuất hiện sớm.
  5. Mở rộng sang cả các kiểm tra không liên quan đến chức năng. A thử tải Số lượng người dùng được hỗ trợ là dương, trong khi đó... kiểm tra căng thẳng Vượt quá giới hạn đó là trường hợp phủ định tương ứng.
  6. Chọn phạm vi xử lý cho từng vụ án. Tránh để các trường hợp âm tính xảy ra. kiểm tra khói và sự tỉnh táo, đó là các cổng dương nhanh, và vận hành chúng trong chức năng và kiểm tra hồi quy các chu kỳ.

Giao dịch rút tiền ATM hiển thị thông tin ghép nối. Trường hợp thành công: nhập đúng mã PIN và số tiền hợp lệ, do đó bạn sẽ nhận được tiền mặt và biên lai. Trường hợp thất bại: nhập sai mã PIN và nhận được thông báo từ chối, sau đó là thẻ bị khóa.

Các biện pháp tốt nhất để giữ cân bằng

  • Hãy viết ít nhất hai trường hợp cho mỗi yêu cầu, một trường hợp tích cực và một trường hợp tiêu cực, trước khi bắt đầu quá trình phát triển.
  • Ưu tiên xử lý các trường hợp lỗi theo mức độ ảnh hưởng, sao cho các lỗi tiêm dữ liệu và thanh toán được ưu tiên trước các lỗi nhập liệu về giao diện.
  • Hãy nêu rõ thông báo lỗi, chứ không chỉ đơn thuần là thông báo thao tác thất bại, vì những thông báo mơ hồ cũng là một lỗi.
  • Hãy chừa chỗ cho thử nghiệm thăm dòvà ghi lại các phát hiện thông qua... quy trình quản lý khuyết tật.

⚠️ Cảnh báo: Tuyệt đối không nên chạy các trường hợp tiêu cực trên môi trường sản xuất đang hoạt động. Mục đích của việc này là để gây ra lỗi, và việc cố tình làm sập hệ thống sẽ ảnh hưởng đến người dùng thực và dữ liệu thực.

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

Xét nghiệm âm tính Kiểm tra xem ứng dụng có từ chối đầu vào không hợp lệ một cách khéo léo hay không. Kiểm thử phá hoại tiến xa hơn và cố tình đẩy hệ thống đến tình trạng lỗi, chẳng hạn như ngắt kết nối cơ sở dữ liệu giữa chừng giao dịch, để đo lường hành vi phục hồi và khả năng chống chịu trong điều kiện khắc nghiệt.

STT Kiểm tra khói và kiểm tra an toàn Chỉ sử dụng các trường hợp kiểm tra tích cực, vì chúng hoạt động như các cổng kiểm soát chất lượng nhanh chóng cho một bản dựng mới. Các trường hợp kiểm tra tiêu cực được tạo ra một cách có chủ đích, vì vậy các nhóm chạy chúng trong các chu kỳ chức năng sâu hơn.

Đúng vậy. Các công cụ tạo dữ liệu bằng AI đọc các yêu cầu hoặc câu chuyện người dùng và đề xuất các tập dữ liệu đầu vào hợp lệ và không hợp lệ, bao gồm cả các giá trị giới hạn. Người kiểm thử vẫn xem xét lại chúng, bởi vì các trường hợp tiêu cực được tạo ra thường bỏ sót các giới hạn miền như ngưỡng quy định hoặc quy tắc làm tròn tiền tệ.

Đúng vậy. Các tính năng AI cần có các trường hợp phủ định cho việc chèn thông báo, phản hồi mô hình bị lỗi, hết thời gian chờ và các câu hỏi nằm ngoài phạm vi. Vì đầu ra thay đổi giữa các lần chạy, các khẳng định nên kiểm tra định dạng phản hồi, bộ lọc an toàn và hành vi dự phòng thay vì một chuỗi dự kiến ​​cố định.

Selenium Điều khiển việc xác thực trường dữ liệu trên trình duyệt. Postman Bao gồm các tải trọng API và mã trạng thái không hợp lệ, và JMeter Đẩy tải vượt quá giới hạn cho phép đối với các kịch bản kiểm thử tải nặng. Hãy chọn công cụ phù hợp với lớp bạn đang kiểm thử.

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