0% found this document useful (0 votes)
22 views

SE Chapter 7

The document discusses software quality assurance and testing. It defines key terms like failure, error, and fault. It then explains software quality assurance, its focus areas and benefits. It also describes different types of testing like unit, integration, system, and acceptance testing and testing approaches like white box, black box, and grey box testing.

Uploaded by

Shafi Esa
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)
22 views

SE Chapter 7

The document discusses software quality assurance and testing. It defines key terms like failure, error, and fault. It then explains software quality assurance, its focus areas and benefits. It also describes different types of testing like unit, integration, system, and acceptance testing and testing approaches like white box, black box, and grey box testing.

Uploaded by

Shafi Esa
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/ 23

CHAPTER 7

Software Quality Assurance

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

Software Testing is a process of analyzing a software


item to detect the differences between existing and
required conditions (i.e., defects) and to evaluate the
features of the software item.

Testing ensures that the software behaves and looks


exactly like what is mentioned in the requirements
specification document, so that when software is
delivered to the client there are no arguments about the
variation from the original requirements.

6
Objective of Testing

The objective of testing is to maximize the number of discovered faults, which


then allows developers to correct them and increase the reliability of the system.
When to start testing?
An early start to testing reduces the cost, time to rework and error free software that
is delivered to the client.

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.

 Following are the aspects which should be considered to


stop the testing:
◼ Completion of Functional and code coverage
to a certain point.
◼ Bug rate falls below a certain level and no
high priority bugs are identified.

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.

I. White Box Testing


II. Black Box Testing
III. Grey Box Testing
I. White Box Testing:
 It is also called as Glass Box, Clear Box, Structural
Testing.
 White Box Testing is based on applications internal code
structure.
 In white-box testing, an internal perspective of the
system, as well as programming skills, are used to design
test cases.
 white-box testing is called structural testing.
11
Cont’d
II. Black Box Testing:
 It is also called as Behavioural/Specification-Based/Input-
Output Testing.
 Black Box Testing is a software testing method in which
testers evaluate the functionality of the software under
test without looking at the internal code structure.
 black-box testing is known as functional testing.
III. Grey Box Testing:
 Grey box is the combination of both White Box and
Black Box Testing.
 The tester who works on this type of testing needs to have
access to design documents.

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.

 It is subdivided into Read this


 Big bang approach
 Top-Down Approach,
 Bottom-Up Approach and,
 Sandwich Approach (Combination of Top Down and
Bottom Up).

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

 Types of Acceptance Testing are Alpha, Beta & Gamma Testing.


 Alpha Testing is a type of software testing performed to identify bugs before releasing the
product to real users or to the public. It is tested by internal employees of the
organization
 Beta Testing is performed by users of the software application in a real environment. A
pre-release version of the product is made available for testing to a chosen set of external
users or customers during software testing.
 Gamma testing is a relatively less common term and is sometimes used interchangeably
with beta testing. However, in some contexts, gamma testing refers to testing software in
a production-like environment.

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.

 Conventional testing methods cannot be applied for testing classes because of


problems involved in testing classes, abstract classes, inheritance, dynamic
binding, message, passing, polymorphism, concurrency, etc.

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

1. Fault Based Testing


 It tries to identify possible faults (areas of design or code that may lead to
errors.).

2. Class Testing Based on Method Testing


 This approach is the simplest approach to test classes.
 Each method of the class performs a well defined cohesive
 Therefore all the methods of a class can be involved at least once to test
the class.

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?

3. You are testing a newly developed e-commerce website. However, you're


only provided with the external specifications and functionalities without
access to the internal code. Which testing approach would be most suitable
for you to evaluate the website's behavior without knowledge of its internal
structure?

23

You might also like