Professional Documents
Culture Documents
Answer: 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 quality assurance. It is the
primary responsibility of the testing team to implement quality control.
Testing is the process of finding defects/bugs. 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 main focus is on finding bugs and the testing teams work as a quality gatekeeper.
Q #3) What is the difference between the Test Plan and Test Strategy?
Answer: Test Strategy is at a higher level, mostly created by the Project Manager which demonstrates the
overall approach of the testing for the entire project, whereas the Test plan depicts how the testing should
be performed for a particular application, falling under a project.
Q #7) What would you do if you have a large suite to execute in very less time?
Answer: In case we have less time and have to execute the larger volume of test cases, we should
prioritize the test case 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 are tested.
Alternatively, we may also seek customer preference that which is the most important function 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.
Q #8) Do you think QA’s can also participate to resolve production issues?
Answer: Definitely!! It would be a good learning curve for QA’s to participate in resolving production
issues. Many time production issues could be resolved by clearing the logs or making some registry
settings or by restarting the services.
These kinds of environmental issues could be very well fixed by the QA team.
Also, if QA has an insight into resolving the production issues, they may include them while writing the
test cases, and this way they can contribute to improve quality and try to minimize the production defects.
Q #9) Suppose you find a bug in production, how would you make sure that the same bug is not
introduced again?
Answer: The 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, we can think of alternate test cases or similar kinds of test cases and include them in our planned
execution.
Q #12) How would you ensure that your testing is complete and has good coverage?
Answer: Requirement Traceability Matrix and Test coverage matrices will help us to determine that our
test cases have good coverage.
Requirement traceability matrix 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.
Q #13) What are the different artifacts you refer to when you write the test cases?
Answer: The main artifacts used are:
Functional requirement specification
Requirement understanding document
Use Cases
Wireframes
User Stories
Acceptance criteria
Many a time UAT test cases
Q #14) Have you ever managed writing the test cases without having any documents?
Answer: Yes, there are cases when we have a situation where we have to write test cases without having
any concrete documents.
In that case, the best way is to:
Collaborate with the BA and development team.
Dig into mails which have some information.
Dig into older test cases/regression suite
If the feature is new, try to read the wiki pages or help of the application to have an idea
Sit with the developer and try to understand the changes being made.
Based on your understanding, identify the test condition and send it to BA or
stakeholders to review them.
Q #15) What is meant by Verification and Validation?
Answer:
Validation is the process of evaluating the final product to check whether the software meets the business
needs. The test execution which we do in our day to day life is the validation activity which includes
smoke testing, functional testing, regression testing, systems testing, etc.
Verification is a process of evaluating the intermediary work products of a software development
lifecycle to check if we are in the correct track of creating the final product.
Q #18) In case you have any doubts regarding your project, how do you approach?
Answer: In case of any doubts, first, try to get it cleared by reading the available artifacts/application
help. In case of doubts that persist, ask an immediate supervisor or the senior member of your team.
Business Analysts can also be a good choice to ask doubts. We can also convey our queries with the
development team in case of any other doubts. The last option would be to follow up with the manager
and finally to the stakeholders.
Q #20) How do you determine which piece of software requires how much testing?
Answer: We can know this factor by finding out the Cyclomatic Complexity.
The technique helps to identify the below 3 questions for the programs/features
Is the feature/program testable?
Is the feature/program understood by everyone?
Is the feature/program reliable enough?
As a QA, we can use this technique to identify the “level” of our testing.
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 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.
It’s very important to 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 the testing team executes the tests.
Q #24 What are the contents of test plans and test cases?
Testing objectives
Testing scope
The environment
Deliverables
Risk factors
Black-box testing: It is a testing strategy based solely on requirements and specifications. In this
strategy, it requires no knowledge of internal paths, structures, or implementation of the software
being tested.
White box testing: It is a testing strategy based on internal paths, code structures, and
implementation of the software being tested. White box testing generally requires detailed
programming skills.
Gray box testing: It is a strategy for software debugging in which the tester has limited
knowledge of the internal details of the program.
Unit Testing
Integration Testing
System Testing
Acceptance Testing
A defect life cycle is a process in which a defect goes through various phases during its entire lifetime. It
starts when a defect is found and ends when a defect is closed, after ensuring it’s not reproduced.
Bug or defect life cycle includes the steps as illustrated in the below figure. If you wish to learn in depth
about Bug Life Cycle then you can refer my article on Software Testing Tutorial.
It can vary from organization to organization and also from project to project based on several factors like
organization policy, software development model used (like Agile, Iterative), project timelines, team
structure etc.
Verification: It is a static analysis technique. Here, testing is done without executing the code. Examples
include – Reviews, Inspection, and walkthrough.
Validation: It is a dynamic analysis technique where testing is done by executing the code. Examples
include functional and non-functional testing techniques.
In the V model, the development and QA activities are done simultaneously. There is no discrete phase
called Testing, rather testing starts right from the requirement phase. The verification and validation
activities go hand in hand.
Wrong: It implies that requirements have been implemented incorrectly. It is a variance from the
given specification.
Missing: This is a variance from the specifications, an indication that a specification was not
implemented, or a requirement of the customer was not noted properly.
Extra: It is a requirement incorporated into the product that was not given by the end customer. It
is always a variance from the specification but may be an attribute desired by the user of the
product.
Requirement document: It specifies what exactly is needed in the project from the customers
perspective.
Input from the customer: This can be discussions, informal talks, emails, etc.
Project plan: The project plan prepared by the project manager also serves as good input to
finalize your acceptance test.
Q# 36. What is coverage and what are the different types of coverage techniques?
The parameter used in software testing to describe the extent to which the source code is tested is known
as coverage. There are three basic types of coverage techniques and they are:
1. Statement coverage: It ensures that each line of source code has been executed and tested.
2. Decision coverage: It assures that every decision (true/false) in the source code has been
executed and tested.
3. Path coverage: Here we ensure that every possible route through a given part of the code is
executed and tested.
Q# 37. What is the difference between severity and priority?
These are important distinctions that must be known for proper time management. Severity is how
difficult the issue is to fix. Priority is how important the issue is to fix.Just because an issue is high
severity doesn’t necessarily mean it’s high priority and vice versa.
The application crashes when a rarely used function is run on legacy software that most users
can’t access.
Type Description
A programmatic test that tests the internal working of a unit of code, such as a
Unit Testing
method or a function.
Ensures that multiple components of systems work as expected when they are
Integration Testing
combined to produce a result.
Ensures that existing features/functionality that used to work are not broken due to
Regression Testing
new code changes.
Complete end-to-end testing is done on the complete software to make sure the whole
System Testing
system works as expected.
A quick test performed to ensure that the software works at the most basic level and
Smoke Testing doesn’t crash when it’s started. Its name originates from the hardware testing where
you just plug the device and see if smoke comes out.
Performance Ensures that the software performs according to the user’s expectations by checking
Testing the response time and throughput under specific load and environment.
User-Acceptance Ensures the software meets the requirements of the clients or users. This is typically
Testing the last step before the software is live, i.e. it goes to production.
Ensures that the performance of the software doesn’t degrade when the load
Stress Testing increases. In stress testing, the tester subjects the software under heavy loads, such as
a high number of requests or stringent memory conditions to verify if it works well.
Measures how usable the software is. This is typically performed with a sample set of
Usability Testing end-users, who use the software and provide feedback on how easy or complicated it
is to use the software.
Now more important than ever. Security testing tries to break a software’s security
Security Testing checks, to gain access to confidential data. Security testing is crucial for web-based
applications or any applications that involve money.