You are on page 1of 7

1.

Definition of software testing: Software testing is the process of evaluating a software


application or system to determine whether it meets the specified requirements and
works as expected. The main goal of testing is to identify defects or bugs in the software
before it is released to the end-users.
2. Types of software testing:
 Functional testing
 Non-functional testing
 Manual testing
 Automated testing
 Performance testing
 Security testing
 Usability testing
 Integration testing
 Regression testing
 Acceptance testing
3. What to keep in mind while performing testing:
 Understand the requirements and specifications of the software.
 Plan the testing process and develop a testing strategy.
 Design test cases that cover all possible scenarios and edge cases.
 Execute the tests and record the results.
 Report defects or bugs found during testing.
4. Definition of manual testing: Manual testing is a type of software testing where the
tests are performed manually by human testers without the use of automation tools.
The purpose of manual testing is to identify defects or bugs in the software by
simulating the end-users' interactions with the system.
5. When to start testing: Testing should start as early as possible in the software
development life cycle (SDLC) to catch defects early and minimize the cost of fixing
them. Testing can begin as soon as the software requirements are defined and before
any code is written.
6. When to end testing: Testing should end when all the test cases have been executed,
and the software meets the specified requirements and quality standards. However, in
practice, testing may continue even after the software is released to address any defects
or bugs found by the end-users.
7. Definition of verification and validation: Verification is the process of checking
whether the software meets the specified requirements and design specifications.
Validation is the process of evaluating whether the software meets the end-users' needs
and expectations.
8. Definition of branch coverage and decision coverage: Branch coverage is a metric
that measures the percentage of code branches executed during testing. Decision
coverage is a metric that measures the percentage of decision points in the code that
have been executed during testing.
9. Definition of retesting: Retesting is the process of rerunning the failed test cases after
the defects or bugs have been fixed to verify that the software works as expected and
the defects have been resolved.
10. Definition of regression testing: Regression testing is the process of retesting the
entire software application or system to ensure that the changes made during
development or maintenance have not introduced any new defects or bugs. It is
typically performed after every change or update to the software.
1. Difference between retesting and regression testing: Retesting is the process of
testing a specific defect that has been fixed in the software to ensure that it has been
resolved successfully. Regression testing is the process of testing the software
application after a change has been made to ensure that the existing functionalities
have not been affected by the change.
2. Functional testing: Functional testing is a type of software testing that verifies the
functions and features of an application or system to ensure that it meets the specified
requirements and works as expected. It tests the functionality of individual modules or
components of a software application.
3. Non-functional testing: Non-functional testing is a type of software testing that tests
the non-functional aspects of an application or system, such as performance, security,
usability, scalability, reliability, and compatibility. It tests how well the application or
system performs under different conditions and loads.
4. Integration testing: Integration testing is a type of software testing that tests the
interactions between different modules or components of a software application to
ensure that they work together as expected. It tests the interfaces and interactions
between modules and identifies any defects or issues that arise during the integration
process.
5. System testing: System testing is a type of software testing that tests the entire system
or application as a whole to ensure that it meets the specified requirements and works
as expected. It tests the system's functionality, performance, and reliability under
different conditions and scenarios.
6. Module testing: Module testing, also known as unit testing, is a type of software
testing that tests individual modules or components of a software application to ensure
that they work as expected. It tests each module in isolation and identifies any defects
or issues that arise during the testing process.
7. End-to-end testing: End-to-end testing is a type of software testing that tests the
entire application or system from start to finish to ensure that it meets the specified
requirements and works as expected. It tests the application or system as a user would
interact with it, and identifies any defects or issues that arise during the testing process.
8. Differences between system and end-to-end testing: System testing focuses on
testing the entire system or application as a whole, whereas end-to-end testing focuses
on testing the application or system from the user's perspective. System testing is
usually performed by developers and testers, whereas end-to-end testing is typically
performed by business analysts and end-users.
9. Testing techniques: Testing techniques are the methods or approaches used to identify
defects or issues in a software application or system. There are various testing
techniques such as black-box testing, white-box testing, grey-box testing, exploratory
testing, automated testing, manual testing, and acceptance testing. These techniques
can be used individually or in combination to achieve optimal results.
10. Testing Methodologies: Testing methodologies refer to a set of guidelines or
principles that are followed during the testing process to ensure that software meets
the required quality standards. The testing methodologies help to identify and rectify
defects in software to deliver a high-quality product to the end-users. Some of the
popular testing methodologies are Agile Testing, Waterfall Testing, Exploratory
Testing, etc.
11. Boundary Value Analysis (BVA): Boundary Value Analysis is a black-box testing
technique that focuses on testing the values at the boundary of input ranges. The
objective of this technique is to identify errors or defects that occur at or around the
boundaries of input ranges.
Example: Consider a scenario where a user has to enter a number between 1 to 100
in a text box. In this case, the boundary values are 1 and 100. Boundary value
analysis involves testing with values at the boundaries such as 1, 2, 99, and 100.
12. Equivalence Partitioning (EP): Equivalence Partitioning is a black-box testing
technique that divides the input data into partitions that are logically equivalent. The
objective of this technique is to reduce the number of test cases while still achieving
maximum test coverage.
Example: Consider a scenario where a user has to enter a number between 1 to 100
in a text box. In this case, the input data can be divided into three partitions:
numbers less than 1, numbers between 1 to 100, and numbers greater than 100.
Testing one value from each partition would be sufficient to test the entire range of
input data.
13. Decision Table Testing: Decision Table Testing is a black-box testing technique
used to test the complex business logic of software applications. It involves creating
a decision table that outlines all possible combinations of inputs and expected
outputs.
14. Test Case: A Test Case is a detailed set of steps, conditions, and expected results
that are designed to test a specific functionality of the software.
15. Test Scenarios: A Test Scenario is a high-level description of what needs to be
tested. It is used to define the scope of testing and to ensure that all functionalities
of the software are tested.
16. Difference between Test Case and Test Scenarios: Test Case is a detailed set of
steps to test a specific functionality, whereas Test Scenario is a high-level description
of what needs to be tested.
17. Requirement Traceability Matrix (RTM): Requirement Traceability Matrix is a
document that maps each requirement to a specific test case or test scenario. It
helps to ensure that all requirements are tested and helps to trace back any defects
to their respective requirements.
18. First step of Start Testing Process: The first step of the testing process is to identify
the testing objectives, define the testing scope, and prepare a Test Plan.
19. Test Plan: Test Plan is a document that outlines the testing objectives, testing scope,
testing approach, test schedules, and resource requirements for a specific project. It
serves as a blueprint for the testing process and helps to ensure that all testing
objectives are met.

