Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
47 views20 pages

Software Testing

The document discusses different types of software testing including manual testing, automation testing, black-box testing, white-box testing, and grey-box testing. It provides details on when testing should start and stop in the software development life cycle and who is typically involved in testing.

Uploaded by

Samiha Chowdhury
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)
47 views20 pages

Software Testing

The document discusses different types of software testing including manual testing, automation testing, black-box testing, white-box testing, and grey-box testing. It provides details on when testing should start and stop in the software development life cycle and who is typically involved in testing.

Uploaded by

Samiha Chowdhury
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/ 20

Software Testing

(Basics)
CSE412 – Software Engineering
Instructor
Dr. Shamim H Ripon
CSE, EWU
Testing
• Testing is the process of evaluating a system or its component(s) with
the intent to find whether it satisfies the specified requirements or
not.
• Testing is executing a system in order to identify any gaps, errors, or
missing requirements in contrary to the actual requirements.
• According to ANSI/IEEE 1059 standard, Testing can be defined as - A
process of analyzing a software item to detect the differences
between existing and required conditions (that is defects/errors/bugs)
and to evaluate the features of the software item

CSE412, Dr. Shamim H Ripon 2


Who does Testing?
• Depends on the process and the associated stakeholders of the project
• In the IT industry, large companies have a team with responsibilities to evaluate the
developed software in context of the given requirements.
• Developers also conduct testing which is called Unit Testing
• Following professionals are involved in testing a system within their respective
capacities:
• Software Tester
• Software Developer
• Project Lead/Manager
• End User

CSE412, Dr. Shamim H Ripon 3


When to Start Testing?
• An early start to testing reduces the cost and time to rework and produce error-free
software that is delivered to the client.
• In Software Development Life Cycle (SDLC), testing can be started from the
Requirements Gathering phase and continued till the deployment of the software.
• Testing is done in different forms at every phase of SDLC:
• During the requirement gathering phase, the analysis and verification of requirements are
also considered as testing.
• Reviewing the design in the design phase with the intent to improve the design is also
considered as testing.
• Testing performed by a developer on completion of the code is also categorized as testing.

CSE412, Dr. Shamim H Ripon 4


When to Stop Testing?
• It is difficult to determine when to stop testing, as testing is a never-
ending process and no one can claim that a software is 100% tested.
• The following aspects are to be considered for stopping the testing
process:
• Testing Deadlines
• Completion of test case execution
• Completion of functional and code coverage to a certain point
• Bug rate falls below a certain level and no high-priority bugs are identified
• Management decision

CSE412, Dr. Shamim H Ripon 5


Types of Testing

CSE412, Dr. Shamim H Ripon 6


Manual Testing
• Manual testing includes testing a software manually, i.e., without using any
automated tool or any script.
• the tester takes over the role of an end-user and tests the software to identify any
unexpected behavior or bug.
• There are different stages for manual testing such as unit testing, integration testing,
system testing, and user acceptance testing.
• Testers use test plans, test cases, or test scenarios to test a software to ensure the
completeness of testing.
• Manual testing also includes exploratory testing, as testers explore the software to
identify errors in it.

CSE412, Dr. Shamim H Ripon 7


Automation Testing
• Automation testing, which is also known as Test
Automation, is when the tester writes scripts and
uses another software to test the product.
• This process involves automation of a manual
process. Automation Testing is used to re-run the
test scenarios that were performed manually,
quickly, and repeatedly.

CSE412, Dr. Shamim H Ripon 8


Software Testing - Methods

CSE412, Dr. Shamim H Ripon 9


Black-Box Testing
• The technique of testing without having any knowledge of the interior workings of
the application is called black- box testing.
• The tester is oblivious to the system architecture and does not have access to the
source code.
• While performing a black-box test, a tester will interact with the system's user
interface by providing inputs and examining outputs without knowing how and where
the inputs are worked upon.

CSE412, Dr. Shamim H Ripon 10


Black-Box Testing
Advantages Disadvantages
• Well suited and efficient for large code • Limited coverage, since only a selected
segments. number of test scenarios is actually
performed.
• Code access is not required.
• Clearly separates user's perspective from • Inefficient testing, due to the fact that the
tester only has limited knowledge about an
the developer's perspective through visibly
application.
defined roles.
• Large numbers of moderately skilled testers • Blind coverage, since the tester cannot
target specific code segments or error-prone
can test the application with no knowledge
areas.
of implementation, programming language,
or operating systems. • The test cases are difficult to design.

