Business Analyst Interview Question: What role does the Business Analyst play in software testing?
Before answering a question on the important roles that a Business Analyst plays in software testing, it’s important to understand a bit more about what software testing is about, and how it happens. It then becomes easier to see why the Business Analyst has such an important role to play in this essential step of the software development life cycle.
The first thing to know about software testing is its purpose. Overall, of course, the purpose is to make sure that the software works properly. But there’s a lot that goes into making sure that the software is working. Users must be happy that the software does what the business paid for. The software must work properly on the computing platform it runs on. It must play nicely with interfaces and other software that interact with it. The software must also produce its output within a reasonable time. So as you can see, “working properly” means more than one thing.
The second thing to know is that there are several different kinds of software testing. The Business Analyst gets involved in some of them, and not in others. The list below is not comprehensive in terms of all of the different types of software testing. But I do highlight the most important kinds of testing and the ones most likely to involve a Business Analyst.
It’s useful to think about software testing as a set of concentric rings, from small to large. These rings represent the total scope of testing. Unit software testing is the innermost ring with the smallest scope. Think of a software developer building a piece of code, and then putting it through the paces to make sure it works properly. The developer can test the unit in isolation to make sure that if you provide the proper inputs (which the developer can simulate), that you get the expected output.
For example, if the developer is coding the login feature for a website, a unit test might be what happens when you feed some mock data into the module to see whether the expected output happens (perhaps setting an authentication token for the user).
Role of the Business Analyst in unit testing: The developer and maybe his teammates are the ones driving the unit testing, so the role of other people is minimal at this stage. However, the developer may have a question about the output she is seeing. She may want to know how that matches against business requirements. The Business Analyst would be the person to answer those questions.
The next, larger concentric ring is integration testing and is often done by a separate testing team. At this point, the developer is reasonably confident the software unit works as she intends. So now it’s time to connect it to real interfaces that provide data from databases or other applications, and see what happens then. Integration testing also ensures the software runs properly on whatever hardware platform will support it.
To continue the website example, perhaps there is an interface that returns a user’s name and address when they successfully log in; integration testing makes sure the name and address passes correctly. It would also ensure the software works properly on its platform (a web server, the cloud, etc.)
Role of the Business Analyst in integration testing: Just as with unit testing, the developer is still in the driver’s seat here. And as with unit testing, the developer may see unexpected results from the integration test. She may consult with the Business Analyst to see whether the results meet business requirements; and if not, then figure out how to change the code. If there are problems with the interfaces themselves, the Business Analyst may have to clarify or add interface requirements.
Next up in scope is system software testing. At this point, the testing team wants to know how the code module performs in the context of the entire system, on the platform it will be running on. A system can include other applications running concurrent with, prior to, or after execution of the tested code module. A system is like a set of interlocking gears, where everything must run smoothly together. System testing, then, makes sure that the the new “gear” you are inserting isn’t going to break something else along the way.
To continue the website development example, a system test might involve the entire process of logging in to the website, pulling your name and address, ordering a product, and paying for it. Everything must work together perfectly.
There are two important sub-sets of system testing to know about: usability testing and regression testing.
What are usability testing and regression testing?
Usability testing is, obviously enough, how usable the whole system is. This often involves business users interacting with a system interface (like a website) to see whether it behaves the way the business wants it to. From a user’s perspective, you don’t want any unexpected behavior and usability testing will ensure this to be the case.
Regression testing compares the result of what the system would have done BEFORE the new software changes with what it does AFTER the change. The system’s gears may still work well together, but the new code could result in unexpected output that is totally unrelated to the changes you actually wanted to make. Software systems are complex things, and when you add more complexity on top you will sometimes get unexpected results. Continuing the website example, regression testing might detect that the website works, but quotes a different price for a product compared to before. Since software code for logging in should not affect the price of a product, this is a problem the developer must fix.
Role of the Business Analyst in system testing. The Business Analyst must play a flexible role in system software testing. Again, anytime there is unexpected behavior, the Business Analyst can expect to provide answers based on requirements. Since we’re getting closer to releasing the software, questions about whether the software meets requirements are likely to increase. The Business Analyst may also serve as the user for usability testing, to help ensure the system does what a user would expect. For regression testing, the Business Analyst may provide sample output (such as an older customer invoice) to compare against the new output.
User Acceptance Testing
This last phase of testing is the one most likely to heavily involve the Business Analyst. In user acceptance testing (or UAT), the developer submits the software for final sign off and approval by the business. By now, the developer and testing team have thoroughly vetted the code and believe they have resolved all outstanding bugs. Once the business agrees the code meets all requirements, the development team puts the software into its final permanent location.
Role of the Business Analyst in user acceptance testing: The Business Analyst plays two key roles in UAT. First, the Business Analyst may write high level test cases. These are hypothetical end-to-end scenarios that lead to an expected result that the Business Analyst documents. The testing team must put the system through each hypothetical scenario, using real or mock data. The Business Analyst then validates that the final result matches the expected one. Second, the Business Analyst either provides the final sign off, or works to get it from stakeholders with the authority to do so.
How can I concisely answer an interview question about the role of the Business Analyst in software testing?
A Business Analyst can play an integral role in every type of software testing. The BA may lend their expertise and answer questions about requirements while the developer unit tests his software, or while integration testers test the software’s interfaces. In system testing, the BA may need to serve as the user for usability testing, or help validate “before” and “after” results from the changing system. Most importantly, for user acceptance testing the Business Analyst will write test cases, validate test results against those test cases, and obtain final approval to sign off on the software.
How would you answer a question about the role a Business Analyst plays in software testing? Leave your answers in the comments below!