UNIT-3 Set
UNIT-3 Set
Prepared by:
Dr.M.GANESAN/ ASSOCIATE PROFESSOR /CSE
Ms.V.SWATHILAKSHMI / AP /CSE
R.DEEPA/ AP /CSE
UNIT III
Introduction to Software testing – Psychology of Testing – Principles of Software Testing – Defects –
Defect Prevention Strategies – Role of a tester – Software Testing Life Cycle.
2 Marks
1. Define Software Testing.
Software testing is the process of evaluating and verifying that a software product or application
does what it is supposed to do.
The benefits of testing include preventing bugs, reducing development costs and improving
performance. Acceptance testing: Verifying whether the whole system works as intended.
2. What are the steps in software testing?
Here are the essential software testing steps every software engineer should perform before showing
their work to someone else.
Basic functionality testing. Begin by making sure that every button on every screen works. ...
Code review.
Static code analysis.
Unit testing.
Single-user performance testing.
3. What is software testing and why it is necessary?
Software Testing is the activity of checking whether the expected results match the actual results. It
helps to ensure that the software system is defect free. It helps to identify missing requirements, gaps,
or errors that might be contrary to the requirements.
Software is used to control a computer. There are different types of software that can run on a
computer: system software, utility software, and application software.
5. What are the 7 phases of SDLC?
The new seven phases of SDLC include planning, analysis, design, development, testing,
implementation, and maintenance.
Integration Testing.
System Testing.
Acceptance Testing.
12. What are the stages in testing life cycle?
Let's dig into these sequential phases of the software testing life cycle:
Requirement analysis.
Test planning.
Test case design and development.
Test environment setup.
Test execution.
Test cycle closure.
13. What are the 7 principles in software testing?
The seven principles of testing:
Testing shows the presence of defects, not their absence. ...
Exhaustive testing is impossible. ...
Early testing saves time and money. ...
Defects cluster together. ...
Beware of the pesticide paradox. ...
Testing is context dependent. ...
Absence-of-errors is a fallacy.
14. What is Software Testing & Its principle?
Software testing is the process of executing a program with the aim of finding the error. To make our
software perform well it should be error-free.
If testing is done successfully it will remove all the errors from the software. There are seven principles
in software testing: Absence of errors fallacy.
15. What is test process in software testing?
Testing is an integral component of the software development process. It entails a comprehensive
assessment of software to ensure it meets your client's requirements and goals.
The primary goal of testing is to identify all the defects and errors in the software before the
implementation phase.
16. What are the elements of software testing?
A testing plan of the actual testing tasks you will need to execute to carry out that strategy.
Test cases that have been prepared in advance in the form of detailed examples you will use to check
that the software will meet its requirements.
17. What are the 5 basic principles of testing?
Five principles
Practicality.
Reliability.
Validity.
Authenticity.
Washback.
18. What is Defect Prevention & What are the kinds of checks that are to be performed routinely to
avoid the defect?
Defect Prevention is basically defined as a measure to ensure that defects being detected so far, should
not appear or occur again.
Arithmetic Defects
Logical Defects
Syntax Defects
Multithreading Defects
Interface Defects
Performance Defects
20. What is defect and types of defects?
Point defects explain about the imperfections of solids along with the types of point defects. Crystalline
solids are formed by joining many small crystals.
Defects or Imperfections in crystalline solid can be divided into four groups namely line defects, point
defects, volume defects and surface defects.
21. What is defect classification in testing?
Advertisements. Defects are classified from the QA team perspective as Priority and from the
development perspective as Severity (complexity of code to fix it).
These are two major classifications that play an important role in the timeframe and the amount of
work that goes in to fix defects.
It helps to enhance the behavior of the It helps to improve the performance of the
application. application.
It tests what the product does. It describes how the product does.
Functional testing is based on the business Non-functional testing is based on the performance
requirement. requirement.
Examples: Examples:
1. Unit Testing 1. Performance Testing
2. Smoke Testing 2. Load Testing
3. Integration Testing 3. Stress Testing
4. Regression Testing 4. Scalability Testing
Cost-Effective: It is one of the important advantages of software testing. Testing any IT project on time
helps you to save your money for the long term. In case if the bugs caught in the earlier stage of
software testing, it costs less to fix.
Security: It is the most vulnerable and sensitive benefit of software testing. People are looking for
trusted products. It helps in removing risks and problems earlier.
Product quality: It is an essential requirement of any software product. Testing ensures a quality
product is delivered to customers.
Customer Satisfaction: The main aim of any product is to give satisfaction to their customers. UI/UX
Testing ensures the best user experience.
40.What do you mean by automation testing?
Automated testing is a process that validates if software is functioning appropriately and meeting
requirements before it is released into production.
This software testing method uses scripted sequences that are executed by testing tools.
41. What is a defect? Give examples. (Dec 2021)
Defects are defined as the deviation of the actual and expected result of system or software application.
Defects can also be defined as any deviation or irregularity from the specifications mentioned in the
product functional specification document. Defects are caused by the developer in development phase
of software.
For example, the context of the IT industry, a defect is an error or a bug.
42. Mention the role of defect repository. (Dec 2021)
It helps a tester to select applicable testing techniques, design the test cases, and allocate the amount of
resources needed to detect and remove defects.
1. Requirements and Specification Defects
2. Design Defects
3. Coding Defects
4. Testing Defects
43. What do you mean by debugging? (Feb 2023)
Debugging is the process of detecting and removing of existing and potential errors (also called as
'bugs') in a software code that can cause it to behave unexpectedly or crash.
To prevent incorrect operation of a software or system, debugging is used to find and resolve bugs or
defects.
44. What is the basic objective of software testing? (Feb 2023)
The primary purpose of software testing is to detect flaws at any step of the development process. The
higher the number of issues detected at an early stage, the higher the software testing success rate. Bug
Prevention: This is the immediate action of bug discovery, which occurs as a result of bug discovery.
5 Marks
1. Explain in detail about Software Testing.
What is Software Testing
Software testing is a process of identifying the correctness of software by considering its all attributes
(Reliability, Scalability, Portability, Re-usability, Usability) and evaluating the execution of software
components to find the software bugs or errors or defects.
Software testing provides an independent view and objective of the software and gives surety of fitness of
the software. It involves testing of all components under the required services to confirm whether it is
satisfying the specified requirements or not. The process is also providing the client with information
about the quality of the software.
Testing is mandatory because it will be a dangerous situation if the software fails any time due to lack of
testing. So, without testing software cannot be deployed to the end user.
What is Testing
Testing is a group of techniques to determine the correctness of the application under the predefined
script but, testing cannot find all the defects of the application. The main intent of testing is to detect
failures of the application so that failures can be discovered and corrected. It does not demonstrate that a
product functions properly under all conditions but only that it is not working in some specific conditions.
Testing furnishes comparison that compares the behavior and state of software against mechanisms
because the problem can be recognized by the mechanism. The mechanism may include past versions of
the same specified product, comparable products, and interfaces of expected purpose, relevant standards,
or other criteria but not limited up to these.
Testing includes an examination of code and also the execution of code in various environments,
conditions as well as all the examining aspects of the code. In the current scenario of software
development, a testing team may be separate from the development team so that Information derived
from testing can be used to correct the process of software development.
The success of software depends upon acceptance of its targeted audience, easy graphical user interface,
strong functionality load test, etc. For example, the audience of banking is totally different from the
audience of a video game. Therefore, when an organization develops a software product, it can assess
whether the software product will be beneficial to its purchasers and other audience.
Type of Software testing
We have various types of testing available in the market, which are used to test the application or the
software.
With the help of below image, we can easily understand the type of software testing:
Programmers and Testers are two separate roles, although programmers do test code.
Test independence avoids author bias and is often more effective at finding defects and failures.
Developers view: Testing is the process to prove that software works correctly.
QA view: Testing is the process to prove that software does not work.
Manager’s View: Testing is the process to detect the defects and minimize the risk associated
with the residual defects.
Why do we test?
1. Primarily to find faults in the software
2. This can be perceived as being a destructive process, not constructive
3. How does this fit with the mindset of the developer and tester ?
Tester-Developer relationships:
Communication is the Key!!
1. Must be constructive not destructive
2. Developers must inform testers of any changes made to the system
3. Testers must report problems to developers clearly and concisely.
4. It is a two-way process!!
Test Independence:
1. Independent testing is more effective.
2. Authors should not test their own work.
3. The author should not test their own work
-Assumptions made are carried into testing
-People see what they want to see
-There can be emotional attachment with the product
-We’re human
Levels of Independence
1. Where test cases are
2. designed by the person who writes the software under test (v.v.low)
3. designed by another person(low)
4. designed by people from another department (medium)
5. designed by people from another organisation (very medium)
6. not chosen by a person (v.v.high)
Tester’s characteristics:
1. Methodical
2. Happy when they are finding faults
3. Under-valued by the organisation
For better performance of software, software testing will start at the initial phase i.e. testing will
perform at the requirement analysis phase.
Defect clustering:
In a project, a small number of the module can contain most of the defects. Pareto Principle to software
testing state that 80% of software defect comes from 20% of modules.
Pesticide paradox: Repeating the same test cases, again and again, will not find new bugs. So it is
necessary to review the test cases and add or update test cases to find new bugs.
Testing is context-dependent:
The testing approach depends on the context of the software developed. Different types of software
need to perform different types of testing.
For example, The testing of the e-commerce site is different from the testing of the Android application.
Absence of errors fallacy:
If a built software is 99% bug-free but it does not follow the user requirement then it is unusable.
It is not only necessary that software is 99% bug-free but it is also mandatory to fulfill all the customer
requirements.
3.What is testing. Types of Software Testing.
In general, testing is finding out how well something works. In terms of human beings, testing tells what
level of knowledge or skill has been acquired. In computer hardware and software development, testing
is used at key checkpoints in the overall process to determine whether objectives are being met.
In this section, we are going to understand the various types of software testing, which can be used at the
time of the Software Development Life Cycle.
As we know, software testing is a process of analyzing an application's functionality as per the customer
prerequisite.
If we want to ensure that our software is bug-free or stable, we must perform the various types of
software testing because testing is the only method that makes our application bug-free.
● Manual Testing
● Automation Testing
Manual Testing
Manual testing is a software testing process in which test cases are executed manually without using any
automated tool. All test cases executed by the tester manually according to the end user's perspective. It
ensures whether the application is working, as mentioned in the requirement document or not. Test
cases are planned and implemented to complete almost 100 percent of the software application. Test
case reports are also generated manually.
Manual Testing is one of the most fundamental testing processes as it can find both visible and hidden
defects of the software. The difference between expected output and output, given by the software, is
defined as a defect. The developer fixed the defects and handed it to the tester for retesting.
Manual testing is mandatory for every newly developed software before automated testing. This testing
requires great efforts and time, but it gives the surety of bug-free software. Manual Testing requires
knowledge of manual testing techniques but not of any automated testing tool.
Manual testing is essential because one of the software testing fundamentals is "100% automation is not
possible."
Why we need manual testing
Whenever an application comes into the market, and it is unstable or having a bug or issues or creating a
problem while end-users are using it.
If we don't want to face these kinds of problems, we need to perform one round of testing to make the
application bug free and stable and deliver a quality product to the client, because if the application is
bug free, the end-user will use the application more conveniently.
If the test engineer does manual testing, he/she can test the application as an end-user perspective and
get more familiar with the product, which helps them to write the correct test cases of the application
and give the quick feedback of the application.
Automation Testing
Automation testing is a process of changing any manual test case into the test scripts by using
automation testing tools, and scripting or programming language is called automation.
Automation testing is used to increase the efficiency, effectiveness, and coverage of Software testing.
Automation test engineer uses automation testing tools to automate the manual design test cases
without any human interference.
And these testing tools can control the execution of tests, access the test data, and compares the actual
result against the expected result.
The advantages of automation testing are given as follows -
Saves time
Automating the testing process helps the testing team to use less time to validate newly created features.
For instance, in manual testing, there is a need to write thousand test cases for a calculator application,
but automation makes the process much faster.
Productivity improvement
As during execution, automation tests do not require human intervention, so testing an application can
be done late at night, and we can get the results next morning. Software developers and testers require
less time on automation testing.
Accuracy improvement
In manual testing, there is a chance of mistakes whether you are an experienced testing engineer. The
chances of errors may increase when testing a complex use case. But Automation testing reduces the
chances of errors. There is good accuracy, as we will get the same result each time on performing the
same test cases.
In Psychology of testing, People and projects are driven by objectives. While developing the software,
programmer writing code to build software, that time Programmers test their code then pass through the
next phase but as we already mentioned, It is difficult to find our own mistakes. That’s why
independence tester highly recommendable. Because they are testing specialists or professional testers.
In Psychology of testing communication also matters, tester and test lead need good interpersonal skill
to communicate. In Psychology of testing Tester and others can improve communication by
Starting collaboration instead of battles.
Everyone should have a common goal of the quality software.
Improve mutual understanding while working.
Confirm that the other person has understood what you have said.
The three sections of psychology of testing are:
Mindset of Developers and Testers.
Communication in a Constructive Manner.
Test Independence.
Software development life cycle is a combination of various activities, which are performed by different
It is not an unknown fact that to accomplish successful development of a software, people with
different skill and mindset are required. From coding to software implementation, engineers with
different skill set are required to perform tasks, in which they are certified.
As testing and analyzing the software is much different than developing or programming it, it is quite
clear that to develop a software with unique features and superior quality, developers and testers of
Moreover, the introduction of new development and testing techniques and methodologies has further
Any process, whether technical or non-technical requires constant communication between team
members to successfully achieve their goals and aims. Communication, if done in a polite and
courteous manner can help build a strong and reliable relationship between team members and help
them avoid any misunderstanding. Similarly, during the process of testing also, the requirement of
As testers are responsible for finding bugs and reporting them, it becomes vital for them to
communicate it in a courteous, polite, and suitable way to avoid hurting and disappointing someone.
Finding and reporting defects can be an achievement for the tester but is merely an inconvenience for
programmers, designers, developers, and other stakeholders of the project. As testing can be a
destructive activity, it is important for software testers to report defects and failures as objectively
and politely as possible to avoid hurting and upsetting other members related to the project.
3. Test Independence:
The importance of independent software testing is comparatively higher than self-testing or group
testing, as the former helps avoid author bias and often is more effective in finding and detecting
This type of testing is mainly performed by individuals who are not related to the project directly or
are from different organization and are hired mainly to test the quality as well as the effectiveness of
Test independence, therefore, helps developers and other stakeholders get more accurate test
results, which helps them build a better software product, with innovative and unique features and
functionality.
Conclusion:
To achieve successful testing, it is important for software engineers to consider the psychological aspects
of testing, as they can also hamper the result of testing and can impact the performance of the end
product. The importance of these psychological aspects is like any tool or technique adopted for the
process of testing. The mindset of the team members, the communication between them, and most
importantly the test independence while performing the testing is crucial and needs great consideration.
Therefore, if you want your software testing to be free of any hurdles, do consider the psychological
aspects stated above.
5. Differences between Functional and Non-functional Testing.
Functional Testing:
Functional testing is a type of software testing in which the system is tested against the functional
requirements and specifications. Functional testing ensures that the requirements or specifications are
properly satisfied by the application. This type of testing is particularly concerned with the result of
processing. It focuses on simulation of actual system usage but does not develop any system structure
assumptions.
It is basically defined as a type of testing which verifies that each function of the software application
works in conformance with the requirement and specification. This testing is not concerned about the
source code of the application. Each functionality of the software application is tested by providing
appropriate test input, expecting the output and comparing the actual output with the expected output.
Non-functional Testing:
Non-functional testing is a type of software testing that is performed to verify the non-functional
requirements of the application. It verifies whether the behavior of the system is as per the requirement
or not. It tests all the aspects which are not tested in functional testing.
Non-functional testing is defined as a type of software testing to check non-functional aspects of a
software application. It is designed to test the readiness of a system as per nonfunctional parameters
which are never addressed by functional testing. Non-functional testing is as important as functional
testing.
Functional testing is done based on the Non- functional testing is done based on the customer
business requirement. expectation and Performance requirement.
It tests whether the actual result is It checks the response time, and speed of the software
working according to the expected result. under specific conditions.
Customer feedback helps in reducing the Customer feedback is more valuable for non-
risk factors of the product. functional testing as it helps to improve and lets the
tester to know the expectation of the customer.
Rushing through the processes to finish the project on time will only produce a software application
which has no or minimal use for the customers. Hence, work organization and planning is important
and sticking to the plan is very important. The project manager should ensure that there are no
obstacles in the development process and if at all there is an issue it must be resolved with immediate
attention.
Overview Of Software Testing Team
How soon and how well you can achieve your testing goals depends solely on the capabilities of the
testing team. Within the testing team itself it is important to have the correct blend of testers who can
efficiently work together to achieve the common testing goals.
While forming a team for testing, it is important to ensure that the members of the team jointly have a
combination of all the relevant domain knowledge that is required to test the software under
development.
Test lead/manager: A test lead is responsible for:
Defining the testing activities for subordinates – testers or test engineers.
All responsibilities of test planning.
To check if the team has all the necessary resources to execute the testing activities.
To check if testing is going hand in hand with the software development in all phases.
Prepare the status report of testing activities.
Required Interactions with customers.
Updating project manager regularly about the progress of testing activities.
Test engineers/QA testers/QC testers are responsible for:
To read all the documents and understand what needs to be tested.
Based on the information procured in the above step decide how it is to be tested.
Inform the test lead about what all resources will be required for software testing.
Develop test cases and prioritize testing activities.
Execute all the test case and report defects, define severity and priority for each defect.
Carry out regression testing every time when changes are made to the code to fix defects.
10 Marks
1. EXPLAIN IN DETAIL ABOUT SOFTWARE TESTING.
What is Software Testing
Software testing is a process of identifying the correctness of software by considering its all attributes
(Reliability, Scalability, Portability, Re-usability, Usability) and evaluating the execution of software
components to find the software bugs or errors or defects.
Software testing provides an independent view and objective of the software and gives surety of fitness of
the software. It involves testing of all components under the required services to confirm whether it is
satisfying the specified requirements or not. The process is also providing the client with information
about the quality of the software.
Testing is mandatory because it will be a dangerous situation if the software fails any time due to lack of
testing. So, without testing software cannot be deployed to the end user.
What is Testing
Testing is a group of techniques to determine the correctness of the application under the predefined
script but, testing cannot find all the defects of the application. The main intent of testing is to detect
failures of the application so that failures can be discovered and corrected. It does not demonstrate that a
product functions properly under all conditions but only that it is not working in some specific conditions.
Testing furnishes comparison that compares the behavior and state of software against mechanisms
because the problem can be recognized by the mechanism. The mechanism may include past versions of
the same specified product, comparable products, and interfaces of expected purpose, relevant standards,
or other criteria but not limited up to these.
Testing includes an examination of code and also the execution of code in various environments,
conditions as well as all the examining aspects of the code. In the current scenario of software
development, a testing team may be separate from the development team so that Information derived
from testing can be used to correct the process of software development.
The success of software depends upon acceptance of its targeted audience, easy graphical user interface,
strong functionality load test, etc. For example, the audience of banking is totally different from the
audience of a video game. Therefore, when an organization develops a software product, it can assess
whether the software product will be beneficial to its purchasers and other audience.
Type of Software testing
We have various types of testing available in the market, which are used to test the application or the
software.
With the help of below image, we can easily understand the type of software testing:
Test independence avoids author bias and is often more effective at finding defects and failures.
Developers view: Testing is the process to prove that software works correctly.
QA view: Testing is the process to prove that software does not work.
Manager’s View: Testing is the process to detect the defects and minimize the risk associated
with the residual defects.
Why do we test?
1. Primarily to find faults in the software
2. This can be perceived as being a destructive process, not constructive
3. How does this fit with the mindset of the developer and tester ?
Tester-Developer relationships:
Communication is the Key!!
1. Must be constructive not destructive
2. Developers must inform testers of any changes made to the system
3. Testers must report problems to developers clearly and concisely.
4. It is a two-way process!!
Test Independence:
1. Independent testing is more effective.
2. Authors should not test their own work.
3. The author should not test their own work
-Assumptions made are carried into testing
-People see what they want to see
-There can be emotional attachment with the product
-We’re human
Levels of Independence
1. Where test cases are
2. designed by the person who writes the software under test (v.v.low)
3. designed by another person(low)
4. designed by people from another department (medium)
5. designed by people from another organisation (very medium)
6. not chosen by a person (v.v.high)
Tester’s characteristics:
1. Methodical
2. Happy when they are finding faults
3. Under-valued by the organisation
4. Not always intended to be a tester
5. Good communicators
6. Need to be multi-talented
7. Tact & diplomacy are essential
Developer characteristics:
1. Specialized
2. Creative
3. Valued by the organisation
4. Trained
5. Sensitive to criticism
2. DESCRIBE IN DETAIL ABOUT SOFTWARE TESTING PRINCIPLES.
Software testing is a procedure of implementing software or the application to identify the defects or
bugs. For testing an application or software, we need to follow some principles to make our product
defects free, and that also helps the test engineers to test the software with their effort and time.
Here, in this section, we are going to learn about the seven essential principles of software testing. Let us
see the seven different testing principles, one by one:
Testing shows the presence of defects
Exhaustive Testing is not possible
Early Testing
Defect Clustering
Pesticide Paradox
Testing is context-dependent
Absence of errors fallacy
Testing shows the presence of defects
The test engineer will test the application to make sure that the application is bug or defects free. While
doing testing, we can only identify that the application or software has any errors. The primary purpose
of doing testing is to identify the numbers of unknown bugs with the help of various methods and testing
techniques because the entire test should be traceable to the customer requirement, which means that to
find any defects that might cause the product failure to meet the client's needs.
By doing testing on any application, we can decrease the number of bugs, which does not mean that the
application is defect-free because sometimes the software seems to be bug-free while performing
multiple types of testing on it. But at the time of deployment in the production server, if the end-user
encounters those bugs which are not found in the testing process.
Exhaustive Testing is not possible
Sometimes it seems to be very hard to test all the modules and their features with effective and non-
effective combinations of the input data throughout the actual testing process.
Hence, instead of performing the exhaustive testing as it takes boundless determinations and most of the
hard work is unsuccessful. So, we can complete this type of variation according to the importance of the
modules because the product timelines will not permit us to perform such types of testing scenarios.
Early Testing
Here early testing means that all the testing activities should start in the early stages of the software
development life cycle's requirement analysis stage to identify the defects because if we find the bugs at
an early stage, it will be fixed in the initial stage itself, which may cost us very less as compared to those
which are identified in the future phase of the testing process.
To perform testing, we will require the requirement specification documents; therefore, if the
requirements are defined incorrectly, then it can be fixed directly rather than fixing them in another
stage, which could be the development phase.
Defect clustering
The defect clustering defines that throughout the testing process, we can detect the numbers of bugs
which are correlated to a small number of modules. We have various reasons for this, such as the
modules could be complicated; the coding part may be complex, and so on.
These types of software or the application will follow the Pareto Principle, which states that we can
identify that approx. Eighty percent of the complication is present in 20 percent of the modules. With the
help of this, we can find the uncertain modules, but this method has its difficulties if the same tests are
performed regularly, hence the same test will not be able to identify the new defects.
Pesticide paradox
This principle defines that if we are executing the same set of test cases again and again over a
particular time, then these kinds of the test will not be able to find the new bugs in the software or the
application. To get over these pesticide paradoxes, it is very significant to review all the test cases
frequently. And the new and different tests are necessary to be written for the implementation of multiple
parts of the application or the software, which helps us to find more bugs.
Testing is context-dependent
Testing is a context-dependent principle that states that multiple fields such as e-commerce websites,
commercial websites, and so on are available in the market. There is a definite way to test the
commercial site as well as the e-commerce websites because every application has its own needs,
features, and functionality. To check this type of application, we will take the help of various kinds of
testing, different techniques, approaches, and multiple methods. Therefore, the testing depends on the
context of the application.
Absence of errors fallacy
Once the application is completely tested and there are no bugs identified before the release, we can say
that the application is 99 percent bug-free. But there is the chance when the application is tested beside
the incorrect requirements, identified the flaws, and fixed them on a given period would not help as
testing is done on the wrong specification, which does not apply to the client's requirements. The
absence of error fallacy means identifying and fixing the bugs would not help if the application is
impractical and not able to accomplish the client's requirements and needs.
Role of Software Tester: -
As a software tester, you'll be involved in the quality assurance stage of software development and
deployment. You'll conduct automated and manual tests to ensure the software created by developers is
fit for purpose and any bugs or issues are removed within a product before it gets deployed to everyday
users.
3. DISCUSS IN DETAIL ABOUT SOFTWARE TESTING LIFE CYCLE.
Software Testing Life Cycle (STLC)
The procedure of software testing is also known as STLC (Software Testing Life Cycle) which includes
phases of the testing process. The testing process is executed in a well-planned and systematic manner.
All activities are done to improve the quality of the software product.
The Software Testing Life Cycle (STLC) is a sequence of specific actions performed during the testing
process to ensure that the software quality objectives are met. The STLC includes both verification and
validation. Contrary to popular belief, software testing is not just a separate activity. It consists of a series
of methodological activities to help certify your software product.
What to use the STLC for
By knowing that the STLC is a set of measures, we can assume that it includes various stages, such as
planning, control, implementation, standardization, and so on. All this leads us to the fact that the STLC
is needed not only to test the developed product but also for the following:
Removing its shortcomings during the earliest and most profitable stage of development;
Increasing the quality and transparency of the development process;
Maximizing control over the quality of the product being developed at all stages of the SDLC;
Influencing the application of Agile, Scrum, SAFe, etc.;
Delivering a quality product not only to the Client but also to the Users.
The role of the STLC in the SDLC
As mentioned earlier, the Software Testing Life Cycle and the Software Development Life Cycle are
closely related to each other, but they simultaneously pursue different tasks of the same goal, namely:
collecting the requirements in the desired form and developing the declared functionality (as for the
SDLC).
analyzing requirements, assisting the client and the development team, and confirming the quality of
the implemented functionality (as for the STLC).
The overall goal is client satisfaction and achieving the highest possible score at the Verification and
Validation stages.
The role of the STLC in the SDLC can be represented with a double line graph:
Where the SDLC and the STLC lines move in parallel for most of the project but begin to converge rapidly
during the software development phase with deep synchronization during the SDLC Test phase. This
graph is relevant to many different types of projects, not just large or independent ones, and will remain
the same for the implementation of a task within a project and reverse for a project with a huge number of
iterations (but in this case, the lines will diverge and converge more often).
Let's see the different steps of STLC.
Software testing life cycle contains the following steps:
1. Requirement Analysis
2. Test Plan Creation
3. Environment setup
4. Test case Execution
5. Defect Logging
6. Test Cycle Closure
Requirement Analysis:
The first step of the manual testing procedure is requirement analysis. In this phase, the tester analyses
the requirement document of SDLC (Software Development Life Cycle) to examine requirements stated
by the client. After examining the requirements, the tester makes a test plan to check whether the
software is meeting the requirements or not.
For the planning of test plan Prepare the list of all List of all the necessary tests for
requirement specification, requirements and queries, and the testable requirements and
application architecture get resolved from Technical Test environment details
document and well-defined Manager/Lead, System
acceptance criteria should be Architecture, Business Analyst
available. and Client.
Make a list of all types of tests
(Performance, Functional and
security) to be performed.
Make a list of test environment
details, which should contain
all the necessary tools to
Test plan creation is the crucial phase of STLC where all the testing strategies are defined. Tester
determines the estimated effort and cost of the entire project. This phase takes place after the successful
completion of the Requirement Analysis Phase. Testing strategy and effort estimation documents
provided by this phase. Test case execution can be started after the successful completion of Test Plan
Creation.
Environment setup:
Setup of the test environment is an independent activity and can be started along with Test Case
Development. This is an essential part of the manual testing procedure as without environment testing
is not possible. Environment setup requires a group of essential software and hardware to create a test
environment. The testing team is not involved in setting up the testing environment, its senior
developers who create it.
Test strategy and Prepare the list of software and hardware by analyzing Execution report.
test plan requirement specification.
document. Defect report.
After the setup of the test environment, execute the
Test case smoke test cases to check the readiness of the test
document. environment.
Testing data.
Test case Execution takes place after the successful completion of test planning. In this phase, the
testing team starts case development and execution activity. The testing team writes down the detailed
test cases, and also prepares the test data if required. The prepared test cases are reviewed by peer
members of the team or Quality Assurance leader.
RTM (Requirement Traceability Matrix) is also prepared in this phase. Requirement Traceability Matrix
is an industry level format, used for tracking requirements. Each test case is mapped with the
requirement specification. Backward & forward traceability can be done via RTM.
Defect Logging:
Testers and developers evaluate the completion criteria of the software based on test coverage, quality,
time consumption, cost, and critical business objectives. This phase determines the characteristics and
drawbacks of the software. Test cases and bug reports are analyzed in depth to detect the type of defect
and its severity.
Defect logging analysis mainly works to find out defect distribution depending upon severity and types. If
any defect is detected, then the software is returned to the development team to fix the defect, then the
software is re-tested on all aspects of the testing.
Once the test cycle is fully completed then test closure report, and test metrics are prepared.
Test case It evaluates the completion criteria of the software based Closure report
execution on test coverage, quality, time consumption, cost, and Test metrics
report. critical business objectives.
Defect report Defect logging analysis finds out defect distribution by
categorizing in types and severity.
All documents and Evaluates the strategy of development, testing procedure, Test closure
reports related to possible defects to use these practices in the future if there report
software. is a software with the same specification
● Manual Testing
● Automation Testing
Defect Prevention is basically defined as a measure to ensure that defects being detected so far, should
not appear or occur again. For facilitating communication simply among members of team, planning and
devising defect prevention guidelines, etc., Coordinator is mainly responsible.
Coordinator is mainly responsible to lead defect prevention efforts, to facilitate meetings, to facilitate
communication between team members and management, etc. DP board generally has quarterly plan in
which sets some goals at organization level. To achieve these goals, various methods or activities are
generally used and carried out to achieve and complete these goals
Methods of Defect Prevention:
For defect prevention, there are different methods that are generally used over a long period of time.
These methods or activities are given below:
BEST OF LUCK
_______________________________________________________________________________________________
QUESTION BANK
UNIT I
PART A