Welcome!

Wayne Ariola

Subscribe to Wayne Ariola: eMailAlertsEmail Alerts
Get Wayne Ariola via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Virtualization Magazine, Datacenter Automation, Software Testing Journal, Sarbanes Oxley on Ulitzer

Blog Feed Post

How Does Your Unit Testing Process Stack Up?

New Unit Testing Maturity Model

Unit 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 Maturity Model

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, d
evelopers 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.

Read the original blog entry...

More Stories By Wayne Ariola

Wayne Ariola is Vice President of Strategy and Corporate Development at Parasoft, a leading provider of integrated software development management, quality lifecycle management, and dev/test environment management solutions. He leverages customer input and fosters partnerships with industry leaders to ensure that Parasoft solutions continuously evolve to support the ever-changing complexities of real-world business processes and systems. Ariola has more than 15 years of strategic consulting experience within the technology and software development industries. He holds a BA from the University of California at Santa Barbara and an MBA from Indiana University.