0% found this document useful (0 votes)
37 views43 pages

UNIT-3 Set

This document provides an overview of software testing and related topics. It defines software testing as evaluating and verifying that software performs as intended. It discusses the software testing life cycle (STLC) which includes requirements analysis, test planning, test case development, test execution, and test closure. It also covers principles of software testing such as testing should start early and focus on defined goals, and the absence of errors fallacy. Finally, it discusses the role of testers in ensuring software quality through both automated and manual testing methods.

Uploaded by

0136akshaykumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views43 pages

UNIT-3 Set

This document provides an overview of software testing and related topics. It defines software testing as evaluating and verifying that software performs as intended. It discusses the software testing life cycle (STLC) which includes requirements analysis, test planning, test case development, test execution, and test closure. It also covers principles of software testing such as testing should start early and focus on defined goals, and the absence of errors fallacy. Finally, it discusses the role of testers in ensuring software quality through both automated and manual testing methods.

Uploaded by

0136akshaykumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

V.

Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Subject Name: Software Engineering and Testing


Subject Code: U20CST512

Prepared by:
Dr.M.GANESAN/ ASSOCIATE PROFESSOR /CSE
Ms.V.SWATHILAKSHMI / AP /CSE
R.DEEPA/ AP /CSE

Verified by: Approved by:

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.

4. What are the 3 types of software?

P age |1 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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.

6. What are the disadvantages of software testing?


Only limited coverage of application as the tester cannot target specific code segment. Test cases are
difficult to design as the tester doesn't have prior knowledge on specifications and coding. Some
possible inputs will only be tested.
7. What are the two main categories of software testing?
Though there are different types of software testing in practice but, the two major categories
are Functional and Non-functional types of testing along with manual, automated and system
programming testing types.
8. What is the psychology of testing explain?
Psychological testing, also called psychometrics, the systematic use of tests to quantify psychophysical
behavior, abilities, and problems and to make predictions about psychological performance.
9. What are different types of psychological tests?
Here are the major nine types of Psychological tests:
 Personality Tests.
 Achievement Tests.
 Attitude Tests.
 Aptitude Tests.
 Emotional Intelligence Tests.
 Intelligence Tests.
 Neuropsychological Tests.
 Projective Tests.
10. What are the four stages of testing?
Generally, four main stages of testing can be performed on any build. They are the; Unit Tests,
Integration Tests, System Tests, and Acceptance Tests. To further simplify the process, the stages can be
ordered, in twos, into secondary stages.
11. What are different levels of testing?
4 Levels of Software Testing: Performers, Steps, and Objectives
 Unit Testing.

P age |2 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

P age |3 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

19. What are the types of defects in software testing?


Following are some of the basic types of defects in the software development:

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

P age |4 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

22. What are defect prevention strategies?


Defect prevention is a framework and ongoing process of collecting the defect data, doing root cause
analysis, determining and implementing the corrective actions and sharing the lessons learned to avoid
future defects.
23. What is the role of tester in software testing?
 Software Testers are responsible for the quality of software development and deployment.
 They are involved in performing automated and manual tests to ensure the software created by
developers is fit for purpose. Some of the duties include analysis of software, and systems, mitigate
risk and prevent software issues.
24. What is the role of manual tester?
 You will carry out manual tests to ensure the software created meets the requirements.
 This involves the analysis of software to prevent issues and fixing bugs before the product is dispatched
to users. As working with code is part of the role, software testers are expected to be familiar with
various coding languages.
25. Name the STLC.
 Requirement Analysis
 Test Planning
 Test Case Development
 Test Environment Setup
 Test Execution
 Test Closure
26. State the Principles of Software Testing.
Testing activities should start as early as possible. Testing activities should start as early as possible in
the software life cycle and focus on defined goals. This contributes to finding defects early.
27. What is the role of a 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.
28. Write a note on the psychology of Testing.
If a person is having problems at work or school, or in personal relationships, tests can help a
psychologist understand whether he or she might have issues with anger management or interpersonal
skills, or certain personality traits that contribute to the problem.

