Home > Six functional tests to ensure software quality
Special Report:
EMAIL THIS

Six functional tests to ensure software quality

07 Mar 2008 | Info-Tech Research Group, Special to SearchSoftwareQuality.com

Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   

The following is an excerpt from "Set Your Sights On the Six Software Testing Targets," a research report produced by Info-Tech Research Group.


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. This form of testing is carried out by the developer as the component is being developed. The developer is responsible for ensuring that each detail of the implementation is logically correct. Unit tests are normally discussed in terms of the type of coverage they provide:

    • 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).

    Unit tests allow developers to continually ensure that a unit of code does what is intended even as associated units change. As the software evolves, unit tests are modified, serving as an up-to-date form of documentation.

  2. Ensure every function produces its expected outcome with Functional Testing.
    Functional testing addresses concerns surrounding the correct implementation of functional requirements. Commonly referred to as black box testing, this type of testing requires no knowledge of the underlying implementation.

    Functional test suites are created from requirement use cases, with each scenario becoming a functional test. As a component is implemented, the respective functional test is applied to it after it has been unit tested.

    For many projects, it is unreasonable to test every functional aspect of the software. Instead, define functional testing goals that are appropriate for the project. Prioritize critical and widely used functions and include other functions as time and resources permit.

    For detailed information on how to correctly develop use cases to support functional testing, refer to the Info-Tech Advisor research note, "Use Cases: Steer Clear of the Pitfalls."

  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 ...

    Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   



    RELATED CONTENT
    Software testing and quality assurance (QA) fundamentals
    How to deal with iteration issues in Agile
    Five steps to fostering better software tester and QA results
    Software Testing: New software testing technologies bring new challenges
    Testing strategies for complex environments
    Astronaut's STPCon advice: Teamwork delivers "The Right Stuff"
    How to make your software tamperproof
    Software consortium seeks standard quality metrics
    Demo: Using WebGoat, a free software testing tool
    Seven steps for a quality change and configuration management program
    Winning responses to "Why is QA always the bottleneck?"

    Functional software testing
    Testing strategies for complex environments
    Software Testing Ezines
    Improving software testing productivity using record-playback
    How to test usability for a positive user experience
    Data warehouse/BI performance testing tool recommendations
    Is online application testing for smartphones different from other software testing?
    Why do performance testers write new scripts so often?
    The case for software tester, analyst partnerships
    Fixing Web application performance troubleshooting problems
    Achieving peak performance in integration testing

    Software integration testing
    Free Web proxy security tools software testers should get to know
    Running user interface, unit and integration tests suites
    Ajax testing: Using available tools is key
    Building, using tests on Microsoft Visual Studio Team System
    Configuration testing: QA pros discuss 10 things you may not know
    What is system integration testing?
    What type of designs are needed to write integration test cases?
    Who is responsible for integration testing, developer or tester?
    How to develop a checklist for unit, integration and system testing
    Integration testing: Is it black box or white box testing?

    RELATED GLOSSARY TERMS
    Terms from Whatis.com − the technology online dictionary
    build  (SearchSoftwareQuality.com)
    code review  (SearchSoftwareQuality.com)
    conformance testing  (SearchSoftwareQuality.com)
    error handling  (SearchSoftwareQuality.com)
    garbage in, garbage out  (SearchSoftwareQuality.com)
    load testing  (SearchSoftwareQuality.com)
    NUnit  (SearchSoftwareQuality.com)
    quality assurance  (SearchSoftwareQuality.com)
    stress testing  (SearchSoftwareQuality.com)
    white box  (SearchSoftwareQuality.com)

    RELATED RESOURCES
    2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
    Search Bitpipe.com for the latest white papers and business webcasts
    Whatis.com, the online computer dictionary


    critical units to integrate.

    Also, consider whether all subsystems should be tested first or if all layers of a single subsystem should be tested before being combined with another subsystem.

    Combining the various components together in one swift move should be avoided. The issue with this approach is the difficulty in localizing error. Components should be integrated incrementally after each has been tested in isolation.

  4. 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.

    Determining when regression testing is sufficient can be difficult. Although it is not desirable to test the entire system again, critical functionality should be tested regardless of where the modification occurred. Regression testing should be done frequently to ensure a baseline software quality is maintained.

  5. 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. (It is fruitless to test interaction between systems that will not collaborate once the developed system is installed.) This is done using process flows that encapsulate the entire system.

    The need for a developed system to coexist with existing enterprise applications necessitates developing testing goals that can uncover faults in their integration. In the case that the new system is standalone software and there is no requirement for compatibility with any other enterprise system, system integration testing can be ignored.

  6. 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. Early definition ensures customer expectations are set appropriately and confirms for designers that what they are building will satisfy the end user's requirements. 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.

>> Download the complete report.






Software Quality Testing - Research and White Papers
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts