Edge Case Testing là gì? Cách Tìm và Ưu Tiên
edge case testingChia sẻ bởi 〜 20 minute read
Kiểm thử trường hợp cạnh là một loại confirmation testing để xem hệ thống có thể xử lý các tình huống cực kỳ ít gặp hoặc không thường gặp, được coi là không thể xảy ra trong việc sử dụng bình thường. Nó giúp đảm bảo hệ thống mạnh mẽ và đáng tin cậy và có thể xử lý những tình huống bất ngờ một cách chính xác nhất. Bài đăng này sẽ giải thích về nó và tại sao nó quan trọng đến vậy.
Kiểm thử Trường hợp cạnh là gì?
Kiểm thử trường hợp cạnh là một dạng kiểm thử phần mềm tập trung vào việc kiểm thử hành vi hoặc điều kiện ngoại lệ xuất hiện ở ranh giới của một chương trình hoặc hệ thống. Những tình huống không bình thường hoặc hiếm hoi này xảy ra tại các ranh giới đầu vào (input) hoặc hành vi dự kiến (expected behavior). Chúng thường là kết quả của các giả định không chính xác về cách phần mềm sẽ được sử dụng và có thể dẫn đến kết quả không mong muốn hoặc không chính xác từ hệ thống. Trường hợp cạnh quan trọng để xem xét trong quá trình phát triển để đảm bảo hệ thống có thể xử lý một loạt đầu vào trong khi vẫn xuất các kết quả đầu ra mong đợi (expected output).
Vậy nên, bạn đã biết những lúc bạn đóng video (reels) trên Instagram, nhưng âm thanh vẫn tiếp tục phát trong vài giây phút sau đó? Đó là một ví dụ điển hình về một trường hợp cạnh!
Ví dụ về kiểm thử trường hợp cạnh là gì?
Hãy xem xét một ví dụ thực tế về một trường hợp kiểm thử cạnh.
Tình huống: Đăng nhập vào một trang web
Dữ liệu kiểm thử: Tên người dùng hoặc mật khẩu không chính xác khi nút 'Đăng nhập' được nhấn
Kết quả dự kiến: Người dùng không nên có thể đăng nhập và một thông báo lỗi sẽ được hiển thị.
Ví dụ này giải thích: Đây là một trường hợp kiểm thử được thiết kế để kiểm thử phản ứng của hệ thống khi thông tin tên người dùng hoặc mật khẩu không chính xác được nhập. Kết quả dự kiến của kiểm thử này là người dùng không thể đăng nhập, và sẽ xuất hiện một thông báo lỗi. Người kiểm thử có thể sử dụng Edge case này để kiểm thử chức năng của hệ thống bằng cách nhập bất kỳ đầu vào không hợp lệ nào. Điều này đảm bảo hệ thống an toàn và ứng dụng cung cấp trải nghiệm người dùng mong đợi.
Tại sao trường hợp cạnh lại quan trọng để xem xét?
Nếu bạn muốn biết tại sao trường hợp cạnh lại thực sự quan trọng, trước tiên bạn phải tìm hiểu một số sự thật thú vị bên dưới đây.
- Trường hợp cạnh có thể làm nổi lên những khuyết điểm trong hệ thống hoặc quy trình mà có thể nó không xuất hiện trong các tình huống thông thường.
- Chúng ta có thể xác định và giải quyết vấn đề tiềm ẩn bằng cách xem xét trường hợp cạnh trước khi chúng trở thành vấn đề lớn hơn.
- Trường hợp cạnh thường đại diện cho các tình huống thực tế có thể ít xảy ra nhưng vẫn có hậu quả nghiêm trọng nếu không được giải quyết đúng cách. Bằng cách xem xét những tình huống này, chúng ta có thể đảm bảo hệ thống và quy trình của chúng ta đủ mạnh mẽ để xử lý chúng.
- Trường hợp cạnh cũng có thể giúp chúng ta cải thiện trải nghiệm người dùng bằng cách xác định những tình huống & hành vi mà người dùng có thể gặp phải hoặc lỗi không mong muốn. Giải quyết những trường hợp cạnh này có thể làm cho hệ thống của chúng ta trở nên thân thiện với người dùng hơn và giảm bớt sự thất vọng khi họ gặp phải.
- Trường hợp cạnh có thể ảnh hưởng nghiêm trọng đến an toàn của bệnh nhân hoặc ổn định tài chính trong một số ngành, như y tế hoặc tài chính. Nhìn nhận những tình huống này, chúng ta có thể đảm bảo rằng hệ thống và quy trình của chúng ta được thiết kế để giảm thiểu rủi ro và bảo vệ những người phụ thuộc vào các hệ thống trên.
Edge case testing và Automation Testing
Bạn nên xem xét việc tự động hóa kiểm thử trường hợp cạnh (Automation Edge case testing) nếu bạn đang làm việc với một ứng dụng có một loạt giá trị đầu vào có thể lặp lại nhiều lần.
Kiểm thử tự động thường thực hiện cho việc kiểm thử trường hợp cạnh để xác nhận kết quả phần mềm đã được xác định trước bằng cách sử dụng các bài kiểm tra tự động (automation test scripting). Kiểm thử tự động đảm bảo rằng hệ thống đáp ứng đúng hiệu suất, chất lượng, hành vi và cấu hình của bài test. Kịch bản kiểm thử tự động có thể phát hiện ra những vấn đề mà kiểm thử thủ công không thể xác định. Đội ngũ thường sử dụng kiểm thử tự động để tăng tốc bộ bài kiểm tra và kiểm tra trường hợp cạnh trên các ứng dụng web và hệ thống phức tạp.
Cách Tìm Kiếm Trường Hợp Cạnh trong Kiểm Thử Phần Mềm?
Trường hợp cạnh trong kiểm thử phần mềm là các tình huống nằm ngoài phạm vi thông thường (normal scope) của đầu vào và hành vi. Chúng giống như những điểm ngoại lệ điên rồ mà chúng ta phải kiểm thử.
- Đôi khi, chúng ta phải kiểm thử những điều chúng ta không mong đợi hoặc không lên kế hoạch. Đó giống như kiểm thử những điều lạ lùng và khó khăn có thể xảy ra nhưng có thể không xảy ra. Bạn muốn đảm bảo phần mềm có thể xử lý những đầu vào khó khăn nhất và tình huống bất ngờ.
- Khi người kiểm thử có nhiều dữ liệu để xử lý và nghĩ rằng quá trình test có thể thất bại ở giới hạn cao nhất hoặc thấp nhất của dữ liệu, họ sử dụng cái gọi là Phân Tích Giá Trị Biên (Boundary Value Analysis). Điều này có nghĩa là chúng ta đang kiểm tra giới hạn cao và thấp của giá trị dữ liệu đầu vào vì chúng ta nghĩ rằng đó là nơi bài kiểm tra của chúng ta có thể gặp vấn đề. Kỹ thuật này hoạt động tốt nhất khi chúng ta có rất nhiều dữ liệu kiểm thử.
Hãy nghĩ rằng bạn đang kiểm thử một trang web chỉ cho phép tên người dùng có 6-12 ký tự. Với phân tích giá trị biên, bạn sẽ kiểm thử giới hạn thấp nhất (6 ký tự), giới hạn chính xác (7 ký tự), và giới hạn cao nhất (12 ký tự).
Tiếp theo, có Phân Loại Tương Đương (Equivalence Partitioning). Đây là về việc chia một tập dữ liệu lớn thành các phần nhỏ hơn. Nếu chúng ta truyền bất kỳ giá trị ngẫu nhiên nào từ một trong các phần đó, chúng ta có thể giả định rằng chúng ta đã bao phủ phần đó và không cần kiểm thử mọi thứ trong phần đó một cách riêng lẻ.
Hãy nghĩ rằng bạn đang kiểm thử một trang web chỉ cho phép tên người dùng với ký tự chữ và số. Bạn có thể phân loại thành hai lớp tương đương: tất cả các ký tự chữ cái và tất cả các ký tự số. Sau đó, bạn có thể kiểm thử một giá trị từ mỗi lớp để đảm bảo trang web chấp nhận cả số và chữ cái.
Một nhóm người kiểm thử có thể thực hiện kiểm thử trường hợp cạnh một cách thủ công, hoặc dùng các công cụ chuyên ngành có thể tự động hóa nó.
Làm thế nào để thực hiện kiểm thử trường hợp cạnh?
Kiểm thử trường hợp cạnh là một phần quan trọng của kiểm thử phần mềm, đặc biệt là việc kiểm thử các điều kiện cực độ hoặc biên của hệ thống, thường được bỏ qua trong quá trình kiểm thử thông thường. Kiểm thử này có thể được thực hiện cả theo cách thủ công và tự động.
Cách Thủ Công:
Xác định trường hợp cạnh: Bước đầu tiên là xác định các trường hợp cạnh cho ứng dụng của bạn. Điều này có thể được thực hiện bằng cách phân tích yêu cầu và thông số kỹ thuật của hệ thống.
Tạo các trường hợp kiểm thử: Khi bạn đã xác định được các trường hợp cạnh, hãy tạo các trường hợp kiểm thử để bao gồm các kịch bản này. Bạn nên bao gồm các đầu vào ở hoặc vượt quá giới hạn của những gì được mong đợi trong các trường hợp kiểm thử này.
Thực hiện các trường hợp kiểm thử: Thực hiện mỗi trường hợp kiểm thử một cách thủ công và quan sát cách hệ thống hoạt động dưới những điều kiện mà bạn cung cấp.
Ghi lại kết quả: Ghi lại kết quả của mỗi trường hợp kiểm thử, bao gồm bất kỳ vấn đề hoặc lỗi nào được phát hiện trong quá trình kiểm thử.
Cách Tự Động:
Xác định các trường hợp cạnh tiềm năng: Bước đầu tiên là xác định các trường hợp cạnh tiềm năng trong hệ thống. Điều này có thể được thực hiện bằng cách phân tích yêu cầu, User Story và Use Case.
Phát triển các kịch bản kiểm thử: Sau khi xác định được các trường hợp cạnh tiềm năng, bước tiếp theo là phát triển các kịch bản kiểm thử (testing script) để bao gồm những trường hợp này. Các kịch bản này được thiết kế để kiểm thử hành vi của hệ thống dưới điều kiện đã liệt kê trước đó.
Sử dụng công cụ tự động hóa: Các công cụ tự động hóa như Testsigma, Selenium và Appium có thể tự động hóa việc thực hiện các kịch bản kiểm thử này. Các công cụ này có thể mô phỏng tương tác của người dùng với hệ thống và xác minh hành vi của nó dưới các điều kiện khác nhau.
Phân tích kết quả: Sau khi thực hiện các bài kiểm tra tự động, quan trọng là phân tích kết quả để xác định bất kỳ vấn đề hoặc lỗi nào có thể đã được phát hiện. Phân tích này có thể giúp cải thiện chất lượng của hệ thống bằng cách xác định các khu vực cần cải thiện hoặc kiểm thử thêm.
Tại sao lại thực hiện kiểm thử trường hợp cạnh trước khi release?
Bạn có thể tự hỏi về câu hỏi TẠI SAO này! Tôi sẽ giải thích tại sao chúng ta thực hiện kiểm thử trường hợp cạnh trước khi phát hành.
Trước khi sản phẩm được phát hành (release to production), kiểm thử trường hợp cạnh là cực kì quan trọng để kiểm tra cách hệ thống hoạt động trong điều kiện bất ngờ nhất có thể. Hành vi không mong đợi của hệ thống có thể làm ảnh hưởng tới người dùng và khiến họ từ bỏ sản phẩm của bạn.
Kiểm thử trường hợp cạnh liên quan đến việc kiểm thử biên của hệ thống bằng cách nhập các giá trị vượt quá giới hạn sử dụng bình thường, như cung cấp đầu vào không bình thường hoặc giá trị âm lớn. Điều này có thể xác định và loại bỏ lỗi hoặc hành vi không mong đợi trong các trường hợp này. Kiểm thử trường hợp cạnh có thể giúp mang lại trải nghiệm người dùng mượt mà và liền mạch.
Làm thế nào để ưu tiên kiểm thử trường hợp cạnh?
Việc ưu tiên kiểm thử trường hợp cạnh có thể khó khăn vì đây là các tình huống hiếm hoi và độc đáo. Nhưng, quan trọng là vẫn phải ưu tiên các trường hợp này vì chúng có thể ảnh hưởng nghiêm trọng đến trải nghiệm người dùng (UX) và chức năng tổng thể của sản phẩm. Một cách tiếp cận để ưu tiên kiểm thử trường hợp cạnh là xem xét ảnh hưởng tiềm năng của chúng đối với an toàn của người dùng, tuân thủ pháp luật và mục tiêu kinh doanh. Ngoài ra, thu thập phản hồi từ người dùng và các bên liên quan có thể giúp xác định những trường hợp cạnh quan trọng nhất cần giải quyết.
Mẹo cho kiểm thử trường hợp cạnh trong quá trình phát triển của bạn
Bạn đã sẵn lòng để nắm bắt một số mẹo để thực hiện kiểm thử này chưa? Dưới đây là một số gợi ý:
Nghĩ từ góc độ của người dùng của bạn - họ sẽ sử dụng ứng dụng như thế nào, họ sẽ đi theo con đường nào, nếu họ phải thực hiện một số điều không mong đợi thì nó sẽ là gì?
Nghĩ về các kịch bản không thường xuyên liên quan đến việc sử dụng ứng dụng và các sự cố - ví dụ như là nếu pin hết, nếu có cuộc gọi khi ứng dụng đang được sử dụng, nếu có thông báo xuất hiện.
Luôn giữ mindset - nếu bạn có thể nghĩ đến, người dùng cũng có thể làm được. Vì vậy, không bao giờ giả định và luôn kiểm thử cho tất cả các con đường người dùng có thể thực hiện được.
Kết luận
Vậy là bạn đã biết - cách tìm, ưu tiên, và kiểm thử trường hợp cạnh, bạn có thể cải thiện chất lượng tổng thể của sản phẩm và tăng sự hài lòng của khách hàng. Vì vậy, đừng bỏ qua các trường hợp cạnh - chúng có thể là chìa khóa cho thành công của sản phẩm của bạn!
Câu Hỏi Thường Gặp
Trường hợp cạnh và trường hợp góc trong kiểm thử là gì?
Những nhà phát triển thực hiện kiểm thử trường hợp cạnh tại các giá trị biên của ứng dụng hoặc phần mềm. Họ cũng thực hiện kiểm thử trường hợp góc tại giao điểm của nhiều giá trị biên của ứng dụng hoặc phần mềm.
Sự khác biệt giữa trường hợp cơ bản và trường hợp cạnh là gì?
Chúng ta sử dụng trường hợp cơ bản như là cơ sở để giải quyết những trường hợp phức tạp hơn. Trường hợp cơ bản là những trường hợp đơn giản và cơ bản nhất của một vấn đề. Trường hợp cạnh là những trường hợp cụ thể, không bình thường của một vấn đề có thể làm cho thuật toán hoặc hệ thống bị lỗi.
Nguồn Kiruthika Devaraj - Testsigma