P age |5 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

29. What is defect life cycle?


 Bug life cycle also known as defect life cycle is a process in which defect goes through different
stages in its entire life.
 This lifecycle starts as soon as a bug is reported by the tester and ends when a tester ensures that the
issue is fixed and won't occur again.
30.What is SDLC and STLC?
 Software Development Life Cycle (SDLC) is a sequence of different activities performed during the
software development process.
 Software Testing Life Cycle (STLC) is a sequence of different activities performed during the
software testing process.
31.What is testing types of testing?
 It is covered under the black box testing technique. In this, we just focus on the required input and
output without focusing on internal working.
 In this, we have security testing, recovery testing, stress testing, and performance testing. Example:
This includes functional as well as nonfunctional testing
32. What is Functional Testing?
FUNCTIONAL TESTING is a type of software testing that validates the software system against the
functional requirements/specifications.
The purpose of Functional tests is to test each function of the software application, by providing
appropriate input, verifying the output against the Functional requirements.
33.What is Non-Functional Testing?
 NON-FUNCTIONAL TESTING is defined as a type of Software testing to check non-functional aspects
(performance, usability, reliability, etc) 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.
 An excellent example of non-functional test would be to check how many people can simultaneously
login into a software.
34.What is manual testing?
 Manual Testing is a type of software testing in which testcases are executed manually by a tester
without using any automated tools. The purpose of Manual Testing is to identify
the bugs, issues, and defects in the software application.
 Manual software testing is the most primitive technique of all testing types, and it helps to find
critical bugs in the software application.

P age |6 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

35.What is Tool testing?


 Software testing tools are often used to assure firmness, thoroughness, and performance in testing
software products. Unit testing and subsequent integration testing can be performed by software
testing tools.
 The quality of the software is evaluated by software testers with the help of various testing tools.
36.Why is psychology of testing important?
“If a person is having problems at work or school, or in personal relationships, tests can help a
psychologist understand whether he or she might have issues with anger management or interpersonal
skills, or certain personality traits that contribute to the problem.
38. difference between Functional Testing and Non-functional Testing.
Functional Testing Non-functional Testing

It verifies the operations and actions of an


application. It verifies the behavior of an application.

It is based on requirements of customer. It is based on expectations of customer.

It helps to enhance the behavior of the It helps to improve the performance of the
application. application.

Functional testing is easy to execute It is hard to execute non-functional testing


manually. manually.

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

39.What are the benefits of Software Testing?


Here are the benefits of using software testing:

P age |7 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

P age |8 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

P age |9 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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:

The Psychology of Testing


 Building the software requires a different mindset from testing the software.
 Building is aimed to solve problems with testing to look for defects (find problems) in software.

P a g e | 10 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

 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

P a g e | 11 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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. (Dec 2021)
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:


1. Testing shows the presence of defects
2. Exhaustive testing is not possible
3. Early testing
4. Defect clustering
5. Pesticide paradox
6. Testing is context-dependent
7. Absence of errors fallacy

P a g e | 12 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

Testing shows the presence of defects:


 The goal of software testing is to make the software fail. Software testing reduces the presence of
defects. Software testing talks about the presence of defects and doesn’t talk about the absence of
defects.
 Software testing can ensure that defects are present, but it cannot prove that software is defect-free.
Even multiple testing can never ensure that software is 100% bug-free.
 Testing can reduce the number of defects but not removes all defects.
Exhaustive testing is not possible:
 It is the process of testing the functionality of the software in all possible inputs (valid or invalid) and
pre-conditions is known as exhaustive testing.
 Exhaustive testing is impossible means the software can never test at every test case.
 It can test only some test cases and assume that the software is correct, and it will produce the correct
