Here is a test description, testing the "Create New Widget" use-case.
Here is another test description, testing the "Create New Widget" use-case.
Here is another test description, testing the "Create New Widget" use-case.
Each example tests that you can create a new widget. In the third test, I was testing the functionality as an experienced programmer, thinking "OK, where are all of the places a bug can appear", and checking every one of these. Is the third one appropriate for a customer acceptance test?
How comprehensive is "too comprehensive"?
Qualities of Acceptance Testers Good domain knowledge. Able to study the competitive products in the market and analyze the same in the developed product. Having end-user perception while testing. Understand the business needs for each requirement and test accordingly.
The Acceptance Test Specification documents the tests to be conducted to verify that the system is working correctly. It provides a plan describing what to test and how to test, the details for each test scenario, the test data to be used, and the expected results.
The main aim of operational acceptance testing is to test the product with real-world settings and operation environment. Operational readiness is assessed based on the system's performance, stability, recoverability, maintainability, and other important aspects.
The user acceptance test cases should be detailed and simple but not as detailed as your third example. Acceptance testing is about making sure the customer gets what they agreed to. If you simply say, "click this then click that, etc, etc..." that is more like a functional test. You are not eliciting users to verify that functionality meets the test case laid out in the acceptance test. You are only asking them to click through tests that you could have simply automated.
User acceptance tests should be more along the lines of "create widget, verify that it appears, delete widget, etc." This will also encourage users to seek out individual features and (as a side effect) flush out any usability problems you may have overlooked.
I think that your acceptance tests should primarily be good path tests. Sometimes the "good" path will ensure that errors are properly handled. You should have other tests that validate your security and exercise the corner cases, but an acceptance test is more about making sure that the correct application has been built than making sure that every possible condition is handled correctly. If you have good unit tests and use best practices, then I think that the good path testing is entirely appropriate.
For example, I wouldn't necessarily test that I don't have problems with SQL injection if I've used a technology that enforces parameterized queries or where I generate queries by hand (I don't), that the unit tests validate that injection fails. Addressing the corner cases in unit tests makes it less important to focus on them in acceptance tests. If you need to include a few as examples to the customer that your backend implementation addresses their concerns, then by all means do so, but I wouldn't test things that I know I've addressed adequately via other testing.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With