CSE412, Dr. Shamim H Ripon 11


White-Box Testing
• White-box testing is the detailed investigation of internal logic and structure of the
code. White-box testing is also called glass testing or open-box testing.
• To perform white-box testing on an application, a tester needs to know the internal
workings of the code.
• The tester needs to have a look inside the source code and find out which unit/chunk
of the code is behaving inappropriately.

CSE412, Dr. Shamim H Ripon 12


White-Box Testing
Advantages Disadvantages
• As the tester has knowledge of the source • Because a skilled tester is needed to
code, it becomes very easy to find out which perform white-box testing, the costs are
type of data can help in testing the increased.
application effectively.
• Sometimes it is impossible to look into every
• It helps in optimizing the code. nook and corner to find out hidden errors
that may create problems, as many paths
• Extra lines of code can be removed which
will go untested.
can bring in hidden defects.
• Due to the tester's knowledge about the • It is difficult to maintain white-box testing,
as it requires specialized tools like code
code, maximum coverage is attained during
analyzers and debugging tools.
test scenario writing.

CSE412, Dr. Shamim H Ripon 13


Grey-Box Testing
• Grey-box testing is a technique to test the application with having a limited
knowledge of the internal workings of an application.
• In software testing, the phrase the more you know, the better carries a lot of weight
while testing an application.
• Mastering the domain of a system always gives the tester an edge over someone with
limited domain knowledge.
• Unlike black-box testing, where the tester only tests the application's user interface;
in grey-box testing, the tester has access to design documents and the database.
Having this knowledge, a tester can prepare better test data and test scenarios while
making a test plan.

CSE412, Dr. Shamim H Ripon 14


Grey-Box Testing
Advantages Disadvantages
• Offers combined benefits of black-box and • Since the access to source code is not
white-box testing wherever possible. available, the ability to go over the code
and test coverage is limited.
• Grey box testers don't rely on the source
code; instead, they rely on interface • The tests can be redundant if the software
definition and functional specifications. designer has already run a test case.
• Based on the limited information available, • Testing every possible input stream is
a grey-box tester can design excellent test unrealistic because it would take an
scenarios especially around communication unreasonable amount of time; therefore,
protocols and data type handling. many program paths will go untested.
• The test is done from the point of view of
the user and not the designer.

CSE412, Dr. Shamim H Ripon 15


Unit Testing
• This type of testing is performed by developers before the setup is handed over to
the testing team to formally execute the test cases.
• Unit testing is performed by the respective developers on the individual units of
source code assigned areas.
• The developers use test data that is different from the test data of the quality
assurance team.
• The goal of unit testing is to isolate each part of the program and show that
individual parts are correct in terms of requirements and functionality.

CSE412, Dr. Shamim H Ripon 16


Unit Testing
Limitations of Unit Testing
• Testing cannot catch each and every bug in an application. It is impossible to
evaluate every execution path in every software application. The same is the case
with unit testing.
• There is a limit to the number of scenarios and test data that a developer can use to
verify a source code. After having exhausted all the options, there is no choice but to
stop unit testing and merge the code segment with other units.

CSE412, Dr. Shamim H Ripon 17


Integration Testing
• Integration testing is defined as the testing
of combined parts of an application to
determine if they function correctly.
• Integration testing can be done in two
ways: Bottom-up integration testing and
Top-down integration testing.

CSE412, Dr. Shamim H Ripon 18


System Testing
• System testing tests the system as a whole. Once all the components are integrated,
the application as a whole is tested rigorously to see that it meets the specified
Quality Standards. This type of testing is performed by a specialized testing team.
• System testing is important because of the following reasons:
• System testing is the first step in the Software Development Life Cycle, where the
application is tested as a whole.
• The application is tested thoroughly to verify that it meets the functional and technical
specifications.
• The application is tested in an environment that is very close to the production
environment where the application will be deployed.
• System testing enables us to test, verify, and validate both the business requirements as
well as the application architecture.

CSE412, Dr. Shamim H Ripon 19


CSE412, Dr. Shamim H Ripon 20

You might also like