output in every test case. If the software will test every test case, then it will take more cost, effort, etc.,
and which is impractical.
Early Testing:
 To find the defect in the software, early test activity shall be started. The defect detected in the early
phases of SDLC will be very less expensive.

P a g e | 13 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

P a g e | 14 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

The different types of Software Testing


The categorization of software testing is a part of diverse testing activities, such as test strategy, test
deliverables, a defined test objective, etc. And software testing is the execution of the software to find
defects.
The purpose of having a testing type is to confirm the AUT (Application Under Test).
To start testing, we should have a requirement, application-ready, necessary resources available. To
maintain accountability, we should assign a respective module to different test engineers.
The software testing mainly divided into two parts, which are as follows:

● Manual Testing

● Automation Testing

P a g e | 15 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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.

P a g e | 16 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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.

P a g e | 17 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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.

4.Write a short on Psychology of testing


What is the Psychology of testing?
Psychology of testing is a type of testing which fully depends on the mindset of developers and tester.
When we are building the software, we working positively towards the software never think about
negative things.
The mindset should be different while testing and reviewing developing software. With the correct
mindset, the programmer can test their own code. At a certain point independence tester often makes
the tester more effective to finding defects.
Levels of Independence Tester in Psychology of testing:
 Tests designed by the person who wrote the software under test
 Tests designed by another person
 Tests designed by a person from a different organizational group or test specialists
 Tests designed by a person from a different organization or company

P a g e | 18 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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.

1. Mindset of Developers and Testers:

 Software development life cycle is a combination of various activities, which are performed by different

individuals using their expertise and knowledge.

 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

different mindset are required.

 Moreover, the introduction of new development and testing techniques and methodologies has further

made this a necessary requirement.

2. Communication in a Constructive Manner:

 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

communication in constructive manner is extremely high.

P a g e | 19 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

 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

bugs and defects.

 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

the developed product.

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

P a g e | 20 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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 Non-Functional Testing

It verifies the operations and actions of


an application. It verifies the behavior of an application

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.

It is carried out manually. It is more feasible to test using automated tools.


Example: Black box testing method. Example: LoadRunner.

It tests as per the customer It tests as per customer expectations.


requirements.

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.

It is testing the functionality of the It is testing the performance of the functionality of


software. the software.

P a g e | 21 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

Functional Testing Non-Functional Testing

Functional testing has the following Non functional testing includes:


types: • Performance testing
• Unit testing • Load Testing
• Integration testing • Stress testing
• System Testing • Volume testing
• Acceptance Testing • Security testing
• Installation testing
• Recovery testing

6. What is Defect or bugs or faults in software testing?


Definition: A defect is an error or a bug, in the application which is created. A programmer while
designing and building the software can make mistakes or error. These mistakes or errors mean that
there are flaws in the software. These are called defects.
 When actual result deviates from the expected result while testing a software application or product
then it results into a defect. Hence, any deviation from the specification mentioned in the product
functional specification document is a defect. In different organizations it’s called differently like bug,
issue, incidents, or problem.
 When the result of the software application or product does not meet with the end user expectations or
the software requirements then it results into a Bug or Defect. These defects or bugs occur because of
an error in logic or in coding which results into the failure or unpredictable or unanticipated results.
 A Defect in Software Testing is a variation or deviation of the software application from end user’s
requirements or original business requirements. A software defect is an error in coding which causes
incorrect or unexpected results from a software program which does not meet actual requirements.
Testers might come across such defects while executing the test cases.
 These two terms have very thin line of difference, In the Industry both are faults that need to be fixed
and so interchangeably used by some of the Testing teams.
 When testers execute the test cases, they might come across such test results which are contradictory
to expected results. This variation in test results is referred to as a Software Defect. These defects or
variations are referred by different names in different organizations like issues, problems, bugs or
incidents.

P a g e | 22 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

Additional Information about Defects / Bugs:


