Kiểm tra thông qua giao diện người dùng hoặc nhấn trực tiếp vào lớp kinh doanh có thể được xem như hai loại kiểm tra khác nhau, với những ưu điểm và nhược điểm khác nhau.
Nếu bạn đang kiểm tra giao diện người dùng trực tiếp, thì bạn đang thử nghiệm những gì người dùng nhìn thấy và bạn không phải thay đổi mã để có thể kiểm tra nó. Tuy nhiên, nó trở nên khá khó khăn để kiểm tra trường hợp góc, hoặc làm thế nào hệ thống phản ứng với điều kiện đặc biệt (chẳng hạn như trường hợp ngoại lệ). Nó giống như Robert Martin nói, giòn. Nếu giao diện của bạn thay đổi, bạn cần thay đổi các thử nghiệm của mình. Vì vậy, kiểm tra thông qua giao diện người dùng phụ thuộc vào sự trưởng thành của giao diện người dùng của bạn. Sau này trong dự án, giao diện người dùng ổn định hơn, vì vậy việc kiểm tra qua giao diện người dùng có ý nghĩa hơn. Ngoài ra, kiểm tra một số nội dung thông qua giao diện người dùng là khó hoặc phức tạp.
Nếu bạn đang thử nghiệm lớp doanh nghiệp, bạn có thể dễ dàng kiểm tra điều kiện góc hơn và bạn ít bị ảnh hưởng bởi các thay đổi trong giao diện người dùng. Tuy nhiên, như bạn nói, phần mềm phải được viết theo cách như vậy để cho phép thử nghiệm loại này. Bạn thậm chí có thể phải trưng ra một giao diện mới để cho phép nó, mà sau đó phải được duy trì. Theo kinh nghiệm của tôi, đôi khi rất khó để các nhà phát triển hỗ trợ loại giao diện này. Nó được xem là không quan trọng như giao diện thực. Nhưng nó luôn luôn có thể. Loại giao diện này cần mua từ các nhà phát triển, nếu không bạn có nguy cơ bị 'không được hỗ trợ' theo thời gian.
Nếu bạn không có giao diện bên ngoài, hãy thử yêu cầu. Bạn không bao giờ biết, bạn có thể thuyết phục họ rằng đó là một ý tưởng hay. Nó dễ dàng hơn khi bắt đầu một dự án.
Nếu bạn có giao diện bên ngoài, hãy sử dụng giao diện đó để kiểm tra logic nghiệp vụ của bạn.
Nếu không, bạn sẽ phải sử dụng giao diện người dùng để kiểm tra những điều này. Một cách tiếp cận sẽ là sử dụng giao diện người dùng để thực hiện kiểm tra khói, để trả lời (các) câu hỏi sau đây: Phần mềm này có thể kiểm tra được không? Hãy suy nghĩ về những điều phổ biến bạn phải kiểm tra mỗi khi bạn nhận được một bản dựng từ dev. Tôi có thể đăng nhập, tôi có thể đăng xuất, trang chính có xuất hiện không, tôi có thể làm một đơn hàng đơn giản không? Chọn 5 hoặc 6 trong số những thứ này và xây dựng bộ thử nghiệm tự động để kiểm tra những điều này. Sử dụng các bài kiểm tra này làm hướng dẫn về số lượng chức năng bạn thực sự có thể kiểm tra thông qua giao diện người dùng và mức độ hữu ích của nó.
Sau đó, bạn có thể sử dụng đối số này làm đối số khi bạn đi tới nhà phát triển và yêu cầu giao diện bên ngoài.
Bạn đề cập đến việc phát triển một giao diện bên ngoài: Tôi cho rằng giao diện này cần phải được triển khai trên thùng/máy chủ ứng dụng , được hiển thị thông qua một số cơ chế truy cập từ xa như dịch vụ web và được gọi từ xa từ thử nghiệm chấp nhận? Hoặc điều này có thực sự cần thiết nếu đó là một ứng dụng dựa trên Spring, nơi mà vùng chứa không thực sự bị khai thác? – Spiff
Có, nó sẽ cần phải được triển khai và tiếp xúc là tốt. Nó có thể là một phần của cùng một gói, nhưng như bạn nói bạn sẽ cần phải có khả năng kích hoạt và vô hiệu hóa nó. –