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



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


RELATED CONTENT
Software testing and quality assurance (QA) fundamentals
Five roles test managers play in agile development: Tutorial, part one
Three software regression testing steps can perfect defect fixes
Software Testing: Assessing risk and scope
Software Testing: How to know you're ready to start testing
Quality assurance (QA) and testing's role in requirements
Test case preparation for a Web-based application
The difference between functional testing and regression testing
Mapping results in test environment to production environment
Agile software development tutorial: Agile testing
Creating strong QA and testing strategies in a changing world

Functional software testing
Social engineering training could disrupt botnet growth
Testing functionality, performance of mobile Web applications
Lieberman Enterprise Random Password Manager
AMD's AVX instruction set
Infragistics NetAdvantage for .NET
Features in Teamprise Client Suite 3.2
AviCode Intercept Studio
Developer Express' DXperience 2009
Ascentn's AgilePoint Developer
Parasoft SOA Quality Solution, SOAtest 6

Software integration testing
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?
How to use tools for system integration testing
An approach to integration testing
Unit, integration testing first steps toward SOA quality
IT operations get help testing software, infrastructure changes
Functional testing: Unit testing, integration testing and beyond

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




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