Join Aaron Dolberg for an in-depth discussion in this video Traditional disciplines in software development, part of Programming Foundations: Software Quality Assurance.
- When you hear about quality engineers it's not uncommon to hear about sub-categories that define the roles and responsibilities of an individual. You see, there are many different kinds of testing and strategies for ensuring that your product meets a certain quality bar. This is something you want to understand before you start looking for people to fill specific roles. The most common terms you'll hear are black box, white box, and grey box testing. Black box typically refers to testing an application through the user interface.
White box is used when testing is going to be done at the code level, where you're validating everything that's happening under the hood. And finally, grey box is used when your testing is a mix of both. You're concerned about the application from the outside looking in, but you have some knowledge of the internals. I'll spend some time going into more detail about these sub-categories later on. But first, I think it's important to think about how each fits together with other disciplines and roles. Have a higher level of understanding of how quality overlaps with every aspect of your project will go a long way as you define your overall strategy for incorporating a successful quality agenda into your process.
Let's just assume that there are three core disciplines to a project. Product management is typically where your business goals are identified. Research is done to define target users, their needs, and what's going to be built to address those needs. Development is where we take those business requirements, identify the best ways to fulfill them from an engineering perspective, and proceed with building our product. Quality assurance is where you're going to be working to ensure what you're building is meeting all of your goals.
When it comes to quality, it's not just a focus on making sure that the product is functional. You're validating that the product is truly meeting your users needs and that from an engineering viewpoint, it's being done in a way that you set out to do. Now, I'm a firm believer that ownership of the overall project is shared equally between these three disciplines. And that there's going to be some overlap. This doesn't mean that there are in inherent redundancies but rather parts of the overall project may be looked at by multiple people with different perspectives.
Since we're focused on quality for this course, let's look at the areas the quality discipline that overlap others. If we look here, you'll see that there's a portion of quality that overlaps product management. This is the area that you should be thinking about when you hear the term black box testing. Contrary to what some might lead you to believe, it's not a function where purely manual testing is conducted to make sure that UI elements are functional. It's more than that. This is where the quality discipline intersects with your business goals to ensure that they're being met.
In this area, quality and development overlap and they're tightly integrated. This is where you to find your white box testers. Here, you'll have a great focus on quality from a development perspective. You're ensuring that you're building the product you set out to, and that all the internals fit together to make your final product secure and stable. Then we have this central area where you'll find your grey box testers. This is where you'll test your application from an external and user-facing perspective along with focusing on the internals.
You're not only thinking about the business goals, but your core engineering principles as well. When referring to grey box testing, this is often a transition point for a black box tester where they advance past a purely front-end perspective. I'll go into each kind of testing in later videos. But you should keep this in mind as you try to picture how each kind of testing fits into your development cycle and where the ideal interactions are for each area of focus.
- How to think about quality
- Incorporating black box, white box, and grey box testing into your process
- Understanding your quality goals
- Ranking issues by priority and severity
- Testing core functionality
- Testing the backend
- Using a test case management system
- Interpreting bug models
- Recording defects automatically