Service Virtualization, Development Testing, API Testing Tips

How Does Your Unit Testing Process Stack Up?

Posted on Aug 1, 2013 10:22:00 AM

by Parasoft Marketing

Find me on:
    

New Unit Testing Maturity Model

Unit Testing Maturity ModelUnit testing is a cornerstone of successful Development Testing strategies and should be adopted by any organization seeking to reduce risks and costs over the application development lifecycle.

As a primary quality gate, unit testing:

  • Prevents the introduction of defects that would consume valuable resources if detected later in the development process.
  • Reduces risks associated with faulty software, which may result in costly litigation, brand erosion, or even loss of life.
  • Verifies the functionality of the application and serve as artifacts for compliance traceability.

Unit Testing processes can range from very simple ad-hoc or reactive efforts to highly-optimized efforts where policies are regularly updated as part of a root-cause analysis effort to prevent defects from being discovered in QA.

Ad-Hoc Unit Testing

With ad-hoc unit testing efforts, developers independently choose to create and run unit tests while developing functionality, but tests are not saved or maintained. Instead, they are isolated on independent machines. Ad-hoc unit testing characteristics include:

  • Test reports are non-existent or unverifiable.
  • Tests are not maintained in an SCM.
  • No scheduled automation.
  • Reintroduction of defects is accepted as “normal” or “unavoidable.”

Any pockets of maturity at this point are based on the experience and initiative of individuals. There is no centralization of assets; it’s every man for himself.

Tests and test artifacts are typically created as one-off solutions and may or may not be stored on a local machine. Tests are created without consideration of the business or use case.

Signs that it's time to advance from this level include: 

  • The application is not adequately tested or integrated due to stated lack of time.
  • Business is lost or hard to win due to users’ perception of application instability.
  • Returns, uninstalls, and/or complaints tend to interrupt or control development activities

Optimized Unit Testing

At the optimized level of unit testing, there is an organizational focus. Policies are regularly updated as part of a root-cause analysis effort to prevent defects from being discovered in QA.

Unit tests are a verification mechanism to verify that policy and process are in synch. Test results are linkable and bi-directionally traceable to all data associated with software and device development. Traceability extends beyond the traditional borders of the SDLC.

Unit test policy is seamlessly integrated into a controlled quality, security, performance, and reliability framework, orchestrated from a centralized interface and inclusive of both development and nondevelopment systems. True Business Intelligence is achieved.

Developers, testers, or managers kick off a test run based on any combination of technical and business requirements. The system automatically appropriates the needed environments, VMs, and tests, then provides results as part of a customizable business intelligence layer.

Unit Testing Maturity Model

This is just a brief introduction to the two extremes of unit testing maturity. Most organizations today fall somewhere in between these two polar extremes.

Parasoft, the leader in Development Testing, has developed a unit testing maturity model that provides a detailed look at the 5 different levels of unit testing: Ad-hoc, Reactive, Proactive, Managed, and Optimized.

If you want to assess where your organization currently stands and see what’s involved in moving forwarddownload the complete Unit Testing Maturity Model.

Topics: Development Testing, Unit Testing

Subscribe to Email Updates

Achieve Faster Time to Market with Reduced Business Risk

blog_banners_sidebar

Explore SDLC acceleration best practices, trends & insights with your peers and industry experts

Follow Me