SE Chapter 7
SE Chapter 7
1
Terminology
Failure: Is the inability of a software system or component to
perform its required functions within specified performance
requirements.
Erroneous state (error): is a mistake, misconception, or
misunderstanding on the part of a software developer.
Fault: A fault (defect) 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. (“bug”)
Quality defines to any measurable characteristics such as
correctness, maintainability, portability, testability, usability,
reliability, efficiency, integrity, reusability, and interoperability.
Software Quality Assurance(SQA)
SQA isa way to assure quality in the software.
It is the set of activities which ensure processes, procedures as
well as standards are suitable for the project and implemented
correctly.
It focuses on improving the process of development of software
so that problems can be prevented before they become a major
issue.
Software Quality Assurance is a kind of Umbrella activity that is
applied throughout the software process.
Software Quality Assurance(SQA)
Software Quality Assurance (SQA) focuses on
• software’s portability
• software’s usability
• software’s reusability
• software’s correctness
• software’s maintainability
• software’s error control
Benefits of Software Quality Assurance (SQA)
• SQA produces high quality software.
• High quality application saves time and cost.
• SQA is beneficial for better reliability.
• SQA is beneficial in the condition of no maintenance for a long time.
• High quality commercial software increase market share of company.
• Improving the process of creating software.
• Improves the quality of the software.
Software Quality Assurance(SQA)
Software Testing
6
Objective of Testing
How ever, In SDLC testing can be started from the Requirements Gathering phase till
the deployment of the software.
However it also depends on the development model that is being used.
◼ For example, in Water fall model, formal testing is conducted in the
Testing phase,
◼ But in incremental model, testing is performed at the end of every
increment/iteration and at the end the whole application.
7
When to stop testing?
Unlike when to start testing, it is difficult to determine
when to stop testing, as testing is a never-ending process
and no one can say that any software is 100% tested.
8
Who does Testing?
It depends on the process and the associated stakeholders
of the project(s).
In the IT industry, large companies have a team with
responsibilities to evaluate the developed software in
context of the given requirements.
Moreover, developers also conduct testing which is
called Unit Testing.
In most cases, the following professionals are involved in
testing a system within their respective capacities
Software Tester
Software Developer
Project Lead/Manager
End User
9
Testing activities
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:
Requirement Analysis
Test Plan Creation
Environment setup
Test case Execution
Defect Logging
Test Cycle Closure
10
Testing Approaches
There are three types of software testing approaches.
12
Testing Levels
There are four levels of software testing
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
1. Unit Testing:
Unit Testing is done to check whether the individual
modules of the source code are working properly.
i.e. testing each and every unit of the application
separately by the developer in the developer’s
environment.
13
Cont’d
2. Integration Testing:
Integration Testing is the process of testing the connectivity or data
transfer between a couple of unit tested modules.
Is assemble the individual units into working subsystems and
finally a complete system that is ready for system test.
14
Cont’d
3. System Testing (end to end testing):
It’s a black box testing.
Testing the fully integrated application this is also called
as end to end scenario testing.
To ensure that the software works in all intended target
systems.
Verify thorough testing of every input in the application
to check for desired outputs.
Note:
o This level of testing uses also to test the users experiences
with the application.
15
Cont’d
4. Acceptance Testing:
Acceptance testing is the last phase of testing and is used to assess whether or not the final
piece of software is ready for delivery.
It involves ensuring that the product is incompliance with all of the original business
criteria and that it meets the end user’s needs. This requires the product be tested both
internally and externally
16
Impact of object-oriented testing
Object-oriented testing focuses on verifying the behavior of individual
objects or classes in an object-oriented system
Facilitates reuse of test cases through inheritance.
The goal of object-oriented testing is to ensure that each object or class in
the system performs its functions correctly and interacts properly with other
objects or classes.
Conventional Testing
commonly referred to as traditional testing, is a type of software testing that
focuses on comparing the functionality of a software system or application to a
set of established standards or criteria.
17
Impact of object-oriented testing…
Testing classes is a fundamentally different problem than testing functions.
A function (or a procedure) has a clearly defined input-output behavior, while a class
does not have an input-output behavior specification.
We can test a method of a class using approaches for testing functions
According to Davis the dependencies occurring in conventional systems are:
Data dependencies between variables
Calling dependencies between modules
Functional dependencies between a module and the variable it computes
Definitional dependencies between a variable and its types.
But in Object-Oriented systems there are following additional dependencies:
Class to class dependencies
Class to method dependencies
Class to message dependencies
Class to variable dependencies
Method to variable dependencies
Method to message dependencies
Method to method dependencies
18
Techniques of object-oriented testing
19
Techniques of object-oriented testing
3. Random Testing
It is supported by developing a random test sequence that tries the minimum
variety of operations typical to the behavior of the categories
4. Partition Testing
This methodology categorizes the inputs and outputs of a category so as to
check them severely.
This minimizes the number of cases that have to be designed.
5. Scenario-based Testing
It primarily involves capturing the user actions then stimulating them to
similar actions throughout the test.
These tests tend to search out interaction form of error.
20
Reading
SOFTWARE MAINTENANCE
Corrective
Adaptive
Perfective
METRICS FOR SOFTWARE PROJECT SIZE ESTIMATION
Lines of Code (LOC)
Function point (FP)
Shortcomings of function point (FP) metric
Project Estimation Techniques
Empirical estimation techniques
Heuristique techniques
Analytical estimation techniques
21
END
22
knowledge check(5%)
1. Before deploying a new inventory management system for a retail store, the
stakeholders want to ensure that it meets their operational needs. Which
testing phase involves end-users verifying if the system meets their
expectations and requirements?
2. During the final phase of testing for a ticket booking system, you simulate
real-world scenarios to ensure the software meets the business requirements
and functions as expected. Which testing level involves validating the entire
system against the specified requirements?
23