While testing a software application or product if large number of defects are found then it’s called
Buggy.
When a tester finds a bug or defect it’s required to convey the same to the developers. Thus they report
bugs with the detail steps and are called as Bug Reports, issue report, problem report, etc.
This Defect report or Bug report consists of the following information:
 Defect ID – Every bug or defect has it’s unique identification number
 Defect Description – This includes the abstract of the issue.
 Product Version – This includes the product version of the application in which the defect is found.
 Detail Steps – This includes the detailed steps of the issue with the screenshots attached so that
developers can recreate it.
 Date Raised – This includes the Date when the bug is reported
 Reported By – This includes the details of the tester who reported the bug like Name and ID
 Status – This field includes the Status of the defect like New, Assigned, Open, Retest, Verification,
Closed, Failed, Deferred, etc.
 Fixed by – This field includes the details of the developer who fixed it like Name and ID
 Date Closed – This includes the Date when the bug is closed
 Severity – Based on the severity (Critical, Major or Minor) it tells us about impact of the defect or bug in
the software application
 Priority – Based on the Priority set (High/Medium/Low) the order of fixing the defect can be made.
(Know more about Severity and Priority)
Difference between Defect, Error, Bug, Failure and Fault!
Testing is the process of identifying defects, where a defect is any variance between actual and expected
results. “A mistake in coding is called Error, error found by tester is called Defect, defect accepted by
development team then it is called Bug, build does not meet the requirements then it Is Failure.”
DEFECT:
It can be simply defined as a variance between expected and actual. The defect is an error found AFTER
the application goes into production. It commonly refers to several troubles with the software products,
with their external behavior or with its internal features. In other words, a Defect is a difference
between expected and actual results in the context of testing. It is the deviation of the customer
requirement.

P a g e | 23 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

Defect can be categorized into the following:


Wrong:
When requirements are implemented not in the right way. This defect is a variance from the given
specification. It is Wrong!
Missing:
A requirement of the customer that was not fulfilled. This is a variance from the specifications, an
indication that a specification was not implemented, or a requirement of the customer was not noted
correctly.
Extra:
A requirement incorporated into the product that was not given by the end customer. This is always a
variance from the specification, but maybe an attribute desired by the user of the product. However, it
is considered a defect because it’s a variance from the existing requirements.
ERROR:
An error is a mistake, misconception, or misunderstanding on the part of a software developer. In the
category of the developer, we include software engineers, programmers, analysts, and testers. For
example, a developer may misunderstand a de-sign notation, or a programmer might type a variable
name incorrectly – leads to an Error. It is the one that is generated because of the wrong login, loop or
syntax. The error normally arises in software; it leads to a change in the functionality of the program.
BUG:
A bug is the result of a coding error. An Error found in the development environment before the
product is shipped to the customer. A programming error that causes a program to work poorly,
produce incorrect results or crash. An error in software or hardware that causes a program to
malfunction. A bug is the terminology of Tester.
FAILURE:
A failure is the inability of a software system or component to perform its required functions within
specified performance requirements. When a defect reaches the end customer it is called a Failure.
During development, Failures are usually observed by testers.
FAULT:
An incorrect step, process or data definition in a computer program that causes the program to perform
in an unintended or unanticipated manner. A fault is introduced into the software as the result of an
error. It is an anomaly in the software that may cause it to behave incorrectly, and not according to its
specification. It is the result of the error.
The software industry can still not agree on the definitions for all the above. In essence, if you use the
term to mean one specific thing, it may not be understood to be that thing by your audience.

P a g e | 24 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

7. Write short notes on Role of a tester. (Feb 2023)


 Roles and Responsibilities of a Tester are as follows. In the test planning and preparation phases of the
testing, testers should review and contribute to test plans, as well as analyzing, reviewing and
assessing requirements and design specifications.
 They may be involved in or even be the primary people identifying test conditions and creating test
