Software Testing Interview Questions and Answers
In this post, we will look at some common Software Testing Interview Questions that you may be asked when you attend a Software Testing Interview. The answers to the interview questions is for guidance only. You may want to expand on the answers at the interview if you are asked any of these Software Testing Interview Questions.
Question: What is Exploratory Testing and when should it be performed?
Answer: The definition of Exploratory Testing is “simultaneous test design and execution” against an application. This means that the tester uses her domain knowledge and testing experience to predict where and under what conditions the system might behave unexpectedly. As the tester starts exploring the system, new test design ideas are thought of on the fly and executed against the software under test.
On an exploratory testing session, the tester executes a chain of actions against the system, each action depends on the result of the previous action, hence the outcome of the result of the actions could influence what the tester does next, therefore the test sessions are not identical.
This is in contrast to Scripted Testing where tests are designed beforehand using the requirements or design documents, usually before the system is ready and execute those exact same steps against the system in another time.
Exploratory Testing is usually performed as the product is evolving (agile) or as a final check before the software is released. It is a complimentary activity to automated regression testing.
Question: What Test Techniques are there and what is their purpose?
Answer: Test Techniques are primarily used for two purposes: a) To help identify defects, b) To reduce the number of test cases.
- Equivalence partitioning is mainly used to reduce number of test cases by identifying different sets of data that are not the same and only executing one test from each set of data
- Boundary Value Analysis is used to check the behaviour of the system at the boundaries of allowed data.
- State Transition Testing is used to validate allowed and disallowed states and transitions from one state to another by various input data
- Pair-wise or All Pairs Testing is a very powerful test technique and is mainly used to reduce the number of test cases while increasing the coverage of feature combinations.
Question: How do you test the login feature of a web application?
This is a very common software testing interview question and the aim is to see how broad you can think about the feature. Most interviewees start with the obvious answer of checking input fields with positive and negative values, invalid email, valid email but incorrect password, sql injection, etc. But most of these tests can be done and should be done by the developers as part of integration testing.
Here the focus is on testing at system level, tests which cannot be done without a full integrated system.
Answer: Possible answers to this testing interview question can be:
- Sign in with valid login, Close browser and reopen and see whether you are still logged in or not.
- Session management is important – how do we keep track of logged in users, is it via cookies or web sessions?
- Sign in, then logout and then go back to the login page to see if you are truly logged out.
- Login, then go back to the same page, do you see the login screen again?
- Sign in from one browser, then open another browser to see if you need to sign in again?
- Login, change password, and then logout, then see if you can login again with the old password.
Question: What Types of Testing is Specifically Important for Web Testing?
This is also an important Software Testing interview question for web application testing roles. Note, this question is asking about the types of testing.
Although you would do functional testing, usability testing, accessibility testing, etc, these are all also applicable to desktop application testing. The question is asking specifically for web testing.
Answer: Two types of testing which are very important for testing web applications are Performance Testing and Security Testing. The difference between a web application and desktop application, is that web applications are open to the world, with potentially many users accessing the application simultaneously at various times, so load testing and stress testing are important.
Web applications are also vulnerable to all forms of attacks, mostly DDOS, so security testing is also very important to consider when testing web applications.
Question: How do You Verify the Results of Your Search on Search Results Page?
This is another common Software Testing Interview Question for e-commerce testing roles. This question refers to verifying the results are what we expect to see.
Suppose you search for a product on Amazon.com website. On the search results page you will see a list of items related to your search. How can you verify that the results that you see are really the ones that you are supposed to see?
Answer: The answer to this question is rather simple. At first instance, we need to know where the data is coming from. Are they coming from a database? Or some XML files from 3rd party websites?
Once we have this information, we can start comparing the results we see on the result page with the results from the source, e.g. database.
Another option is to use mocks to generate the data that we need so we can fully control the data that we see on the search results page.
If you are preparing for a Software Testing Interview, or you are interviewing candidates for QA roles, you will find this mind map very useful: 30+ Essential Software Testing Questions to Prepare for Interview
What is Acceptance Testing?
Testing conducted to enable a user/customer to determine whether to accept a software product. Normally performed to validate the software meets a set of agreed acceptance criteria.
What is Accessibility Testing?
Verifying a product is accessible to the people having disabilities (deaf, blind, mentally disabled etc.).
What is Adhoc Testing?
A testing phase where the tester tries to ‘break’ the system by randomly trying the system’s functionality. Can include negative testing as well. See also Monkey Testing.
What is Agile Testing?
Testing practice for projects using agile methodologies, treating development as the customer of testing and emphasizing a test-first design paradigm. See also Test Driven Development.
What is Application Programming Interface (API)?
A formalized set of software calls and routines that can be referenced by an application program in order to access supporting system or network services.
What is Automated Testing?
Testing employing software tools which execute tests without manual intervention. Can be applied in GUI, performance, API, etc. testing. The use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions.
What is Beta Testing?
Testing of a release of a software product conducted by customers.
What is Black Box Testing?
Testing based on an analysis of the specification of a piece of software without reference to its internal workings. The goal is to test how well the component conforms to the published requirements for the component.
What is Bottom Up Testing?
An approach to integration testing where the lowest level components are tested first, then used to facilitate the testing of higher level components. The process is repeated until the component at the top of the hierarchy is tested.