0% found this document useful (0 votes)
35 views21 pages

Chapter 2-2

The document discusses different types of software testing including functional testing, non-functional testing, white-box testing, structural coverage, confirmation testing, regression testing, and maintenance testing. It provides details on each test type and how they can be applied at different test levels like component, integration, and acceptance testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views21 pages

Chapter 2-2

The document discusses different types of software testing including functional testing, non-functional testing, white-box testing, structural coverage, confirmation testing, regression testing, and maintenance testing. It provides details on each test type and how they can be applied at different test levels like component, integration, and acceptance testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

Software QC & Testing

Presented By.
Dr.Rehab Mahmoud

Faculty of computers and Artificial Intelligence, Fayoum University, IS&CS department, Fourth Level
2024
Chapter2
1. Software development models
• 1.1 Sequential model
• 1.2 Iterative-incremental model
• 1.3 Testing within a life-cycle model

2. Test Levels


2.1 Component testing
2.2 Integration testing
Testing throughout the software life cycle
• 2.3 System testing
• 2.4 Acceptance testing

3. Test Types
• 3.1 Testing of function
• 3.2 Testing of non-functional software
characteristics
• 3.3 Testing of software structure
• 3.4 Testing related to changes

4. Maintenance testing
1. Software development models

2. Test Levels

3. Test Types

4. Maintenance testing
Test Types

• A test type is a group of test activities


aimed at testing specific characteristics
of a software system, or a part of a
system, based on specific test objectives
Functional Testing
• Functional testing of a system involves tests that
evaluate functions that the system should perform.

• Functional requirements may be described in work


products such as
• Business requirements specifications
• Epics
• User stories
• Use cases
• Functional specifications
• They may be undocumented.
Functional Testing

• The functions are “what” the system should


do.

• Functional tests should be performed at all


test levels, though the focus is different at
each level
Functional Testing

Input
Black Box Output

Functional testing considers the behavior of the software, so black-box


techniques may be used to derive test conditions and test cases for the
functionality of the component or system
Functional Coverage

• Functional coverage is the extent to which some type of


functional element has been exercised by tests, and is
expressed as a percentage of the type(s) of element
being covered.

• For example, using traceability between tests and


functional requirements, the percentage of these
requirements which are addressed by testing can be
calculated, potentially identifying coverage gaps
Non-functional Testing
• Non-functional testing of a system evaluates
characteristics of systems and software such
as usability, performance, efficiency or
security.

• Non-functional testing is the testing of “how


well” the system behaves

• Non-functional testing can be done at all test


levels
Non-Functional Coverage

• Nonfunctional coverage is the extent to which some type


of non-functional element has been exercised by tests, and
is expressed as a percentage of the type(s) of element
being covered.

• For example, using traceability between tests and


supported devices for a mobile application, the percentage
of devices which are addressed by compatibility testing
can be calculated, potentially identifying coverage gaps
White-box Testing

• White-box testing derives tests based on the


system’s internal structure or
implementation.
Input
White Box Output

• Internal structure may include code,


architecture, work flows, and/or data flows
within the system
Structural Coverage

• Structural coverage is the extent to which some type of


structural element has been exercised by tests, and is
expressed as a percentage of the type of element being
covered

• At the component testing level, code coverage is based on


the percentage of component code that has been tested

• At the component integration testing level, white-box


testing may be based on the architecture of the system,
such as interface between components, and structural
coverage may be measured in terms of the percentage of
interfaces exercised by tests
When changes are made to a system,, testing should be done to confirm that the changes
have corrected the defect or implemented the functionality correctly, and have not caused
any unforeseen adverse consequences
Confirmation Testing

• After a defect is fixed, the software should be tested

• At the very least, the steps to reproduce the failure(s) caused by the defect must be re-
executed on the new software version.

• The purpose of a confirmation test is to confirm whether the original defect has been
successfully fixed
Regression Testing

• It is possible that a change made in one part of the


code, may accidentally affect the behavior of other
parts of the code

• Changes may include changes to the environment

• Regression testing involves running tests to detect


such unintended side-effects
Test Types & Test Levels
• It is possible to perform any of the test types mentioned above at any test level.
• Functional testing at component level -> testing that the code performs its function
• Non-functional testing at component level -> the time spent in different functions or
code segments, the number of CPU cycles consumed.
• Functional testing at acceptance level -> testing that users can login successfully to the
website
• Non-functional testing at acceptance level -> gathering users opinions about the
usability of the application
Maintenance Testing
• Once deployed to production environments, software and systems need to be maintained

• Maintenance testing focuses on testing the changes to the system, as well as testing
unchanged parts that might have been affected by the changes.

• Maintenance can involve planned releases and unplanned releases (hot fixes)
Triggers for Maintenance

Modification

Migration

Retirement
Impact Analysis
• Impact analysis evaluates the changes that were
made for a maintenance release to identify the
intended consequences

• Impact analysis can also help to identify the


impact of a change on existing tests.

• The side effects and affected areas in the system


need to be tested for regressions

• Impact analysis may be done before a change is


made, to help decide if the change should be made
Thanks

You might also like