QA Interview Questions
QA Interview Questions
Quality Assurance: is the process of planning and defining the way of monitoring and
implementing the quality (test) processes within a team and organization. This method defines
and sets the quality standards of the projects.
Quality Control: is the process of finding defects and providing suggestions to improve the quality
of the software. The methods used by Quality Control are usually established by the quality
assurance.
It is the primarily responsibility of the testing team to implement quality control.
Testing: is the process of finding defects / bug. It validates whether the software built by the
development team meets the requirements set by the user and the standards set by the
organization.
Here the focus is on finding bugs and testing team acts as quality gatekeeper.
What would you do if you have a large suit to execute in a very less time?
In case we have less time, and have to execute larger volume of test cases, we should prioritize
the test case at first instant and execute the high priority test cases first and then move on to the
lower priority ones.
This way we can make sure that the important aspects of the software is tested.
Alternatively, we may also seek customer preference that which is the most important
functionality of the software according to them, and we should start testing from those areas and
then gradually move to those areas, which are of less importance.
These kind of environmental issues could be very well be fixed by the QA team.
Also If QAs have an insight on resolving the production issues, they may also include them while
writing the test cases, and this way they can contribute to improve quality and try to minimize
the production defects.
Suppose you find a bug in production, how would you make sure that the same bug is not introduced
again?
Best way is to immediately write a test case for the production defect and include it in the
regression suite. This way we ensure that the bug does not get introduced again.
Also many a time we can also think of alternate test cases or similar kind of test case and include
them in our planned execution.
Nonfunctional testing – on the other hand tests the Nonfunctional aspect of the application. It
tests NOT the requirement, but the environmental factors like performance, load and stress.
These are not explicitly specified in the requirement but are prescribed in the quality standards.
So as QA we have to make sure that these testing are also given sufficient time and priority.
What is negative testing? How is it different from positive testing?
Negative testing is a technique which validates that the system behaves gracefully in case of any
invalid inputs. For example, in case user enters any invalid data in a text box, system should
display a proper message instead of technical message which the user does not understands.
Negative testing is different from positive testing in a way that positive testing validates that our
system works as expected and compares the test results with the expected results.
Most of the time scenarios for negative testing are not mentioned in the functional requirement
documents. As a QA we have to identify the negative scenarios and should have provisions to test
those.
How would you ensure that your testing is complete and has good coverage?
Requirement traceability matrix and Test coverage matrices will help us to determine that our
test cases have good coverage. Requirement traceability matrices will help us to determine that
the test conditions are enough so that all the requirements are covered. Coverage matrices will
help us to determine that the test cases are enough to satisfy all the identified test conditions in
RTM.
Have you ever managed writing the test cases without having any documents?
Yes, many a time we have a situation where we have to write test cases without having any concrete
documents. In that case, best way is to
The test execution which we do in our day to day life are actually the validation activity which
includes smoke testing, functional testing, regression testing, systems testing etc…
3) Walkthrough – Is a process in which the author of the document / code reads the content and
gets the feedback.
This is most of the time a kind of FYI (For your information) session rather than seeking
corrections.
In case you have any doubts regarding your project, how do you approach?
In case of any doubts, first try to get it clear by reading the available artifacts / application help. In
case of doubts still persisting, ask immediate supervisor or the senior member of your team.
BA’s would also be a good choice to ask the doubts. We can also touch base with the
development team in case of any doubts. The last option would be to follow up with the manager
and finally to the stakeholders.
How do you determine which piece of software require how much testing?
We can know this factor by finding out the Cyclomatic Complexity.
The technique helps to identify the below 3 questions for the programs / features
It is a practice that if the result of cyclomatic complexity is more or a bigger number, we consider
that piece of functionality to be of complex nature and hence we conclude as a tester; that the
piece of code / functionality requires an in-depth testing.
On the other hand if the result of the Cyclomatic Complexity is a smaller number, we conclude as
QA that the functionality is of less complexity and decide the scope accordingly.
As a QA its very important that we understand the entire testing lifecycle and should be able to
suggest changes in our process if required.
The goal is to deliver high quality software and in that way a QA should take all the necessary
measures to improve the process and way testing team executes the tests.
What is Testware?
Testware is test artifacts like test cases, test data, test plans needed to design and execute a test.
Build: It is a number given to Installable software that is given to the testing team by the
development team.
Release: It is a number given to Installable software that is handed over to the customer by the
tester or developer.
What are the automation challenges that SQA(Software Quality Assurance) team faces while testing?
Bug release is when software or an application is handed over to the testing team knowing that
the defect is present in a release. During this the priority and severity of bug is low, as bug can be
removed before the final handover.
Bug leakage is something, when the bug is discovered by the end users or customer, and not
detected by the testing team while testing the software.
Data driven testing is an automation testing framework, which tests the different input values on
the AUT. These values are read directly from the data files. The data files may include csv files,
excel files, data pools and many more.
• Once the bug is identified by the tester, it is assigned to the development manager in open status
• If the bug is a valid defect the development team will fix it.
• If it is not a valid defect, the defect will be ignored and marked as rejected
• The next step will be to check whether it is in scope. If the bug is not the part of the current
release then the defects are postponed
• If the defect or bug is raised earlier then the tester will assign a DUPLICATE status
• When bug is assigned to developer to fix, it will be given a IN-PROGRESS status
• Once the defect is repaired, the status will change to FIXED at the end the tester will give CLOSED
status if it passes the final test.
The test strategy includes an introduction, resource, scope and schedule for test activities, test
tools, test priorities, test planning and the types of test that has to be performed.
• Unit testing
• Integration testing and regression testing
• Shakeout testing
• Smoke testing
• Functional testing
• Performance testing
• White box and Black box testing
• Alpha and Beta testing
• Load testing and stress testing
• System testing
The testing of all the branches of the code, which is tested once, is known as branch testing.
While the testing, which is focused on the limit conditions of the software is known as boundary
testing.
• Testing objectives
• Testing scope
• Testing the frame
• The environment
• Reason for testing
• The criteria for entrance and exit
• Deliverables
• Risk factors
What is Agile testing and what is the importance of Agile testing?
Agile testing is software testing, is testing using Agile Methodology. The importance of this testing
is that, unlike normal testing process, this testing does not wait for the development team to
complete the coding first and then doing testing. The coding and testing both goes
simultaneously. It requires continuous customer interaction.
Test case is a specific condition to check against the Application Under Test. It has information of
test steps, prerequisites, test environment, and outputs.
The systematic and independent examination for determining the effectiveness of quality control
procedures is known as the quality audit.
• Selenium
• Firebug
• OpenSTA
• WinSCP
• YSlow for FireBug
• Web Developer toolbar for firebox
Above are just sample tools. The tools a Tester may vary with his/her project.
• Load Testing: Testing an application under heavy but expected load is known as Load Testing.
Here, the load refers to the large volume of users, messages, requests, data, etc.
• Stress Testing: When the load placed on the system is raised or accelerated beyond the normal
range then it is known as Stress Testing.
• Volume Testing: The process of checking the system, whether the system can handle the
required amounts of data, user requests, etc. is known as Volume Testing.
What are the five common solutions for software developments problems?
• Setting up the requirements criteria, the requirements of a software should be complete, clear
and agreed by all
• The next thing is the realistic schedule like time for planning , designing, testing, fixing bugs and
re-testing
• Adequate testing, start the testing immediately after one or more modules development.
• Use rapid prototype during design phase so that it can be easy for customers to find what to
expect
• Use of group communication tools
The document that describes, the user action and system response, for a particular functionality
is known as USE case. It includes revision history, table of contents, flow of events, cover page,
special
CRUD stands for Create, Read, Update and Delete. CRUD testing can be done using SQL
statements.
A thread testing is a top-down testing, where the progressive integration of components follows
the implementation of subsets of the requirements, as opposed to the integration of components
by successively lower levels.
It is a process to control and document any changes made during the life of a project. Release
control, Change control and Revision control are the important aspects of configuration
management.
It is a testing phase where the tester tries to break the system by randomly trying the system's
functionality. It can include negative testing as well.
A software quality assurance engineer tasks may include following things amongst others
Explain what are test driver and test stub and why it is required?
• The stub is called from the software component to be tested. It is used in top down approach
• The driver calls a component to be tested. It is used in bottom up approach
• It is required when we need to test the interface between modules X and Y and we have
developed only module X. So we cannot just test module X but if there is any dummy module we
can use that dummy module to test module X
List out various tools required to support testing during development of the application?
A cause effect graph is a graphical representation of inputs and the associated outputs effects
that can be used to design test cases.
Explain what is Test Metric is software testing and what information does it contains?
In software testing, Test Metric is referred to the standard of test measurement. They are the
statistics narrating the structure or content of a testing. It contains information like
• Total test
• Test run
• Test passed
• Test failed
• Tests deferred
• Test passed the first time
Retesting is carried out to check the defects fixes, while regression testing is performed to check
whether the defect fix have any impact on other functionality.
List out the software quality practices through the software development cycle?
The rule of a Test Driven Development is to prepare test cases before writing the actual code.
Which means you are actually be writing code for the tests before you write code for the
application.
• Requirement Document
• Test Metrics
• Test cases and Test plan
• Task distribution flow chart
• Transaction Mix
• User profiles
• Test log
• User profiles
• Test incident report
• Test summary report
MR stands for Modification Request also referred as Defect report. It is written for reporting
errors/problems/suggestions in the software.
• Specifications
• Designs
• Business rules
• Configurations
• Code changes
• Test plans
• Test cases
• Bug reports
• User manuals, etc
What are the first three things you’d do if you join us?
No candidate understands enough about your organisation (unless they are internal
of course, but still) to give you an effective response. At the same time, they
cannot NOT respond. Why would you consider anyone that cannot respond to a
fundamental question like this?
That is why this is a good Quality Assurance interview question to ask. Because it
tests the candidate’s ability to demonstrate their understanding of what your team,
department, organisation does.
Good candidates conduct prior research about your company or team specifically,
and use the interview to cull more detail about the specific challenges you are
facing on a day to day basis.
While you can’t really expect world changing ideas in response, it Is known to
happen. Some of the best ideas I’ve picked up are from brilliant candidates that I
interviewed for a role in my team.
So this question isn’t a blank bullet. It’s an opportunity for the candidate to create
a great impression on you with their r esponse. And if you catch an idea or two that
can make your life easier, that’s a bonus!
There’s much more to device strategy than some techie or tester arbitrarily
deciding to regularly cull older devices, operating systems from support.
Device Strategy is a business decision.
You must consider questions like:
• What percentage of your customers still use a p articular Android OS version?
• Are you going to try and support a small fraction of customers that choose to remain
tethered to an archaic browser, mobile OS, device?
• Or are you going to nudge them to upgrade to a better phone, tablet, OS, browser?
- Retesting is planned testing based on the defect fixes listed where as regression is
not be always specific to any defect fix. Al so regression can be executed for some
modules or all modules.
- Retesting concern with executing those test cases that are failed earlier whereas
regression concern with executing test cases that was passed in earlier builds.
- Retesting has higher priority over regression, but in some case retesting and
regression testing are carried out in parallel.
What is severity and priority of bug? Give some example.
Priority: concern with application from the business point of view.
It answers: How quickly we need to fix the bug? Or How soon the bug should get
fixed?
Severity: concern with functionality of application. It deals with the impact of the
bug on the application.
Ex: To evaluate login functionality, we use different user name and p assword
combinations, variables are used to access different username and password. The
list of username and password are stored in a data table or excel sheet.
Beta testing: It is performed by end user. So that they can make sure that the
product is bug free or working as per the requirement. IN -house developers and
software QA team perform alpha testing. The public, a few select prospective
customers or the general public performs beta testing.
What are test driver and test stub and why we need them?
- The Stub is called from the software component to be tested. It is used in top
down approach.
- The driver calls a component to be tested. It is used in bottom up approach.
- Both test stub and test driver are dummy software components.
- Suppose we want to test the interface between modules A and B and we have
developed only module A. So we cannot test module A but if a dummy module is
prepare, using that we can test modul e A.
- Now module B cannot send or receive data from module A directly so, in these
cases we have to transfer data from one module to another module by some
external features. This external feature used is called Driver.
What is Monkey testing?
Monkey testing is a type of Black Box Testing used mostly at the Unit Level. In this
tester enter the data in any format and check the software is not crashing. In this
testing we use Smart monkey and Dumb monkey.
- Smart monkeys are used for load and stress testi ng, they will help in finding the
bugs. They are very expensive to develop.
- Dumb monkey, are important for basic testing. They help in finding those bugs
which are having high severity. Dumb monkey are less expensive as compare to
Smart monkeys.
It is in the form of table that correlates two base lined documents that require a
many-to-many relationship. It is used with high level requirement and detailed
requirement of the software product to the matching parts of high level design,
detailed design, test plan, and test cases. The relationship to the source documents
is required for both backward traceability and forward traceability.
Explain paradigms for interfacing module.
The paradigms for interfacing modules:
- Shared Memory: When a block of memory is shared between two modules. The
memory block may be allocated by one of the two modules or third module of the
same application.
- Message Passing Interface: One module generates a message and sends the
message to another module. It helps in building up the communication between
different process or modules.
What are the factors responsible for the estimation of system integration test cycle and total integration
time?
The number of system integration test cycle and total integr ation time are
determined by the following parameters:
- Number of modules in the system.
- Relative complexity of the modules.
- Relative complexity of the interface between the modules.
- Number of modules needed to be clustered together in each test cy cle.
- Whether the modules to be integrated have been adequately tested before.
- Turnaround time for each test -debug-fix cycle.
- It displays the start and end points of each task and the percentage of completion
of each task
- It allows the planner to assess the duration of a project, identify the resources
needed, and lay out the order in which tasks need to be performed.
- Using Gantt chart each team member can vie w the product development
schedule.
How to find all the Bugs during first round of Testing?
There could be several reasons for not debugging the entire bug in the first round
of testing process. Debugging the showstopper in the first or second build is al most
impossible. A found defect can cover up the other defects in the application. The
thread which leads to on defect could be redirected to another defect, as the
tester find the bug and lock that bug in report and after fixing of those bugs new
bugs may also arises. It is difficult to keep testing on a known defective application.
That is the reason we cannot find all the bug in first run and also we cannot
perform Exhaustive testing.
1. To have a signed, sealed, and delivered document, where the document contains
details about the testing methodology, test plan, and test cases.
2. Test strategy document tells us how the software product will be tested.
3. Test strategy document helps to review the test plan with the project team
members.
4. It describes the roles, responsibilities and the resources required for the test
and schedule.
5. When we create a test strategy document, we have to put into writing any
testing issues requiring resolution.
6. The test strategy is decided first, before lower level decisions are made on the
test plan, test design, and other testing issues.
Quality: Compound factors like lack of resources along with a tight delivery
schedule and frequent changes to requirements will have an impact on the quality
of the product tested.
9. Total Estimation time = TET + TCCT+ RTCE + RGT + TEST + some buffer.
How to create requirements test matrix template?
For a requirements test matrix template we perform following step:
Step 3: Create a table based on these. Let we have 10 requirements and 40 test
cases, then we create a table of 11 rows and 41 columns.
Step 4: On the first column of table copy all your 10 requirement numbers, an d
paste them into rows 2 through 11 of the table.
Step 5: Now copy all 40 test case numbers, and paste them into columns 2 through
41 of the table.
You are a tester. Now How will you choose which defect to remove in 1000000 defects?
First thing testers are not responsible for fixing the bug they are only responsible
for debugging the bug and prioritizing those bugs. These bugs are now reported in
bug report template with the severity and priority of the bug. Tester assigns
severity level to the defects depending upon their impact on other parts of
application. Every bug has its severity and priority values assign by tester. If a
defect does not allow you to go ahead and test the product, it is critical one so it
has to be fixed as soon as possible. We have 5 levels as:
- Critical
- High
- Medium
- Low
- Cosmetic
- Maintainability: For each new release need to update the test automation suites.
- Reliability: Accuracy and repeatability of the test automation.
- Flexibility: Ease of working with all the different kinds of automation test ware.
- Efficiency: Total cost related to the effort needed for the automation.
- Portability: Ability of the automated test to run on different environments.
- Robustness: Effectiveness of automation on an unstable or rapidly changing
system.
- Usability: Extent to which automation can be used by different types of user.
What are the tests activities that you want to automate in a project?
The following testing activities can be automated:
- Functional tests: Identify some P1 and P2 cases which are most critical for project
success and operations and automate them. After every new build, these scripts
will assure the fixes does not broke any of the critical functionality.
- Regression test suites: Test the need to be run after each build.
- Stress tests
- Load tests
- QA is concern for Process Quality and Programmers are conc ern for Product
Quality.
- QA ensure that the processes used for developing the product of high quality
where as programmers used these processes so that end product is of good quality.
- Processes are decided by QA. Programmers are supposed to follow the processes
so that they can produce a good quality product.
- Testers and developers can know the status of the bug at every stage.
- Changes to the Status will be available to all team members.
- Developers and Testers can easily interact with bugs.
- Repetition of bugs will be avoided.
- Easy to distribute the bug among the developer.
- It will act as a centralized one for defects.
- The bottom up approach testing approach is carried out with the help of the test
driver. The test driver calls a component to be tested.
- The modules in the lower level of call hierarchy are tested independently. Then
the next level modules are tested that call previously tested modules. This is done
repeatedly until all the modules are included in the testing.
- Bottom up testing stops when the top module in the call hierarchy is tested with
all lower call hierarchy modules.
- The top down approach is carried out with the help of the t est stub. Test stub are
the dummy programs. The Stub is called from the software component to be
tested.
- Tests top layer of controlling subsystem first. Then combine modules that are
called by the tested modules and test resulted collection of modules.
- Error Guessing: The tester has to guess what fault might occur and to design the
tests to represent them.
- Equivalence Class Partitioning: The input domain data is divided into different
equivalence data classes; take few valid values with 2 invalid values. This is used to
reduce the total number of test cases to a finite set of test able test cases.
Explain CMM.
Capability Maturity Model (CMM) is divided in five levels:
2. Repeatable: In this level some processes are repeatable, possibly with consistent
results.
3. Defined: In this level, we define all processes are documented for both
management and engineering activities, and standards.
4. Managed: Detailed measures of each process are defined and product quality
data is routinely collected. Both process and products are quantitatively
understood and controlled.