In our earlier post, we made discussion on two types of test cases “Positive and Negative Test Cases”. Now we shall discuss next two types of test cases “Functional and Non-functional Test Cases”.
Functional Test Case
In functional tests, we execute test cases which tell about the functionality of the application and talks about the desired output to be seen. Internally we have different type of test cases when we write here like range, output values, Boundary Value Analysis (BVA) and so on. We give input and expect some output according to the Software Requirements Specification (SRS).At this point we check individual module completely by checking each and every tab, text box, buttons and so on.
Non-functional Test Case
Test cases related to user friendliness (like font, image, color, how easy to navigate etc), performance related and security related comes under here.
Example(s) Functional test cases
Functional test cases test a common business operation or scenario. Following are some examples of functional test cases.
1. Unit Test: Test common control-level navigation through a view. Test any field validation or default logic.
2. Module Test: Test common module-level user scenarios (for example, create an account and add an activity).
3. User Interface: Verify that a view has all specified applets and each applet has specified controls with correct type and layout.
Functional Testing covers
Unit Testing, Smoke testing, Sanity testing, Integration Testing (Top Down, Bottom up Testing), Interface & Usability Testing, System Testing, Regression Testing, Pre User Acceptance Testing (Alpha & Beta), User Acceptance Testing, White Box & Black Box Testing, Globalization & Localization Testing.
Example(s) Non-functional test cases
Testing the application against client’s and performance requirement. Non-functional testing is done based on the requirements and test scenarios defined by the client. In other words we can say that non-functional testing is testing of those requirements that do not relate to functionality. Following are common examples of non-functional tests.
1. Performance Test: Performance testing is testing that is performed, to determine how fast some aspect of a system performs under a particular workload. It can also serve to validate and verify other quality attributes of the system, such as scalability, reliability and resource usage.
2. Load Test: A test type concerned with measuring the behavior of a component or system with increasing load, e.g. number of parallel users and/or numbers of transactions to determine what load can be handled by the component or system.
3. Security Testing: Security testing is conducted to examine an application from the point of view of possibility to affect the user safety and/or make his/her data available to third parties. This testing is especially important for payment systems and other applications which use critical data about a user.
Non-functional Testing covers
Load and Performance Testing, Stress & Volume Testing, Compatibility & Migration Testing, Data Conversion Testing, Security/Penetration Testing, Installation Testing, Security Testing (Application Security, Network Security, System Security).
In a nutshell we can say that functional test cases targets business goals and non-functional test cases targets performance, resource utilization, usability, compatibility etc.
In our forthcoming post we’ll discuss “User Acceptance Test Cases”.