1. What is the basic format of a test plan? A test plan typically includes the following
sections:
 Introduction
 Test objectives
 Scope
 Test approach
 Test environment
 Test deliverables
 Test schedule
 Roles and responsibilities
 Risks and contingencies
 Approvals
2. What are test objectives? Test objectives are specific goals that define what needs to
be tested, how it should be tested, and what the expected outcomes are. They help
guide the testing process and ensure that all necessary requirements are met.
3. What is the basic format of writing a test case? A test case typically includes the
following components:
 Test case ID
 Test case description
 Test steps
 Expected results
 Actual results
 Pass/fail status
 Comments/notes
4. What is a bug? A bug is a software defect or error that causes the software to behave in
unexpected ways or to produce incorrect results.
5. What is a defect? A defect is a flaw in the software that prevents it from functioning as
intended or as specified in the requirements.
6. What is a fault? A fault is a defect or error in the software that can cause the software
to fail or produce incorrect results.
7. What is the difference among bug, defect, and fault? The terms bug, defect, and
fault are often used interchangeably. However, some people make the following
distinctions:
 A bug is any problem with the software that causes it to behave in unexpected ways.
 A defect is a specific flaw in the software that prevents it from functioning as intended.
 A fault is a defect or error in the software that can cause the software to fail or produce
incorrect results.
8. What are the must-present fields while raising a defect? When raising a defect, the
following fields should be included:
 Defect ID
 Description
 Steps to reproduce
 Severity
 Priority
 Assignee
 Status
 Date raised
 Reporter
9. What are the steps to reproduce while logging a defect? When logging a defect, the
steps to reproduce should be as detailed as possible, including:
 Which software module was being used
 The input or actions that triggered the problem
 The expected result
 The actual result
 Any error messages or other output
10. What is a defect life cycle? The defect life cycle is the sequence of steps that a defect
goes through from discovery to resolution. The typical stages are:
 New
 Open
 Assigned
 Fixed
 Retest
 Verified
 Closed
11. What are defect tracking tools? Defect tracking tools are software applications used to
manage and track defects throughout the defect life cycle. Examples include JIRA,
Bugzilla, and Trello.
12. What is the severity and priority of a bug? The severity of a bug is the impact that it has
on the software's functionality or the user experience. The priority of a bug is the
urgency with which it needs to be fixed.
13. Example of high severity and high priority. A high severity and high priority bug might
be one that causes the software to crash or results in data loss.
14. Example of low severity and low priority. A low severity and low priority bug might be a
minor formatting issue or a spelling mistake.
15. Example of high severity and low priority. A high severity and low priority bug might be
a serious functionality problem that affects a small subset of users or has a workaround
available.
16. Example of low severity and high priority. A low severity and high priority bug might be
a minor usability issue that affects a large number of users or has a significant impact on
the user experience.

1. Who decides priority of bug? The priority of a bug is usually decided by the project
manager, product owner, or the development team lead, based on the impact of the
bug on the system, the severity of the bug, the user's feedback, and the available
resources.
2. Who decides severity of bug? The severity of a bug is typically decided by the tester
who reports the bug, based on the impact of the bug on the functionality of the system,
the frequency of occurrence, and the level of damage it may cause.
3. What is bug leakage? Bug leakage is a situation where a bug or an error goes
undetected in the software testing phase and gets released into production, causing
negative consequences for the users.
4. What is bug release? Bug release is the process of identifying and resolving the bugs
found during software testing and deploying the software to production after ensuring
that the software is free from major issues.
5. What are the differences between bug leakage and release? Bug leakage occurs when a
bug goes undetected and makes its way into production, while bug release is the
process of identifying and resolving bugs before deploying the software. Bug leakage
can cause damage to the system and harm the users, while bug release aims to ensure
that the software is free from major issues.
6. Define alpha testing and beta testing. Say me differences between alpha testing and
beta testing? Alpha testing is the testing process performed by the development team
or a small group of users before releasing the software to the public. It is done to
identify any issues and to refine the software to meet the user's needs. Beta testing is
the process of testing the software in a real-world environment with a larger group of
users to identify any issues and to gather feedback.

The main differences between alpha testing and beta testing are:

 Alpha testing is done by the development team, while beta testing is done by external
users.
 Alpha testing is done in a controlled environment, while beta testing is done in a real-
world environment.
 Alpha testing is done before the software is released, while beta testing is done after the
software is released.
 Alpha testing is focused on identifying and fixing issues, while beta testing is focused on
gathering user feedback.
7. What is a build? In software development, a build is a compiled version of the software
that includes all the necessary code, libraries, and resources needed to run the software.
It is the output of the build process and is used for testing and deployment. Builds are
usually assigned a unique version number for tracking and identification purposes.

You might also like