designs, test cases, test procedure specifications and test data, and may automate or help to automate
the tests.
 They often set up the test environments or assist system administration and network management staff
in doing so.
 As test execution begins, the number of testers often increases, starting with the work required to
implement tests in the test environment.
 Testers execute and log the tests, evaluate the results and document problems found.
 They monitor the testing and the test environment, often using tools for this task, and often gather
performance metrics.
 Throughout the software testing life cycle, they review each other’s work, including test
specifications, defect reports and test results.
A software tester has different sets of roles and responsibilities. He should have in depth knowledge
about software testing. He should have a good understanding about the system which means technical
(GUI or non-GUI human interactions) as well as functional product aspects. In order to create test cases
it is important that the software tester is aware of various testing techniques and which approach is
best for a particular system. He should know what are various phases of software testing and how
testing should be carried out in each phase. The responsibilities of the software tester include:
1. Creation of test designs, test processes, test cases and test data.
2. Carry out testing as per the defined procedures.
3. Participate in walkthroughs of testing procedures.
4. Prepare all reports related to software testing carried out.
5. Ensure that all tested related work is carried out as per the defined standards and procedures.
Overview Of Software Engineering Team
How a software application shapes up during the development process entirely depends on the how the
software engineering team organizes work and implements various methodologies. For an application
to develop properly, it is important that all processes incorporated during the software development
are stable and sustainable.
Many times developers come under pressure as the delivery date approaches closer this often affects
the quality of the software.

P a g e | 25 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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.

P a g e | 26 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

P a g e | 27 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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:

The Psychology of Testing


 Building the software requires a different mindset from testing the software.
 Building is aimed to solve problems with testing to look for defects (find problems) in software.
 Programmers and Testers are two separate roles, although programmers do test code.

P a g e | 28 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

 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

P a g e | 29 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

P a g e | 30 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

P a g e | 31 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

P a g e | 32 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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.

P a g e | 33 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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

P a g e | 34 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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.

Entry Criteria Activities Deliverable

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

P a g e | 35 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

execute test cases.

Test Plan Creation:

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.

Entry Criteria Activities Deliverable

Requirement Define Objective as well as the Test strategy document.


scope of the software.
Document Testing Effort estimation documents
List down methods involved in
testing. are the deliverables of this phase.
Overview of the testing process.
Settlement of testing environment.
Preparation of the test schedules
and control procedures.
Determination of roles and
responsibilities.
List down testing deliverables,
define risk if any.

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.

P a g e | 36 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

Entry Criteria Activities Deliverable

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:

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.

Entry Criteria Activities Deliverable

Requirement Creation of test cases. Execution of Test execution result.


Document test cases. Mapping of test cases
List of functions with the detailed
according to requirements.
explanation of defects.

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

P a g e | 37 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

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.

Entry Criteria Activities Deliverable

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.

Test Cycle Closure:


The test cycle closure report includes all the documentation related to software design, development,
testing results, and defect reports.
This phase evaluates the strategy of development, testing procedure, and possible defects in order to use
these practices in the future if there is software with the same specification.

Entry Criteria Activities Deliverable

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

P a g e | 38 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

Types of Software Testing


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.

The different types of Software Testing


The categorization of software testing is a part of diverse testing activities, such as test strategy, test
deliverables, a defined test objective, etc. And software testing is the execution of the software to find
defects.
The purpose of having a testing type is to confirm the AUT (Application Under Test).
To start testing, we should have a requirement, application-ready, necessary resources available. To
maintain accountability, we should assign a respective module to different test engineers.
The software testing mainly divided into two parts, which are as follows:

P a g e | 39 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

● Manual Testing

● Automation Testing

4.EXPLAIN IN DETAIL ABOUT DEFECT PREVENTION STRATEGIES. (Dec 2021)

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:

P a g e | 40 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

Software Requirement Analysis:


