liveBook · Manning

Quality assurance

As explained in Lead Developer Career Guide

An organized sequence of activities for planning, designing, executing, and reporting software quality checks.

Quality assurance (QA) is the organized work of checking whether software meets its requirements and works as intended. It belongs in the development process before release, when problems can still be found and fixed. QA professionals bring testing skills that complement development work; expecting developers and project managers to take on every testing task can leave practices undocumented. section 6.0 section 6.1 section 1.2.2

Document the QA process in four stages so checks are consistent and responsibilities are clear:

  • Planning: decide what quality checks are needed. section 6.6
  • Test design: prepare the checks to be performed. section 6.6
  • Execution: perform the checks. section 6.6
  • Reporting: record and communicate the results. section 6.6

Use complementary kinds of testing. Automated unit tests check for code-level problems; integration tests check interactions between parts of a system; manual tests add a human perspective, including whether the user experience matches requirements. Together, they cover more than any one approach alone. section 6.4.2

When testing becomes everyone’s spare task

At one workplace, management expected project managers and developers to perform all QA tasks. Testing practices were not reliably followed or documented. On teams with dedicated QA professionals, problems could instead be found and fixed before production. The practical lesson is to make QA an explicit team responsibility, not an assumed extra duty. section 6.1

Lead developers help QA by making technical requirements clear, getting code ready for testing, answering questions, and using recurring problems to improve development practices. Include QA staff when changing the process: their perspective can reveal effects on product quality. Keep the process documented and update it with the team as work changes. section 1.2.2 section 6.4.2 section 6.6

How Lead Developer Career Guide covers it

How deep it goes
Outlines planning, test design, execution, and reporting, and distinguishes three testing approaches without giving detailed test procedures.
Examples
Contrasts a workplace that assigned QA tasks to developers and project managers with teams that included dedicated QA professionals.
What it assumes
Assumes familiarity with development teamwork but briefly explains what unit, integration, and manual tests each check.
What you can do after
Practice/perform a documented QA process while coordinating testing readiness and improvements with QA professionals.
How it connects
Connects QA to the development process, requirements, unit testing, integration testing, manual testing, and process improvement.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Lead Developer Career Guide. The section links point to the parts of the book it draws on.