Software testing is not as simple as what people usually think about it. It has several levels corresponding to several phases of software development. These levels are Unit Testing, Integration Testing, System Testing, Acceptance Testing, and Regression Testing.
The purpose of System Testing is to test the design and the whole system (integrated system) if they fit the predefined requirements.
Function testing is considered as one of the most important parts of system testing. It ensures all the behaviours of a system is satisfied with the requirements. Functional testing bases on black-box technique, it tests the application and internal processes by using GUI and then analyses the outputs/results.
The system will be tested using requirement/ specification functions (which offered by clients or based on use cases designed by the design team). The most important role of functional testing is to validate the features and behaviours of a system to make sure they fit the requirements.
- Read more: Cross Browser Testing
What testers have to do during function testing is to validate application that every specific requirement (of the client) is mentioned exactly in SRS. Techniques for functional testing is chosen based on these 2 perspectives:
– Testing bases on requirement: all requirement is tested first. This ensures the most features and functions of the requirement will be tested.
– Testing bases on business: in this case, scenarios relate to system business will be performed. This uses knowledge about business processes. Normally, Functional testing involves these steps:
- Determine implemented functions
- Prepare input base on spec
- Determine the output base on spec
- Perform test cases
- Observe the result, compare to the expected output
Read more: Why Testing
For example, with function Search, we do function testing as below:
– Determine the way system do a search, tradition search (type in a keyword, hit button search, the system does search and then displays result if any) or instant search (show result as user type)
– Perform these test cases: search without input; search with empty input; search with keyword contains HTML tags, or keyword is the number, normal text or symbols; … the – Check if
– Check if the real output is relevant (by comparing to expected output)
In summary, I’ve covered the use and concept of functional testing. In the next article, I will introduce the rest of system testing, such as Performance Testing (which makes sure resource distribution is optimized to satisfy requirements about response time or process time), Stress Testing (also known as Load Testing, which makes sure the system can work well under high pressure, such as serving thousands of people)