For this post I chose the article “What is Non Functional Testing?” on Software Testing Help’s website. I chose this article because I like the content on this site that I have read previously and I often forget the difference between functional and non-functional testing. I’m hoping by covering it in a blog it will help commit it to memory and also give me my own quick reference if I need it in the future.
To start it’s important to remember the two broadest types of testing are functional and non-functional. Non-functional testing in a general sense addresses things like application performance under normal circumstances, the security of an application, disaster recovery of an application, and a lot more. These types of testing are just as important as meeting requirement of any application. They are what contribute to the quality of an application.
To follow are the most popular non-functional techniques as a quick reference and a quick explanation:
- Performance Testing: Overall performance of a system. (meets expected response time)
- Load Testing: System performance under normal and expected conditions. (test concurrent users)
- Stress testing: System performance when it’s low on resources. (low memory or disk space, max out)
- Volume Testing: Behavior with large amounts of data. (Max database out and query, check limit of data failure)
- Usability Testing: Evaluate system for human use. (ease of use, correct/expected outputs)
- User Interface Testing: Evaluate GUI. (Consistent for its look, easy to use, page traversals)
- Compatibility Testing: Checks if application can be used with other configurations. (different browsers)
- Recovery Testing: Evaluates for proper termination and data recovery after failure. (loss of power, invalid pointer)
- Instability Testing: Evaluates install/uninstall success. (correct system components, updating existing installation)
- Documentation Testing: Evaluates docs and user manuals. (document availability, accuracy)
In conclusion this covers a good portion of the main types of non-functional testing. This will really just serve as a quick reference or lookup to remind me of the different types of testing that categorize as non-functional. This isn’t changing the way I code but it has reminded me the importance of non-functional testing. Just meeting the requirements during the development of an application does not ensure you will output something with high quality. I would argue that non-functional testing responsibility falls more on the developers to know what to do more than the client. A client requesting requirements for an application likely will not even think of a lot of the testing types mentioned above. I think it’s important for the developers to openly communicate with clients about non-functional testing so that they can come up with the best testing plan together.
Overall this was another good article on Software Testing Help. It was exactly the details I needed and nothing more. Looking ahead I might as well do a similar blog on functional testing to complete my own testing type’s reference.
From the blog CS@Worcester – Software Development Blog by dcafferky and used with permission of the author. All other rights reserved by the author.