0% found this document useful (0 votes)
21 views69 pages

Chapter 4

The document outlines the concepts of software quality, including quality assurance (QA), quality control (QC), and testing, emphasizing their roles in ensuring software meets functional and non-functional requirements. It details various testing principles, methods, levels, and the importance of test automation in improving efficiency and accuracy. Additionally, it discusses the future of testing, highlighting the integration of security, artificial intelligence, and big data in testing practices.

Uploaded by

milescy09
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)
21 views69 pages

Chapter 4

The document outlines the concepts of software quality, including quality assurance (QA), quality control (QC), and testing, emphasizing their roles in ensuring software meets functional and non-functional requirements. It details various testing principles, methods, levels, and the importance of test automation in improving efficiency and accuracy. Additionally, it discusses the future of testing, highlighting the integration of security, artificial intelligence, and big data in testing practices.

Uploaded by

milescy09
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/ 69

QUALITY ASSURANCE ,CONTROL,

AND TESTING
Group 3
1

THE CONCEPT OF SOFTWARE QUALITY:


QUALITY ASSURANCE (QA), QUALITY
CONTROL (QC) AND TESTING

De Guzman, Ariane S.
SOFTWARE QUALITY
It refers to different processes that work together to ensure the overall
quality of the software product.
TWO BASIC LEVELS OF SOFTWARE QUALITY
FUNCTIONAL
- the product’s compliance with functional (explicit) requirements and design
specifications.

NON-FUNCTIONAL
- system’s inner characteristics and architecture, i.e. structural (implicit)
requirement.
QUALITY MANAGEMENT ACTIVITIES
Refers to the actions and processes implemented throughout the lifecycle
of a product or service to ensure that it meets or exceeds the desired
quality standards and requirements.
QUALITY ASSURANCE
It focuses more on organizational aspects of quality management,
monitoring the consistency of the production process.
QUALITY CONTROL
A part of quality management that verifies the product’s compliance with
standards set by QA.
TESTING
The primary activity of detecting and solving technical issues in the
software source code and assessing the overall product usability,
performance, security, and compatibility.
2

THE MAIN PRINCIPLES OF


SOFTWARE TESTING
TESTING SHOWS PRESENCE OF MISTAKES

Testing aims to detect the defects within a piece of software.


EXHAUSTIVE TESTING IS IMPOSSIBLE
There is no way to test all combinations of data inputs, scenarios, and
preconditions within an application.
EARLY TESTING
As mentioned in the previous slides, the cost of an error grows
exponentially throughout the stages of the software
development life cycle (SDLC).
DEFECT CLUSTERING
This principle is often referred to as an application of the
Pareto Principle to software testing.
PESTICIDE PARADOX
Running the same set of tests again and again wont
help you find more issues.
TESTING IS CONTEXT DEPENDENT
Depending on their purpose or industry, different
applications should be tested differently.
ABSENCE-OF-ERRORS FALLACY
The complete absence of errors in your product does not
necessarily means its success.
3

THE ROLE OF TESTING IN SOFTWARE


DEVELOPMENT LIFE CYCLE
WATERFALL MODEL-SDLC
WATERFALL MODEL
A traditional software development life cycle,
it has 6 consecutive phases
AGILE TESTING
Main purpose of such process is to deliver new software
features fast and with the best quality
DEVOPS TESTING-DEVOPS
LIFECYCLE
This new software development methodology is a
common practice. Often referred to as an extension of
Agile testing.
4

THE PROCESS OF SOFTWARE TESTING


IN PRACTICE
TEST PLANNING:
ARTIFACTS & STRATEGY

Like any formal process, testing activities are typically


preceded by thorough preparations and planning.
SEVEN TYPES
OF STRATEGIES
1. Analytical
2. Model-Based
3. Methodical
4. Process or Standard-compliant
5. Dynamic
6. Consultative or Directed
7. Regression-averse
DESIGN & EXECUTION
As a starting point for the test execution, we need to
identify what is subject to testing.
SOFTWARE TESTING PROCESS
It has two categories:
Static Testing- examines the software project
documents to prevent defects early in the software
testing cycle.
Dynamic Testing-the software is tested during
execution.
Dynamic Testing Process Segments

1. Software Testing Methods


2. Software Testing Levels
3. Software Testing types
DOCUMENTATION & REPORTING
Agreed conditions to officially complete testing, ensuring
all critical tests are executed, defects are addressed,
documentation is updated, and stakeholders are
informed for decision-making.
5

THE LEVELS OF SOFTWARE


TESTING
Osorio, Karylle P.

1
5

SOFTWARE TESTING LEVELS


vary in the scope of what is checked, ranging from a single component
to an entire program as a whole. Commonly, before release, the code
goes through four test layers:

2
5

SOFTWARE TESTING LEVELS

UNIT/COMPONENT TESTING
is the smallest testable part of the software system.

3
5

SOFTWARE TESTING LEVELS


INTEGRATION TESTING
The objective of this level is to verify that units work well together as a
group and also smoothly interact with other system elements —
databases, external APIs, etc.

4
5

SOFTWARE TESTING LEVELS

SYSTEM TESTING
At this level, a complete software system is tested as a whole. The stage
verifies the product’s compliance with the functional and non-functional
requirements.

5
5

SOFTWARE TESTING LEVELS

ACCEPTANCE TESTING
This is where the product is validated against the end-user requirements
and for accuracy.

6
5
SOFTWARE TESTING LEVELS
The three common stages of UAT are:

alpha testing, performed by internal testers in a staging environment;

beta testing, handled by a group of real customers in the production environment


to verify that the app or website satisfies their expectations;

