Six Functional Tests to ensure Software Quality
Six types of functional testing can be used to ensure the quality of the end product. Understand these testing types and scale the execution to match the risk to the project.
1.                  Ensure every line of code executes properly with Unit Testing.
·        Unit testing is the process of testing each unit of code in a single component.
  • Testing is carried out by the Developer as the component is being developed.
·        Unit tests are normally discussed in terms of the type of coverage they provide:
o        Function coverage: Each function/method executed by at least one test case.
    • Statement coverage: Each line of code covered by at least one test case (need more test cases than above).
    • Path coverage: Every possible path through code covered by at least one test case (need plenty of test cases).
2.                  Ensure every function produces its expected outcome with Functional Testing.
Functional testing as black box testing addresses concerns surrounding the correct implementation of functional requirements, this type of testing requires no knowledge of the underlying implementation.
·        Functional test suites are created from requirement use cases, with each scenario
·        Prioritize critical and widely used functions and include other functions as time and resources permit.
·        Develop use cases correctly to support functional testing
3.                  Ensure all functions combine to deliver the desired business result with System Testing.
·        System testing executes end-to-end functional tests that cross software units, helping to realize the goal of ensuring that components combine to deliver the desired business result.
·        In defining the project's system testing goals, focus on those scenarios that require critical units to integrate.
·         Components should be integrated incrementally after each has been tested in isolation.
  1. Ensure new changes did not adversely affect other parts of the system with Regression Testing.

·        Regression testing ensures code modifications have not inadvertently introduced bugs into the system or changed existing functionality.
·        Goals for regression testing should include plans from the original unit, as well as functional and system tests phases to demonstrate that existing functionality behaves as intended.
  1. Ensure the system integrates with and does not adversely affect other enterprise systems with System Integration Testing.

·        System integration testing is a process that assesses the software's interoperability and cooperation with other applications.
·        Define testing goals that will exercise required communication.
  1. Ensure the customer is satisfied with the system with Acceptance Testing.

·        Acceptance testing aims to test how well users interact with the system, that it does what they expect and is easy to use. Although it is the final phase of testing before software deployment, the tests themselves should be defined as early as possible in the SDLC.
·        To that end, acceptance test cases are developed from user requirements and are validated in conjunction with actual end users of the system. The process results in acceptance or rejection of the final product.

0 comments