Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
625 views

Software Engineering Notes Unit-4

The document provides information about different types of software testing including manual testing, automation testing, system testing, unit testing, integration testing, regression testing, and functional testing. It describes the purpose and techniques used in each type of testing such as black box testing, white box testing, state transition testing, data flow testing, control flow testing, and boundary value analysis.

Uploaded by

Tanya Panwar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
625 views

Software Engineering Notes Unit-4

The document provides information about different types of software testing including manual testing, automation testing, system testing, unit testing, integration testing, regression testing, and functional testing. It describes the purpose and techniques used in each type of testing such as black box testing, white box testing, state transition testing, data flow testing, control flow testing, and boundary value analysis.

Uploaded by

Tanya Panwar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 26

next → UNIT=4

Software Testing
Software testing is widely used technology because it is
compulsory to test each and every software before
deployment.

Our Software testing tutorial includes all topics of Software


testing such as Methods such as BlackBox Testing, WhiteBox
Testing, VisualBox Testing and GrayBox Testing. Levels such as
Unit Testing, Integration Testing, Regression Testing,
Functional Testing. System Testing, Acceptance Testing, Alpha
Testing, Beta Testing, Non-Functional testing, Security Testing,
Portability Testing.

Software Testing Introduction


Software Development Life Cycle (SDLC)
SDLC is a process that creates a structure of development of
software. There are different phases within SDLC, and each
phase has its own different activity. It makes development team
able to design, create and deliver a high-quality product.

Requirements are translated into design, design into development


and development into testing, after testing it is given to the
client.

Different phases of the software development


cycle
o Requirement Phase
o Design Phase
o Build /Development Phase
o Testing Phase
o Deployment/ Deliver Phase
o Maintenance

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.

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

Black box testing


Black box testing is a technique of software testing which
examines the functionality of software without peering into its
internal structure or coding. The primary source of black box
testing is a specification of requirements that is stated by the
customer.

In this method, tester selects a function and gives input value to


examine its functionality, and checks whether the function is
giving expected output or not. If the function produces correct
output, then it is passed in testing, otherwise failed..
example:

← prev

Boundary Value Analysis.

N State Transition Technique


Let see in the diagram:

State transition table

STATE LOGIN VALIDATION REDIRECTED


S1 First Attempt Invalid S2
S2 Second Attempt Invalid S3
S3 Third Attempt Invalid S5
S4 Home Page
S5 Error Page
Let's see state transition table if third attempt is valid:

STATE LOGIN VALIDATION REDIRECTED


S1 First Attempt Invalid S2
S2 Second Attempt Invalid S3
S3 Third Attempt Valid S4
S4 Home Page
S5 Error Page

Cause and Effect Graph in Black box


Testing
AND - E1 is an effect and C1 and C2 are the causes. If both C1
and C2 are true, then effect E1 will be true.

OR - If any cause from C1 and C2 is true, then effect E1 will be


true.

NOT - If cause C1 is false, then effect E1 will be true.


Mutually Exclusive - When only one cause is true.

Let's try to understand this technique with some examples:

Where AND, OR, NOT are the logical gates.


White Box Testing
The box testing approach of software testing consists of black
box testing and white box testing. We are discussing here
white box testing which also known as glass box is testing,
structural testing, clear box testing, open box testing
and transparent box testing

Test cases for white box testing are derived from the design
phase of the software development lifecycle. Data flow testing,
control flow testing, path testing, branch testing, statement
and decision coverage all these techniques used by white box
testing as a guideline to create an error-free software.

Techniques Used in White Box Testing


1 Data Flow Testing

2 Control Flow Testing

3 Branch Testing

4 Statement Testing

5 Decision Testing
TYPE OF TESTING
next →← prev

1 . Manual Testing
Manual testing is a software testing process in which test cases
are executed manually without using any automated tool.

Types of Manual Testing:


1. Black Box Testing
2. White Box Testing
3. Unit Testing
4. System Testing
5. Integration Testing
6. Acceptance Testing

Automation Testing
When the testing case suites are performed by using
automated testing tools is known as Automation Testing

1. decision to automate test


2. test tool selection
3. scope introduction
4. test planning & development
5. test case execution
6. review and assessment
ev System Testing
System Testing includes testing of a fully integrated software system. Generally,
a computer system is made with the integration of software (any software is
only a single element of a computer system).

Hierarchy of Testing Levels


1.Acceptance testing
2.System testing
3.Integration testing
4.Unit testing
5.White box testing
6.Black box testing
next →← prev

Smoke Testing
Smoke Testing comes into the picture at the time of receiving
build software from the development team. The purpose of
smoke testing is to determine whether the build software is
testable or not.

Real Time Example:Suppose, we are using an


eCommerce site, specific search, add an item into the cart, add
an item into the favorite, payment options, etc.

Steps of the workflow are given below:

o Click on item
o Description page should be open.
o Click on Add to Cart
o The cart should be open
o Click on Buy Now
o Payment options should be displayed. Choose one of
them.
o Order placed

next →← prev

Sanity Testing
Sanity testing performed at the time of receiving software build
(with minor changes in code) from the development team .

Real-time Example:

