One thing I’ve been wanting to write about lately is what types of activities a modern software QA person does these days. As you can probably work out from the name of this post, it’s more than testing.
Now, before I go any further, if you haven’t read my About page yet, I work as a software consultant for a company called DWS. As such, I do development as well but most of what I do is quality related tasks.
Anyway, let’s look at what happens in modern software QA. Now, I’m not going to say this is everything that everyone does, but it is some of what some people do, especially this person. So, let’s dive in!
Testing
Ok, so you already knew that. But what does that involve?
- Unit Testing
- System Testing
- User Acceptance Testing
- Performance Testing
You probably know at least some of these but I will detail them further in later posts. Essentially, testing is where you get your blue ribbon for everything working or direction on what to fix.
Persona Development
Persona what? Persona development is where we establish different personas of people using software. This generally means we understand who will be using software in a holistic way.
Developing a persona involves identifying the needs, purpose, habits, etc of people to identify behaviours. This of course allows for better performance testing, acceptance testing, and even helps with defining requirements.
Requirement Traceability Analysis
Who ever said that a text editor should make coffee? Traceability analysis looks at requirements and traces them from concept through to the developed property.
Traceability analysis really helps with identifying priorities and stops scope creep. It’s also a great way of giving confidence to managers that a project has addressed all the requirements when used in conjunction with test reports.
Requirements Coverage Analysis
Although all your test cases may pass, it doesn’t mean all your requirements have been tested. Requirements coverage analysis examines requirements for test coverage at each applicable phase of testing. Focusing on requirements that haven’t already been tested can save big on time, money, and help your team look good.
Testware
Testware is all the tools used to test software. These may include load generators for performance testing or an automation framework. The QA function is also about developing testware as well!
Reviews
Code and document reviews are another function of the QA role. Reviews may include using tools such as the Orthogonal Defect Classification, checklists, code analyzers, etc.
Define Requirements
Yes, QA defines requirements as well, not just test them! Where there are issues of technical or organizational acceptance, the QA role can come in and help define requirements to encourage success as well as promote testability.
Advising
The QA role is often called upon for advice as their job often means they are familiar with a lot of the issues that can go wrong. Furthermore, testing efforts later on can be greatly reduced with QA input early on.
Metrics
Quality often involves metrics. Metrics are great at helping us to find where we need to focus our testing attention by keeping track of what has needed our attention in the past. Metrics can also help us with identifying where risk is increased just by metrics, such as where there is more code in a method or class. Testing is often performed in a risk-based approach, focusing on what poses the greatest risk.
Risk Analysis
Risk analysis is a task for many people working as a group. Without a QA presence, many risks may go unnoticed.
So, if you’re thinking of a role in QA or maybe you’re just interested in what the QA role involves, hopefully, I’ve helped you have a clearer understanding. It really isn’t just about testing, it’s about quality.
What sort of activities do you perform in your QA life? I’d be interested to know what other activities people perform to improve quality in software.
Kind Regards
Glenn