Feature: Soapbox Musings

The Importance of Utilizing a Software QA Team

Author: Robert Tekiela
Published: May 14, 2011 at 4:55 am
Share

For anybody involved in a traditional software development process, knowing whether or not you need a QA team is a critical question to answer. It's a silly question, really, considering that assuring quality is pretty much essential in software development. But, if there's no QA team in place, how would one assure quality?

There are many agile organizations however, which operate without dedicated QA people. Some do it out of necessity, i.e. lack of financial resources. Many do it out of conviction. They believe that they found a more effective way of assuring quality.

It is Not a Question of Whether You Need Quality

Of course you do. Software needs to satisfy a level of quality before it is released. Assuring quality involves running a variety of test cases emulating a broad set of usage scenarios, load factors, environment combinations, edge cases etc.

Automation is an Answer

QA can be automated to a large degree. There are many tools and frameworks on the market which help with automation of unit, integration, regression, stress and performance tests. Automated test cases guarantee repeatability of the process, can be executed faster and reduce need for manual labor.

Agile QA

Agile methodologies incorporated a number of ideas to address QA needs:

  • Test-driven development (TDD) process requires developers to write test cases before writing the actual code. When developer completes code, by definition it has to pass test cases.
  • Continuous integration (CI) involves integrating code from all developers early and often - typically many times a day. Combined with automated test cases it results in catching and resolving integration issues immediately.
  • Small releases reduce risk of running into major issues or surprises.
  • Frequent releases allow to respond to and address any issues which might be found on production rapidly.

TDD and CI make developers clearly responsible for writing and execution of test cases. With a good adherence to the process it is entirely possible to develop software without a dedicated QA team.

Independent Validation

Well designed processes incorporates a system of checks and balances which provide a feedback loop, a mechanism to keep the process on track. QA process which relies solely on the Development team lacks such mechanism. QA team can bring a different perspective, add breadth to the test cases and provide independent validation of software. Hence even with a perfect agile process there is value in having a QA team. It can be however much smaller than in a traditional software development process.

Continued on the next page
 
 

About this article

Profile image for rtekie

Article Author: Robert Tekiela

Bob Tekiela is CTO of 500friends, a Y Combinator startup with focus on social commerce. Prior to 500friends he was CTO of PopularMedia, a social media innovator backed by Sequoia and CTO of StrongMail, an email marketing and social media technology provider which acquired PopularMedia. …

Robert Tekiela's author page

Article Tags

Share: Bookmark and Share

Add your comment, speak your mind

Personal attacks are NOT allowed
Please read our comment policy