Unit Testing
Unit testing involves the testing of each unit or individual
component of the software application. It is the first level of
software testing. The aim behind unit testing is to validate unit
component with its performance.

A unit is a single testable part of a software system and tested


during the development phase of the application software .

1. Acceptance testing
2. System testing
3. Integration testing
4. Unit testing

Unit Testing Techniques:


Unit testing uses all white box testing techniques as it uses the
code of software application:

o Data flow Testing


o Control Flow Testing
o Branch Coverage Testing
o Statement Coverage Testing
o Decision Coverage Testing

Unit Testing Tools:


NUnit: NUnit is a unit testing framework used mainly
for.Net languages. It allows scripting of test cases
manually and supports data-driven test cases.

JUnit: JUnit is a unit testing framework used mainly for


java languages. JUnit provides assertions for the
identification of methods.

PHPUnit: PHPUnit unit testing tool used for PHP


language.

Integration testing
Integration testing is the second level of the software testing
process comes after unit testing. In this testing, units or
individual components of the software are tested in a group.

Unit testing uses modules for testing purpose, and these


modules are combined and tested in integration testing.
Integration Testing Techniques
Any testing technique (Blackbox, Whitebox, and Greybox) can
be used for Integration Testing; some are listed below:

Black Box Testing


o State Transition technique
o Decision Table Technique
o Boundary Value Analysis
o All-pairs Testing
o Cause and Effect Graph
o Equivalence Partitioning
o Error Guessing

White Box Testing


o Data flow testing
o Control Flow Testing
o Branch Coverage Testing
o Decision Coverage Testing

Grey Box Testing

Methodologies of Integration Testing


There are two basic methods for Integration Testing:

1. Big Bang
2. Incremental

Now, let's understand these approach.

Big Bang Method

Incremental Approach
Incremental Approach is carried out by further methods:

o Top Down
o Bottom Up
o Hybrid Testing
Top-Down Method
.

Bottom Up Method
Hybrid Testing Method
In this approach, both Top-Down and Bottom-Up approaches are combined for
testing.

Regression testing
Regression testing is a black box testing techniques.
Regression testing is making sure that the product works fine
with new functionality, bug fixes, or any change in the existing
feature.

Regression testing is a type of software testing. Regression


testing can be performed on a new build when there is a
significant change in the original functionality. Regression tests
are also known as the Verification Method. Test cases are often
automated
Example
.Regressing testing does not depend on any programming
language like Java, C++, C#, etc. This method is used to test
the product for modifications or any updates done.

techniques:

Following are the essential tools used for regression testing:

1. Selenium

2. Ranorex Studio

3. Quick Test Professional (QTP)

4. Rational Functional Tester (RTF)


types of Regression Testing?

Functional Testing
In simple terms, the testing is to compare the actual result
with the expected result. Testing is done to identify whether all
the function is working as expectations.

There are two types of testing:


Functional Testing:
It is a type of software testing which is used to verify the
functionality of the software application, whether the function
is working according to the requirement specification .

o Basic Usability: 
o Accessibility: 
o Mainline function: 
o Error Condition: 
Explain the types of functional testing.
The main objective of functional testing is to test the
functionality of the component.

Functional testing is divided into multiple parts.

Here are the following types of functional testing.


Alpha Testing Introduction
Alpha testing is conducted in the organization and tested by a
representative group of end-users at the developer's side and
sometimes by an independent team of testers.

Alpha testing is simulated or real operational testing at an in-


house site. It comes after the unit testing, integration testing,
etc. Alpha testing used after all the testing are executed.

It can be a white box, or Black-box testing depends on the


requirements - particular lab environment and simulation of the
actual environment required for this testing.
What is the alpha testing process?
Alpha testing follows the following process:

1. Requirement Review: Review the design of the


specification and functional requirement
2. Test Development: Test development is base on the
outcome of the requirement review. Develop the test cases
and test plan.
3. Test case design: Execute the test plan and test cases.
4. Logging Defects: Logging the identified and detected bug
found in the application.
5. Bug Fixation: When all the bugs are identified and logged,
then there is a need to fix the bug.
6. Retesting: When all the issues are solved, and fixed
retesting is done.

When to perform alpha testing?


next →← prev

Beta Testing
Beta Testing is a part of acceptance testing which is intended
to validate the product for usability, functionality, reliability,
and compatibility by the end-user. It adds value to the
software as user validates it by providing real input values.
.

Beta testing lifecycle


Beta testing lifecycle starts from Plan and ends on Launch of
the product as beta
software. Design, Build, Test, Review are also a part of the
lifecycle of beta testing.

o Plan- Includes planning of the software.


o Design- Includes designing of the software.
o Build- Includes development of the software.
o Test- Includes testing of the software.
o Review- Includes alpha testing of the software.
o Launch- Includes launching of beta software.
next →← prev

Non-Functional Testing
Non-functional testing is a type of software testing to test non-
functional parameters such as reliability, load test,
performance and accountability of the software.

Non-functional testing is also very important as functional


testing because it plays a crucial role in customer satisfaction.

For example, non-functional testing would be to test how many


people can work simultaneously on any software.

You might also like