A test case is a step by step procedure to test the functionality and design of a software. Test cases are prepared after reviewing the documents required for developing the software. All the requirements should be thoroughly and comprehensively studied before designing the test cases. A good test case should include all the requirements and cover the complete functionality of the software. The software will be tested by executing the prepared test cases.
For preparing the right test case, a tester should consider the following factors:
- User Interface
Positive: Testing the software in the positive way, that is to check whether the system is functioning properly with correct inputs. For example, testing an number field with integers.
Negative: Testing the software in a negative way, that is to check whether the system fails on giving wrong inputs. For example, testing a number field with alphabets, special characters etc.
User Interface: Testing the user interaction with the system. For example testing the links, images, alignment, padding, font, colour, labels, navigation, button etc
Usability : Testing the efficiency and accuracy of the software, that is to determine whether the user is able to perform the specified task. Successful login/registration to a site by a user is a perfect example.
Performance: Testing the performance of the system under a particular workload. Load and stress testing is an example for performance testing ie, testing a system by running multiple applications, testing with maximum number of users etc
Security: Testing the security of the system ie, to determine whether the data is protected or not. For example logged out users, by copy pasting the URL or by any other method, should not be able to access the pages which are accessible only for logged in users.
Security testing includes Authentication, Authorization, Confidentiality, Integrity, Non-repudiation
Reliability: Testing the consistency of the system, that is to determine whether the system is functioning properly in all conditions repeatedly. For example, the system will produce the same result on doing the repeated action.
Compatibility: Testing the compatibility of the system on different environments that is to ensure the functioning of the system on different browsers, hardware and operating system platforms. For example testing the product in different platforms like Windows, Linux, Mac etc and on different browsers like Mozilla Firefox, Chrome, Safari, IE etc.