Justin Rohrman
Justin Rohrman
Member for
13 years 6 monthsI have been a professional software tester in various capacities since 2005. In my current role, I am a consulting software tester and writer working with Excelon Development. Outside of work, I am currently serving on the Association For Software Testing Board of Directors as VP of Education helping to facilitate and develop projects like BBST and WHOSE. I am also a student in the Miagi-Do school of software testing, and facilitate sessions for Weekend Testing Americas.
I am deeply interested in software testing and delivery, and also helping organizations fix problems in measurement and metrics programs.
I have been a professional software tester in various capacities since 2005. In my current role, I am a consulting software tester and writer working with Excelon Development. Outside of work, I am currently serving on the Association For Software Testing Board of Directors as VP of Education helping to facilitate and develop projects like BBST and WHOSE. I am also a student in the Miagi-Do school of software testing, and facilitate sessions for Weekend Testing Americas.
I am deeply interested in software testing and delivery, and also helping organizations fix problems in measurement and metrics programs.
All Articles by Justin Rohrman
All Stories by Justin Rohrman
|
2 Familiar Problems for Software DevelopersIn the quest for writing good code and delivering the right thing to customers, developers have several challenges. But most of them can be boiled down to two main problems: discovering the real scope, and how to do the work. Interestingly, they’re very similar to the problems faced by testers and others in non-dev roles. |
|
Strategically Using Slack Time after a ReleaseWhen you've worked for months on a big software release, afterward you may want to jump into the next project. But building in some slack time between sprints is a good idea. After a big release, there will probably be more work as new users discover bugs in your software. Plan for some more testing and development. |
|
Figuring Out Your Regression Testing StrategyWhen your application is scheduled to go to production, the development team may be asked what their regression testing strategy is. This is a perfectly reasonable question, but a lot of people have a hard time answering it. Don't overcomplicate it. Analyze your process, look at the other testing, and put it together. |
|
2 Ways to Get Better at Test AutomationMany people in testing roles want to grow their skills and learn to build some tests with code. But no matter how well you test, automation is programming work. If you want to get better at automation, your best bet is to get into a role where you are dealing with code. Here are two ways you can break in and learn. |
|
2 Simple Ways to Improve Developer-Tester RelationshipsSupposedly there is a constant tension between developers and testers, like the roles of artist and art critic. They can’t exist without each other, and yet they can’t get along. It doesn't have to be that way! Here are two ways testers can reduce that feeling so that developers and testers can work better together. |
|
2 Ways to Know Your Work Is Actually DoneSome people think a good indication that a piece of work is done is if it's been tested. But by whom, and how? Testing alone doesn’t specifically determine whether you are done—especially when we probably don’t mean the same thing when we all talk about testing. Here are two ways to know when your work is truly done. |
|
2 Ways to Standardize QA PracticesTesting can get complicated when each project is using a completely different toolset, language, and reporting status, with different measurements and formats. Testing is a reaction to context and what we encounter, so how we test cannot be standardized. What we can standardize is the stuff that surrounds the testing. |
|
A Simple Rule of Thumb for Unit TestingThere's a simple rule for the minimum values testers should explore: “none, one, some”—or, how the software behaves if you send it nothing, one thing, or some set greater than one. It's not comprehensive, but it gives a good feel for how the feature works at the moment. Developers can also use this in unit testing. |
|
Transitioning to Testing: The Qualities We Should Be Looking ForTesting is an accessible career choice for people who don't come from the typical paths into a tech job. Previous jobs and formal education should matter less than the abilities to observe, identify risks, and report that information. How can we change our interview processes to highlight these skills and mindset? |
|
Using Cypress for UI Test AutomationThere are lots of tool options out there for UI automation. Cypress is an interesting tool for browser automation because the architectural overhead is lower since there is no emphasis on page objects, and it encourages you to manage state by building tests as small as possible. Here's how it gives you concise tests. |
|
2 Ways Developers Can Contribute to Better TestingTesters need to find important information about product quality and present it in a way that can be acted upon. As the people building the software, developers are in a great position to observe the product. By monitoring the test environment and conducting unit testing, they can help inform about product quality. |
|
Testing When There Are No TestersMore and more companies are shifting toward having their developers responsible for product quality. But how do you conduct good testing when there are no testers? The key is to optimize efforts. Here are some of the fundamentals of testing that your developers should understand, as well as some skills they'll need. |
|
Before You Buy That Test Tool, Answer These QuestionsTools are a normal part of testing jobs because they can amplify our ability to learn about product quality. It's a good idea to review new tools for automation, performance, or monitoring to see if some solution will help you test better. Before you even look at tools, though, there are two questions you should ask. |
|
2 Quick Wins for Building Context in TestingTesters fill in their assumptions about the project, domain, and technology with things they learn while testing and while talking with people. Sometimes the information they learn is good, but sometimes they miss something important. Here are two quick wins for filling in those assumptions with good information. |
|
The Developer’s Role in Testing and QualityOf course a developer's primary job is to produce good code, but there's also a lot they can do to contribute to quality and test their code before it gets to a tester. Code quality techniques help developers write better code, more thoroughly understand their changes, and avoid builds with many easy-to-find problems. |
|
A Holistic View of Test CoverageNo single person on the team knows much about test coverage at a high level. Developers might understand it for parts of the code base they worked on. Testers might understand it for the last handful of features they tested. But neither is able to talk about test coverage in a meaningful way. We need a holistic view. |
|
Rebuilding Your Test StrategyIf testing is taking awhile and a lot of bugs are getting into production, it's a good idea to review your entire test strategy. Spend some time understanding the current process and what testing is happening through the dev process—not what is outlined in a process wiki, but the work that actually happens. |
|
Who Should Be Doing Automation Work?Testers often look at automation work as the next career step after manual testing. Automation work has more visibility at the project level, and people who do this work usually also tend to have a little more social status. But Justin Rohrman makes a case for why testers shouldn't be the ones doing automation work. |
|
Making Testing VisibleMost testing work is invisible—something that happens inside your head and leaves no artifacts behind. This generally leaves testers feeling like no one understands what they do all day. Here are some ideas for collaborating with your coworkers so they can see—and start to understand—your testing work. |
|
Code Katas for TestersA kata is a small programming task you build a solution to. The point is to develop programming skill through familiarity with programming patterns, which is a useful practice for testers today. You’ll learn about software development, testing, continuous integration, exploration—and even how to be a better person. |
|
Looking beyond the Tester-to-Developer RatioMany companies have some notion of an ideal tester-to-developer ratio, or the number of testers they need for every certain number of developers. It may seem like a superficial standard, but it's rooted in a very real need to understand staffing requirements and budgets. Let's dig deeper into the team balance. |
|
A Conversation about Testing within BDDPeople using behavior-driven development (BDD) say conversation is the most important part of the process. They use a “given-when-then” format to describe the current state, an action that is supposed to occur, and what results to expect. But if that structure isn't working for your team, don't restrain discussion. |
|
The Test Automation MindsetBuilding a test automation strategy involves all members of the technical team, layering tests throughout the technology stack, and using this approach to design better software and catch simple problems earlier in the development cycle. But working like that requires a shift in mindset across the organization. |
| |
Analyzing the Software Team GeneralistThere's a recent trend in having generalists on the software team—there are no developers or testers, only "team members." The idea of the two roles learning from each other is a good one, but it's usually a one-way street: Testers learn to write production code or test tooling, but no one focuses on deep testing. |
|
Questions to Ask during Test Selection for Automated TestsWe use test design techniques to answer the questions “What do I need to test?” and “What tests should I perform?” We try to ensure test coverage during test automation too, except that choosing poorly creates slower builds and unreliable information about product quality. Here are some guidelines for test selection. |
|
Elevate Code Quality by Integrating Testing and DevelopmentPair programming generally involves two programmers working on a single change from start to finish. You can augment this pattern by adding a test specialist, so you can test-drive feature changes first and the tester can ask questions and guide test and code design. What you get is quality built in from the start. |
|
Demystifying DevOps: A Day in the Life of a DevOps TesterThe idea of working as a test specialist on a team using DevOps can be intimidating. There are at least two technology stacks, containerization and continuous integration, that you need to be familiar with. But few people need to be able to start from scratch. Here's what a normal day of testing in DevOps looks like. |
|
Testing in a Pair Programming EnvironmentIf a development team does pair programming, where does testing fit in? You don't have to wait until the programming is done—testers can be part of the whole process, from code design to reviewing changes to production. Pair programming plus a good automation strategy mean quality is built in throughout development. |
|
A Tester’s Guide to Choosing a Programming LanguageMany testers want to learn a programming language, but how should they decide which one? Justin Rohrman suggests finding an authentic problem to solve and moving from there to determine which language would be best. You can also ask developer coworkers for suggestions and help—take advantage of available resources. |
|
What We Talk about When We Talk about Test AutomationTesters talking about test automation often mean browser automation. Developers are probably talking about unit testing or something at the service layer. And operations people are most likely thinking of monitoring and the guts that control continuous integration. But the practices are more important than terminology. |
|
On Your Software Team, Who Should Own Automation?There is a prevalent question in the software world these days: Who should be working on automation—developers or testers? Justin Rohrman says it can be everyone's responsibility. It’s more important to look at the structure of your technical team, what skill sets are available, and what the skill distribution is. |
|
Simplify Your Record and Playback UI AutomationRecord and playback shouldn’t be a nightmare to deal with. One key for useful UI automation in any tool is abstracting at the right level. Take a cue from coded solutions like WebDriver and its Page Object pattern, and do something similar with record and playback tools to abstract away all the scary bits. |
|
Getting Started with API TestingFor testers interested in moving into test automation, Justin Rohrman usually suggests that they get started by learning to write a little code—more specifically, working with their software's API. You don't have to jump into tooling just yet. You can begin testing the data and workflow of the API first. Here's how. |
|
Software Testing and Monitoring in DevOpsThere are a lot of hidden assumptions behind monitoring for modern software development methods such as DevOps. Some think software testing is avoidable and discovering problems in production and fixing them later is okay. But monitoring isn't meant to replace skilled testing. For the best quality, use both together. |
|
The Debate over Testing versus CheckingTesting and checking, like a lot of language in software testing, is there in order to more precisely describe something we are already doing. However, there is a strange plague of people who feel the need to police others' language whenever they try to use the terms interchangeably. What we need is more understanding. |
|
Tester Contributions to Scrum ConversationsScrum is one of the most popular paths to agile, but testers sometimes join this framework as an afterthought and aren’t quite sure how they fit into the development flow. Scrum is more than answering three daily questions, and testers are in a position to understand the project better than anyone else on the team. |
|
Speaking the Same Language in Software TestingArguments in software testing often revolve around language. We use phrases like test case, exploratory testing, and regression testing every day, but we can’t be sure that you and I mean the same thing when we do. Increased communication and detailed discussions can help avoid misunderstandings. |
|
Software Testers, What Should You Be Doing Right Now?As a software tester, there are any number of jobs you could be doing at any given time. The first problem in software testing, the one we have to think about before even deciding on our approach, is: What should I be working on right now? Communication, time management, and prioritization are essential to our jobs. |
|
Where to Begin with Test AutomationMost test teams want to try automation for some tasks in order to be more efficient, but it can be daunting. If you are wondering where to start automating, the answer is usually as close to the code as you can possibly get. The farther you get from the code, the more you expose yourself to issues. |
|
So, You Want to Be a Software Tester? Here’s How to Get StartedTesting is a field that invites people from diverse backgrounds, so there's no one path to get into the role. But with the catch-22 of needing a job to get experience but needing experience to get a job, how do you break into software testing? Justin Rohrman has advice for anyone wanting some test experience. |
|
The Value of Falling into Software TestingTo become a software tester, there are generally no required degrees or certifications. Consequently, many testers sort of "fall into" the job. But that doesn't mean they won't do outstanding work. Coming from all walks of life and having varied work experiences can help testers find problems no one else can. |
|
A Case for UI Automation in Software TestingWhen testers talk about automation projects, especially in the user interface, they describe cautionary tales and the million ways these projects can fail expectations. However, there are contexts where automating the user interface works well and, more importantly, helps the development team. |
|
What Is Continuous Delivery Doing to Software Testing?Software teams using continuous delivery focus on building software in small pieces so that new code can be pushed to production multiple times a day instead of on a sprint cadence. There is also an explicit focus on code quality before production and monitoring afterward. Is this putting testing in danger? |