Trusting the results of your software tests is one of the most delicate subject and thinking negatively about it is an important aspect today. It is said that testers should not only test for the positive results i.e. whether the system functions as expected with valid inputs, but also check for negative value tests i.e. if the application works with quality under provided invalid inputs.
It is always seen that 85% of the test cases passed are related to only 70% of the total requirements. The other 30% are for failed negative value testing which is often overlooked. SO the final aim of any software testing should be to make it 100% reliable and quality application.
Positive testing is a method of checking if the application does what it is expected to do. When a software tester writes the test cases for a set of specified outputs, it is called as a positive test. The idea here is to make sure that the system accepts inputs for the normal use by the user. For example, checking the system for a user name and password combination to login is a way of positive testing.
Any software system is highly vulnerable to inappropriate data. This seems scary, isn’t it? The end users sooner or later always find a way to divert from the ethical ways, which is dangerous and risky. The positive testing helps the administrators to quickly understand & learn these practices to fix issues in no time.
Positive testing also facilitates the sharing of knowledge on system architecture since the projects are started small and tested thoroughly through all the phases of SDLC.
Since positive testing is carried out against the valid inputs, negative testing is just the opposite. The application is validated against the invalid inputs. The objective behind this is to make sure the system shows error when it’s supposed to and does not show error when it’s not supposed to.
Whenever a tester thinks about the test cases, he first thinks about the positive inputs. It is always very essential to know why negative testing is important. It is considered as a crucial factor in test case execution.
It is interesting to note that negative testing is done to break the project with respect to its different test conditions. This gives the tester a vision to test for scenarios that are not designed and provides an invalid set of input.
Let us differentiate between positive testing and negative testing in a simpler way by considering a scenario:
|POSITIVE TESTING||NEGATIVE TESTING|
|1.||Test for a specific number of user inputs||Test for excessive (load) inputs|
|2.||Checks for valid set of values||Checks for invalid set of values|
|3.||Its done by giving the positive point of view
Eg: Numbers like 9999999999
|Its done by keeping the negative point of view
|4.||Done to identify known set of test conditions||Done with unknown set of test conditions|
|5.||To check whether all client requirements are met while doing the project||Anything that is not mentioned in the client requirement is tested|
|6.||In positive test scenarios, password test should accept 6- 20 characters||Password test box should not exceed more than 20 characters|
|7.||Accept all numeric and alphabetic values||Do not accept special character|
Testing any software is essential to deliver quality software and ensure a bug-free working. Hence, using both the positive testing and negative testing techniques give enough assurance about the quality of the product.