gamma testing, when a limited number of customers check particular


specifications (primarily related to security and usability). At this stage, the product
is 99 percent ready for release, so developers won’t make any critical changes.
Feedback is to be considered in upcoming versions.

7
6

THE METHODS OF SOFTWARE


TESTING
Osorio, Karylle P.

8
5

SOFTWARE TESTING METHODS


are the ways tests at different levels are conducted.

9
6

SOFTWARE TESTING METHODS

BLACK BOX TESTING


The main purpose is to check the functionality of the software, making
sure that it works correctly and meets user demands. Black box testing
applies to any level but is mostly used for system and user acceptance
testing.

10
6

SOFTWARE TESTING METHODS

WHITE BOX TESTING


aims to enhance security, reveal hidden defects, and address them. This
method is used at the unit and integration levels.

11
6

SOFTWARE TESTING METHODS

GRAY BOX TESTING


The method combines the two previous ones, testing both functional
and structural parts of the application.

12
6

SOFTWARE TESTING METHODS

SMOKE TESTING
is a popular white box technique to check whether a build added to the
software is bug-free. It contains a short series of test runs, evaluating a
new feature against critical functionality.

13
6

SOFTWARE TESTING METHODS

AD HOC TESTING
This informal testing technique is performed without documentation,
predefined design, and test cases.

14
6

SOFTWARE TESTING METHODS

EXPLORATORY TESTING
Similar to the ad hoc method, exploratory testing does not rely on
predefined and documented test cases. Instead, it is a creative and
freestyle process of learning the system while interacting with it.

15
7

THE TYPES OF SOFTWARE TESTING


MILLO, ALYXIS J.
7
7
FUNCTIONAL TESTING
Functional testing typically involves the following steps:

1 Outlines the functions for the software to perform

2 Composes the input data depending on function specifications

3 Determines the output depending on function specifications

4 Executes the test case

5 Juxtaposes the received and expected outputs


7
7
PERFORMANCE TESTING
System performance under varying workloads is assessed through
different types of performance testing.

Load Testing — at continuously increasing workload


Stress Testing — at or beyond the limits of the anticipated workload
Endurance Testing — at continuous and significant workload
Spike Testing — at suddenly and substantially increased workload
7
7
7
7
8

TEST AUTOMATION
MILLO, ALYXIS J.
8
TEST AUTOMATION
Test automation is critical in terms of
continuous testing as it eases the burden of
managing all of the testing needs, allowing
more time and effort to be spent on creating
effective test cases
8

THE PROCESS OF TEST AUTOMATION


Preliminary Project Analysis
This is where you figure out what needs to be automated.

Framework Engineering
This involves building the foundation for your automated tests.

Test Cases Development


This stage translates manual test cases into automated scripts.
8

THE PROCESS OF TEST AUTOMATION


Test Cases Implementation
This is the stage where planned tests become executable.

Iterative Framework Support


This step ensures the automation framework and the tests themselves
are maintained and updated.
BENEFITS OF TEST 8

AUTOMATION
Automation can be applied to almost every testing type, at every level. As a
result, the automation minimizes the human effort required to efficiently
run tests, reduces time-to-market and the cost of errors because the tests
are performed up to 10 times faster when compared to manual testing
process. Moreover, such a testing approach is more efficient as the
framework covers over 90 percent of the code, unveiling the issues that
might not be visible in manual testing and can be scaled as the product
grows.
8
TEST AUTOMATION IN
NUMBERS
According to the ISTQB® survey, 64.4 percent of
their respondents vote for test automation
activities as the main improvement area in software
testing. At the same time, 43,4 percent of the
respondents name test automation the top
challenge in Agile projects. Here are the most
striking problems faced in applying test automation
based on the survey by Katalon Studio.
8
TEST AUTOMATION IN
NUMBERS
Automated test activities include test execution,
functional test case design, test data generation,
and testing of end-to-end business scenarios
However, the most effective testing approaches
combine manual and automated testing activities in
order to achieve the best results
1

REGRESSION TESTING
Taberna, Mary Justine S.
2
REGRESSION TESTING

is the practice of verifying software behavior after


updates to ensure that the changes haven’t
impacted existing system functions, stability, and
overall integrity.
3
THERE ARE MULTIPLE REGRESSION TESTING
TECHNIQUES:

Retesting all test cases


Selecting specific test cases
Prioritizing test cases to verify the most critical ones
first and then test the rest
Hybrid techniques
4

THE FUTURE OF TESTING


Taberna, Mary Justine S.
5
FUTURE OF TESTING

As a part of technological progress, testing is


continually evolving to meet ever-changing
business needs as it adopts new tools that allow the
tester to push the boundaries of quality assurance.
6

Security
Artificial Intelligence
Big Data
7
SECURITY

The World Quality Report survey shows that security is one of the
most important elements of an IT strategy. Input from security is
vital to protecting the business.
security testing intends to uncover system vulnerabilities and
determine how well it can protect itself from unauthorized access,
hacking, any code damage, etc.
8
THE FOUR MAIN FOCUS AREAS IN
SECURITY TESTING:

1. Network security
2. System software security
3. Client-side application security
4. Server-side application security
9
ARTIFICIAL INTELLIGENCE
The challenges of testing are increasing and their
solutions have unlimited number of situations
requiring artificial intelligence to test them
thoroughly. Different implementations of AI using
machine learning-based algorithms will soon
become embedded in applications to perform tasks
once reserved for humans.
10
BIG DATA

Big data testing is aimed at checking the


quality of data and verifying data
processing.
Big data testing demands a high level of
testing skills as the processing is very fast.
THANK YOU

You might also like