As you know, it is generally not possible to identify and test 100% of the requirements of anything other than the most simplistic of software systems or applications. To think otherwise is often referred to as the fallacy of exhaustive testing in ISEB or ISTQB circles. And even when it is possible, it is often not feasible due to the presence of diminishing returns.
Therefore, it is important to come up with some standardized categories that can aid in the development of the business and functional requirements. This helps to provide an overall framework that can provide focus and streamline efforts. As such, listed below are 3 categories of requirements that might help develop such a framework. It’s obviously not a comprehensive list, but it is a good starting point.
First, error messages should be incorporated into the requirements. Things such as when they will be displayed, to whom, and how should all be tested. You will also want to make sure the error messages are written in an understandable way, as developers sometimes are not the best writers.
Second, load testing must be incorporated, both in terms of bandwidth as well as volume of users. Specifically, you will need to test what happens if too much load is introduced into the system, what error messages are displayed, whether or not the system should have an auto shut-off mechanism, what happens to transactions that are already in the queue, etc.
Third, a category for permissions is useful, particularly if the company handles sensitive or personally-identifiable data. There should be clear, testable requirements around who can access various parts of the system, who can administer the permissions, what happens when access is denied, etc.
There are dozens of other categories that could potentially be used to develop a standardized requirements-development framework, depending on your company’s industry and product line. Use the 3 suggestions described here as a starting point, and then expand the list in a way that synergizes with your company’s products, processes and competences.
Filed Under: Software Testing