Software development projects are multifaceted. There is staffing and budget work. There are communication and team dynamics. There are project and process issues from what the customer wants, when they want it, revenue projections, and production dates.
As part of my work in helping people deliver software, I get involved in all aspects mentioned above. But, in the end, it all comes down to one thing: testers have to do a great job testing! This is where strategy, tools, technology, methods, and skills come into play.
Every time we do a methods and skills issue, my desire is the same: get testers the skills they need in order to do the best testing job possible. It’s important that you learn all the basic methods, test methods, and leverage tools and technology where you can.
A tester’s job is to find bugs. We want to find the important technical bugs, and we always want to find them as early as possible because they will be much cheaper to fix; we want to find as many customer focused bugs as possible.
With there being a focus on shift-left and as the technical skills of most test teams increase, leverage new tools as much as you can. It’s always a good idea to reevaluate your testing strategy instead of just “Doing what we always do.”
What I often find in my work is that most developers and many testers do not understand the basic practices of software testing. Whether you are testing at the API or UI level, you still need to know how to do equivalence class partitioning and boundary value analysis to get the most test coverage with the most efficient set of test cases. Additionally, you can help the developer write unit tests by optimizing with your knowledge of the best data for testing.
I have noticed a bit of a revival of model-based-testing recently. This is good! Testing from models is not only a standard and basic testing practice, it’s a great complement to requirements-based-testing built on user stories. You can find better bugs earlier, but first you have to know how to make a model! A few years ago, Unified Modeling Language (UML) fell out of preference. And, along with it, people stopped learning modeling skills and diagramming (such as making object models, state-transition diagrams, or class diagrams). Most organizations today, if they model at all, will make a UI wireframe.
The amount of information test teams use from a wireframe is important, but it’s nowhere near the amount of information test teams could use from other technical diagrams. It is all too bad! I would change my testing strategy often based on what parameters are sent to various components.
Apply important test methods — perhaps, adding a new interface earlier to ensure that you do the best testing job possible. Knowing how to do concurrency and race condition testing is essential. Most people do that later in the development cycle when the product is fully built. Instead, maybe you can shift that earlier. Maybe you can shift-left and do your concurrency and race condition testing earlier at an API level if this applies to you or your product, based on you knowing the testing skills and methods used for this. The same idea goes for soak testing and other essential test methods. As long as you know how to do them, what they are, and when you do them in a process (based on your product and technology) you can really optimize your testing strategy.
Build your skills and share testing technology across the development team.
In this issue, we take an in-depth look at a wide variety of testing essentials and methods. Our own Hans Buwalda discusses using Action Based Testing in TestArchitect in our cover story. Fred Murphy, a LogiGear alum, discusses the process of testing smoke detectors, Eran Kinsbruner returns to discuss progressive web apps and its impact on cross-browser testing, and Sankha Jayasooriya discusses how to test a mission-critical system. Due to popular demand, we’ve created a fun word search for you. Rounding up this issue, we’ve also included a recommendation of books every software tester should read and explained TestArchitect’s awesome screenshot feature in TestArchitect Corner. Whether you’re new to the software testing industry or a veteran, this issue explores a variety of test methods and essentials you’ll need in your software testing journey!