Functional testing is a process used within software development in which software is tested to ensure that it conforms with all requirements. Its focus is on validating features, database access, security and functionality of the Application under Test.
It uses external interfaces, including Application programming interfaces (APIs), Graphical user interfaces (GUIs), and Command line interfaces (CLIs).
The main objective of functional testing is to verify that each function of the software application operates in accordance with the written requirement specifications.
FT life cycle includes Test Requirements Gathering, Test Planning, Test Strategy, Test Execution, Defect Management, Test Results Reporting, Test Metrics collection, Analysis and Improvement
Types of FT include Unit, Smoke, Sanity, Integration, White box, Black Box, UAT and Regression Testing.
Functional Testing Tools includes JMeter, SoapUI, and Watir.
Regression Testing is always done to verify that modified code does not break the existing functionality of the application and works within the requirements of the system.
- It is required when there is any change in requirements and code is modified according to the requirement
- New feature is added to the software
- Defect fixing
- During Release cycles (Alpha, Beta etc…)
Regression Testing techniques include Retest all, Regression Test Selection and Prioritization of test cases.
How much regression testing is enough depends upon the scope of the new feature added and the impacted areas. Its life cycle includes
- Performing an initial “Smoke” or “Sanity” test
- Understanding the criteria to select the test cases for Regression Testing
- Prioritization of test cases
- Methodology for select test cases
- Resetting the test cases for test execution
- Concluding the result of a regression test cycle