You are on page 1of 8

1) What is the difference between Quality Assurance, Quality Control, and Testing?

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 #2) When do you think QA activities should start?


Answer: QA activity should start at the beginning of the project. The more early it starts the more
beneficial it is to set the standard for achieving the quality.
The cost, time and efforts are very challenging in case the QA activities get delayed.

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 #4) Can you explain the Software Testing Life Cycle?


Answer: Software Testing Life Cycle refers to a testing process that has specific steps to be executed in a
definite sequence to ensure that the quality goals have been met.

Q #5) How do you define a format of writing a good test case?


Answer: The format of Test Case includes:
 Test case ID
 Test case description
 Severity
 Priority
 Environment
 Build version
 Steps to execute
 Expected results
 Actual results

Q #6) What is a good test case?
Answer: In simple words, a good test case is one that finds a defect. But all test case will not find defects,
so a good test case can also be one which has all the prescribed details and coverage.

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 #10) What is the difference between Functional and Non-functional testing?


Answer:
Functional testing deals with the functional aspect of the application. This technique tests that the system
is behaving as per the requirement and specification. These are directly linked with customer
requirements. We validate the test cases against the specified requirement and make the test results as
pass or fail accordingly.
Examples include regression, integration, system, smoke, etc
Nonfunctional testing, on the other hand, tests the non-functional aspect of the application. It does not
focus on the requirement, but 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.

Q #11) What is Negative testing? How is it different from Positive testing?


Answer:  Negative testing is a technique that validates that the system behaves gracefully in case of any
invalid inputs. For example, in case the user enters any invalid data in a text box, the system should
display a proper message instead of the technical message which the user does not understand.
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.

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 #16) What are the different verification techniques you know?


Answer: Verification techniques are static. There are 3 verification techniques.
These are explained as follows:
(i) Review – This is a method by which the code/test cases are examined by the individual other than the
author who has produced it. It is one of the easy and best ways to ensure coverage and quality.
(ii) Inspection – This is a technical and disciplined way to examine and correct the defects in the test
artifact or code. Because it is disciplined, it has various roles:
 Moderator – Facilitates the entire inspection meeting.
 Recorder – Records the minutes of the meeting, defects occurred, and other points
discussed.
 Reader – Read out the document/code. The leader also leads to the entire inspection
meeting.
 Producer – The author. They are ultimately responsible to update their document/code
as per the comments.
 Reviewer – All the team members can be considered as a reviewer. This role can also
be played by some group of experts is the project demands.
(iii) Walkthrough – This is a process in which the author of the document/code reads the content and
gets the feedback. This is mostly a kind of FYI (For Your Information) session rather than seeking
corrections.

Q #17) What is the difference between Load and Stress testing?


Answer:
Stress Testing is a technique which validates the behavior of the system when it executes under stress.
To explain, we reduce the resources and check the behavior of the system. We first understand the upper
limit of the system and gradually reduce the resources and check the system behavior.
In Load testing, we validate the system behavior under the expected load. The load can be of concurrent
user or resources accessing the system at the same time.

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 #19) Have you used any Automation tools?


Answer: The answer to this question is very much exclusive to the individual. Reply to all the tools and
strategies of automation that you have used in your project.

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 #21 What is the difference between build and release?


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.

Q #22 What is bug leakage and bug release?


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.

Q #23 What does the test strategy include?


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.

Q #24 What are the contents of test plans and test cases?

 Testing objectives
 Testing scope

 Testing the frame

 The environment

 Reason for testing

 The criteria for entrance and exit

 Deliverables

 Risk factors

Q# 25 Explain what is Bug triage?


A bug triage is a process to ,Ensure bug report completeness, Assign and analyze the bug ,Assigning bug
to proper bug owner ,Adjust bug severity properly and Set appropriate bug priority

Q# 26 Explain what is traceability matrix?


A test matrix is used to map test scripts to requirements.

Q# 27 Explain what is the difference between Regression testing and Retesting?


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.
Q# 28 What are the different methods of testing?
There are three methods of software testing and they are as follows:

 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.

Q# 29. What are the different levels of testing?


There are mainly four testing levels and they are:

 Unit Testing
 Integration Testing
 System Testing
 Acceptance Testing

Basically, it starts with the Unit Testing phase and ends with Acceptance Testing.

Q# 30. Explain Bug Life Cycle or Defect life cycle.

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.

Q# 31. What is a test case?


A test case is nothing but a set of conditions or variables under which a tester will determine whether a
system under test satisfies requirements or works correctly. 
Q# 32. What is the difference between functional and non-functional testing?

Functional Testing Non Functional Testing


Performed before non-functional testing Performed after functional testing
Based on customer requirements Based on customers expectations
Describes what the product does Describes how the product works
Q# 33. What is Verification and Validation in Software Testing?

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.

Q# 33 What is usability testing?


It is a testing methodology where the end customer is asked to use the software to see if the product is
easy to use, to see the customer’s perception and task time. An accurate way to finalize the customer
point of view for usability is by using prototype or mock-up software during the initial stages.

Q# 34. What are the categories of defects?


There are three main categories of defects as shown in the below figure:

 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.

Q# 35. On what basis the acceptance plan is prepared?


Basically, the acceptance document is prepared using the following inputs.

 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.

Here’s an example of a high severity, low priority issue:

 The application crashes when a rarely used function is run on legacy software that most users
can’t access.

Here’s an example of a low severity, high priority issue:

 The wrong company logo is displayed on startup. 

Q# 38. What is a bug?


A bug is any kind of error, mistake or failure in software code that prevent the software function from
executing properly.

Q# 39. What are the different types of testing?

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. 

Q# 40. State the difference between bugs and errors

Bugs and errors differ in the following ways:


Bugs Errors
Software bugs are defects, which occur when the Errors in code are caused by problems with the code,
software or an application does not work as which means that the developer could have
intended. A bug occurs when there is a coding misunderstood the requirement or the requirement
error, which causes the program to malfunction.  was not defined correctly, leading to a mistake. 
The bug is submitted by the testers. Errors are raised by test engineers and developers.
Syntactic error, error handling error, error handling
Logic bugs, resource bugs, and algorithmic bugs
error, user interface error, flow control error,
are types of bugs.
calculation error, and testing error are types of errors.
The software is detected before it is deployed in The error occurs when the code is unable to be
production. compiled.

You might also like