The role of QA in the Software Development Life Cycle isn’t always clear. Sure, there’s a QA testing phase. But what about all of the other stages? What role do software testers play in those, if any? First let’s go over what the Software Development Life Cycle is, and then take a look at the roles and responsibilities for QA at each step.
What is the Software Development Life Cycle?
The Software Development Life Cycle (often abbreviated to “SDLC”) is a framework for, well, developing software. The SDLC methodology is a structured process that splits each aspect of software development into different phases.
In an Agile Software Development Life Cycle, the team can jump back and forth between SDLC phases. (Learn more about the Agile QA Process, which we’ll be focusing on below.)
What Are the Phases of the Software Development Life Cycle?
The Software Development Life Cycle is split into six main phases. These can differ slightly depending on your team’s preferences and interpretation of the SDLC. But generally speaking, these can include:
The Role of QA in Planning
The first step of the SDLC is the planning phase. Planning will often include include mapping out the requirements for upcoming features. In an Agile process, the requirements are loose — and will likely change once development gets rolling. But when following best practices, there will at least be an initial idea of what the new feature(s) will be like.
Many people may not think that this would affect QA. But a good QA tester will be an advocate for and expert on user experience. After all, user experience should always be taken into account when planning out new features. Not only does good user experience make the end result more likely to be well-developed, but it also increases the company’s potential for profit. Good user experience keeps people coming back!
Even in the initial planning phase, QA Analysts and Engineers can weigh in on new features. They can point out potential issues with user experience that may even affect the team’s decision to move forward with the feature or not. Having QA experts involved in the planning phase can save teams tens of thousands of dollars in design and development time that might have been wasted. And even if QA’s input doesn’t result in changes, having a sneak preview of new features coming can help QA start to plan out test cases.
The Role of QA in Design
Much like the planning process, having QA involved in the design phase can save companies significant amounts of money. It can also result in a better end product, which will bring in more money from happy customers.
Bad user experience doesn’t always mean that something is visually unappealing, or that the feature is completely broken. There are aspects of design that can look amazing and function as intended, but still annoy the people using the feature. (Learn more in our article, What is User Experience?)
When QA is involved in the design phase, they can identify aspects of the design that might cause problems — while they’re still in-progress. This enables the designer or wireframes creator to make changes on the fly. But if QA doesn’t see design-related problems until the official testing phase, the company may have to go back and re-do the design or wireframes completely.
The Role of QA in Implementation
In programming, there’s almost always more than one way to implement a new feature. There are pros and cons to different methods, some of which might end up having a negative effect on users.
For example, a developer might be contemplating how to implement a data-intensive section of a page. Maybe one way of doing it would take longer to load, but would look better once it did.
On the other hand, another way of implementing it might load faster, but not include as many options. QA could weigh in on the potential impacts on user experience, or suggest using a loading animation to make up for any lag time.
This doesn’t mean that developers should go over their code line by line with QA testers. But if issues are brought up during daily standups, QA can jump in and help out as needed with the implementation phase.
The Role of QA in Testing
The role of QA in testing may sound obvious. But QA does more than just “test” in the testing phase. From writing test cases to bug reports, so much of a tester’s time is devoted to other activities as well. Of course, QA will (or should) thoroughly test the app or site. But other activities include:
- Writing test cases. This involves doing a heavy walkthrough of each and every section, right down to the smallest details. This can be done even if the feature doesn’t have clear acceptance criteria.
- Writing bug reports. This isn’t just a quick description of an issue. There are usually steps to reproduce, screenshots to attach, environment details to write up…
- Keeping track of all updates that come out.
- Prioritizing client-supported browsers and devices.
The testing phase is when QA has to really hit the ground running. From checking over a dozen browser/device combinations to being the last step before release, there’s a lot on QA’s plate in the testing phase.
The Role of QA in Deployment
QA typically needs to be on-call during a deployment. Often these happen late at night, when users aren’t as likely to be affected. During a deployment, QA is on standby. As soon as the release goes live, QA again jumps into gear, smoke testing to make sure the deploy didn’t cause any issues.
The Role of QA in Maintenance
Rinse and repeat for above! There are sometimes bugs that slip through — even the best auttomation/manual testing can’t find 100% of bugs on 100% of browsers/devices 100% of the time. QA can be on hand to test the bug fixes, or upgrades to features.
The Role of QA in the Software Development Life Cycle
The testing phase may be what comes to mind first, but QA Engineers can help out in all phases of the SDLC. QA can be about more than just finding bugs: preventing them altogether.