The main cause of defects in software products is due to error in software requirements and designs.
Software requirements and design both are important and should be analyzed in an efficient way with
more focus. Software requirement is basically considered an integral part of Software Development Life
Cycle (SDLC). These are the requirement that basically describe features and functionalities of target
product and conveys expectations or requirement of users from software product.
Therefore, it is very much needed to understand about software requirements more carefully, If
requirements are not understood well by tester and developers, then there might be chance of occurring
of issue or defect in further process. Therefore, it is essential to analyze and evaluate requirements in
more appropriate and proper manner.
1. Review and Inspection:
Review and inspection, both are essential and integral part of software development.
 They are considered as powerful tools that can be used to identify and remove defects if present
before there occurrence and impact on production.
 Review and inspection come in different levels or stages of defect prevention to meet different needs.
They are used in all software development and maintenance methods. There are two types of review
i.e. self-review and peer-review.
2. Defect Logging and Documentation:
After successful analysis and review, there should be records maintained about defects to simply
complete description of defect.
 This record can be further used to have better understanding of defects. After getting knowledge and
understanding of defect, then only one can take some effective and required measures and actions to
resolve defects so that defect cannot be carried further to next phase.
3. Root Cause Analysis:
 Root cause analysis is basically analysis of main cause of defect. It simply analysis what triggered
defect to occur.
 After analyzing main cause of defect, one can find best way to simply avoid occurrence of such types
of defects next time.
Some of the benefits of the defect prevention program are:
 The staff gets motivated and are more aware
 Customer’s satisfaction
 Increased reliability, manageability and predictability
 Enhanced continuous process improvement

P a g e | 41 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

4. Team roles and responsibilities


Three critical groups are involved in the process of defect prevention:
Manager’s Role:
 For the success of any defect prevention program management must be strongly supportive.
 The support can be in the form of resources, training, and tools which are required to implement the
plan successfully.
 Management should define the appropriate policy and should make some cultural changes if
necessary.
 Managers are supposed to promote discussions, distribution of common defect list and changes in
the process.
5. Tester’s Role:
 Testers maintain the defect database which includes the collection of defect data.
 Defect data must be updated at regular intervals and defect info should be kept current at all time.
 To plan the implementation of change
6. Client’s Role:
 The client plays a comparatively small or limited role but their commitment towards quality is
critical.
Conclusion:
Defect Prevention plays a major and crucial role in software development process. It helps manage the
quality of the software product in a “sooner and cheaper” manner with the help of the techniques listed
above.
It ensures that the problems get resolved early on without even making it to the application. It considers
root cause finding as its primary means of identifying and eventually removing issues.
To maintain the quality of software is the responsibility of the core management and entire team
including project lead, client, and every team member.

BEST OF LUCK

_______________________________________________________________________________________________

P a g e | 42 Software Engineering and Testing DEPARTMENT OF CSE


V.Swathilakshmi AP/CSE SRI MANAKULA VINAYAGAR ENGINEERING COLLEGE

QUESTION BANK
UNIT I
PART A

1. Define Software Testing.


2. State the Principles of Software Testing.
3. What is the role of a tester?
4. Mention the role of defect repository. (Dec 2021)
5. What is a defect? Give examples. (Dec 2021)
6. What do you mean by debugging? (Feb 2023)
7. What is the basic objective of software testing? (Feb 2023)
PART B

1. Write a note on Software Testing.


2. Describe the Psychology of Testing.
3. Explain about Principles of Software Testing.
4. What are the Defects and Defect Prevention Strategies in Software Testing.
5. Write a short note on the principles of software testing. (Dec 2021)
6. Write short notes on Role of a tester.(Feb 2023)
PART C

1. Elaborate in brief detail about Software Testing Life Cycle.


2. Describe in detail about Principles and Psychology of testing.
3. Describe in detail about defect prevention strategies. (Dec 2021)

P a g e | 43 Software Engineering and Testing DEPARTMENT OF CSE

You might also like