DEV Community

Rajessh Kumar Ramakrishnan
Rajessh Kumar Ramakrishnan

Posted on

Functional and Non-functional testing

Functional testing:
Functional testing is a software testing done by both Manual and Automation to make sure the software meets the Software required document and business requirements from the customer. According to the client needs, we focus on preparing the test cases including both positive and negative cases, so that the software guarantees the clients by covering all the test cases from the start to end.
Non- functional testing:
Non-functional testing is a software testing also done by both manual and automation team to mostly check the throughput and sensitivity of how the software is performing after making sure the functionality of the software such as reliability, performance and usability. Even the OS upgrade comes under non-functional testing.
Types of functional testing:
Unit testing: Unit testing is a testing where when the developer starts to develop a new feature, they write a test case and start testing the feature to make sure it works as expected from the software requirement document.
Integration testing: Integration testing is a testing where when software is getting built, the multiple features are tested to make sure whether it’s working as expected when they are integrated.
Regression testing: Regression testing is a testing which will be done when there is a small change or any code change kicked in to make sure it doesn’t affect the software. So, when doing regression testing, the existing features should work as expected as it’s untouched.
Sanity testing: Sanity testing is a testing which is also a sub-set of regression testing which will be done once they upgrade it after all the code changes kicked in. So once the final version is available, testers do sanity testing to make sure the software works as expected.
Smoke testing: Smoke testing is a testing which done to verify the build is working as expected.
User acceptance testing: User acceptance testing is a testing done in the end as sanity testing before releasing the software.
System testing: System testing is a testing which includes both hardware and software where when the final version of the software is released and it will be done end to end testing.
Performance testing: It comes under non-functional testing where it makes sure about reliability and performance where when we load too many jobs, it doesn’t get crash or it works as expected to meet the requirements given by systems or developer.
Stress testing: Stress testing is a testing where the tester can load as many as jobs needed to check if the software can handle the jobs without crash and passes without any issues. So basically, it just checks and validates what’s the correct behavior when we load heavy jobs in the software.
Load testing: Load testing is a testing which will be done by the multiple users at a same time to validate the robustness and performance of the software.
In short, Functional testing is more focused on business requirement and non-functional testing is more focused on performance of the software.

Top comments (0)