Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

Astana IT University​

Advanced QA​

Fundamentals of Software Testing

Week: 3 PhD Adamova Aigul Dyusenbinovna​


Aigul.adamova@astanait.edu.kz​
Today’s agenda
Testing Strategies and
Techniques

Structural and Functional


testing

Static Black Box and Dynamic


Black Box Testing Techniques
Software Testing Terms and Definitions
Software Quality the actual testing of the product happens at a later stage. Defects
which occur due to discrepancies in functionality and specifications
Verification are detected in this phase. It answers the question, “Are we building
the right product?”

Validation
the process of discovering the possible failures in the software
Quality Assurance before the commencement of the testing phase. It involves reviews,
inspections, meetings, code reviews, and specifications. It answers
the question.” Are we building the product right?”
Quality Control

Test plan is impacted by bugs. It is essential that the software is bug free or
defect free and meets the requirements, specifications, and
expectations of the client.
Test case
Software Testing Terms and Definitions
Software Quality the actual testing of the product happens at a later stage. Defects
which occur due to discrepancies in functionality and specifications
Verification are detected in this phase. It answers the question, “Are we building
the right product?”

Validation
the process of discovering the possible failures in the software
Quality Assurance before the commencement of the testing phase. It involves
reviews, inspections, meetings, code reviews, and specifications. It
answers the question.” Are we building the product right?”
Quality Control

Test plan is impacted by bugs. It is essential that the software is bug free or
defect free and meets the requirements, specifications, and
expectations of the client.
Test case
Software Testing Terms and Definitions
Software Quality is a document and is the smallest unit of testing. It has a developed
set of inputs, execution preconditions and expected outcomes for a
Verification specific objective.

The activities are more generic and can encompass the whole
Validation development process. The main aim is to prevent defects, and thus
it focuses on the process of product or application building.
Quality Assurance
is a document which gives information about the objectives, scope,
approach and the various attributes that the testing project must
Quality Control focus on.

The main aim is to evaluate whether the deliverables are of


Test plan
acceptable quality. The focus thus is to detect defects and correction
of these defects (correction oriented). The activities ensure data
Test case integrity, correctness and completeness.
Software Testing Terms and Definitions
Software Quality is a document and is the smallest unit of testing. It has a developed
set of inputs, execution preconditions and expected outcomes for a
Verification specific objective.

The activities are more generic and can encompass the whole
Validation development process. The main aim is to prevent defects, and thus
it focuses on the process of product or application building.
Quality Assurance
is a document which gives information about the objectives, scope,
approach and the various attributes that the testing project must
Quality Control focus on.

The main aim is to evaluate whether the deliverables are of


Test plan
acceptable quality. The focus thus is to detect defects and correction
of these defects (correction oriented). The activities ensure data
Test case integrity, correctness and completeness.
Testing Strategies and Techniques
What is Software Testing???

Testing is the process of establishing Testing is the process of executing


confidence that a program or system a program or system with the
does what it ts supposed to. intent of finding errors.
by HETZEL, 1973 by MYERS, 1979

Testing is any activity aimed at evaluating an attribute or capability of a


program or system and determining that it meets its required results.
by HETZEL, 1983
Testing Strategies and Techniques
What is Software Testing???

ANSI/IEEE 1059 standard SWEBOK


Testing is the process of analysing a software Software testing is an activity that
item to detect the differences between existing should be done throughout the whole
and required conditions (that is, development process
defects/errors/bugs) and to evaluate the
features of the software item.

SWEBOK - IEEE’s Guide to the Software Engineering Body of Knowledge


Testing Strategies and Techniques
Test strategy is a high-level plan consisting of principles that guide the overall software
testing process. It provides a structured approach to the entire QA team, guiding them
toward achieving testing objectives in the most efficient way.
The three main methods of testing are the following:
1. Structural or functional testing
2. Static or dynamic testing
3. Manual or automated testing
What is a Test Strategy Document?

It is an important document for QA teams and is based on actual business requirements.

Why You Need a Test Strategy?

Guides the testing effort by providing focus, clarity, and


effective risk management.
Ensures efficiency, effectiveness, and adherence to standards
in testing practices.
Promotes better collaboration between members of the QA
team.
Ensures that all members are aligned on the overall vision of
the project.
Acts as reference for resource planning and allocation for
optimal utilization.
Allows you to track progress more efficiently.
Test Strategy Test Plan

Provides a high-level approach, objectives, Specifies detailed instructions,


Purpose
and scope of testing for a software project procedures, and specific tests to be
conducted

Testing approach, test levels, types, and Detailed test objectives, test cases, test
Focus
techniques data, and expected results

Audience Stakeholders, project managers, senior Testing team members, test leads, testers,
testing team members and stakeholders involved in testing

Specific phase, feature, or component of


Scope Entire testing effort across the project
the software

Highly detailed, specifying test scenarios,


Level of Detail Less detailed and more abstract
cases, scripts, and data

Allows flexibility in accommodating Relatively rigid and less prone to changes


Flexibility
changes in project requirements during the testing phase

Remains relatively stable throughout the Evolves throughout the testing process,
Longevity
project lifecycle incorporating feedback and adjustments
What To Include in a Test Strategy Document?

Scope and objectives:

Testing approach

Testing types to perform

Hardware-software configuration

Testing tools

Test deliverables

Testing measurements and metrics

Risks
How To Write a Test Strategy Document part 1
1. What are the specific goals and objectives of the testing effort?
2. What key functionalities or features should be tested?
Test Goals/Objectives
3. Are there any specific performance or usability targets to be achieved?
4. How will the success of the testing effort be measured?

1. What is the duration of each sprint?


2. When does each sprint start and end?
Sprint Timelines
3. Are there any specific milestones or deadlines within each sprint?
4. How will the testing activities be aligned with the sprint timelines?

1. What is the process for capturing and tracking tasks or tickets?


2. How will the tasks or tickets flow through different stages (e.g., new, in progress, resolved)?
Lifecycle of Tasks/Tickets
3. Who is responsible for assigning, updating, and closing tasks or tickets?
4. Is there a specific tool or system used for managing tasks or tickets?

1. Will it be a manual testing approach, automated testing approach, or a combination of both?


Test Approach
2. How will the test approach align with the development process (e.g., Agile, Waterfall)?

1. WhaWhat types of testing will be performed (e.g., functional testing, performance testing, security testing)?
2. Are there any specific criteria or standards to be followed for each testing type?
Testing Types
3. How will each testing type be prioritized and scheduled?
4. Are there any dependencies for certain testing types?
How To Write a Test Strategy Document part 2

1. What are the different roles involved in the testing process?


Roles and Responsibilities
2. What are the responsibilities of each role?

1. What are the preferred testing tools for different testing activities (open source/vendor-based)?
2. Are there any specific criteria for selecting testing tools?
Testing Tools
3. How will the testing tools be integrated into the overall testing process?
4. Is there a plan for training and support for using the testing tools effectively?

Hardware-Software 1. Which operating systems and versions need to be supported?


Configuration 2. Which browsers or devices need to be tested on?

1. WilWhat metrics or KPIs need to be tracked and reported?


Reporting 2. How frequently should the reports be generated and distributed?
3. Who are the stakeholders who should receive the testing reports?
Software Testing Life Cycle (STLC)

Types of Software Testing

Functional Testing Non-Functional Testing

Usability Testing
Unit Testing System Testing Security Testing

Performance Testing
Integration Testing
Structural and Functional testing
Structural and functional testing are two important types of software testing.
Structural and functional testing are also called as white box and black box testing.
Structural and Functional testing
Verify the dimensions of the TV – length, breadth, and height are as per the
specifications
Check the TV technology type – LED, LCD, etc.
Verify that the screen resolution of the TV is as per the specifications.
Check the material used for the outer body of the TV.
Check the material used for the screen of the TV.
Verify that on supplying the specified power supply, the TV gets switched on after
pressing the ‘Power’ button.
Verify that all the buttons on the TV perform their functioning correctly.
Verify that the TV screen clearly displays videos.
Verify that the audio of the TV is audible without any noise.
Verify that buttons on the TV have clearly visible labels indicating their functionality.
Verify that buttons in the TV function correctly when pressed.
Verify that the remote’s signal receiver receives a signal within a specified range.
Static versus Dynamic Testing

Software developers perform syntax check Software developers perform unit test to
to test syntactical correctness check for correctness in a module.
Manual versus Automated Testing
Manual versus Automated Testing
Static Black Box Testing Techniques
Static testing is used to test the software without compilation. This document is created
during the initial stages of the Software Development Life Cycle (SDLC) based on the input
from the customer and designer. The focus of static black box testing is to check for
completeness or appropriateness of the product or application developed
Static Black Box Testing Techniques
Static black box testing - High Level Specification Test Technique
1 Conventions Followed by Corporates
2 Industry Requirements
3 Government Standards
4 Graphical User Interface
5 Security Standards

Static black box testing - Low Level Specification Test Technique


1 Completeness
2 Accuracy
Always, None, All, Never
3 Precision, Unambiguity and Clarity Certainly, Clearly, Obviously, Evidently
4 Relevance Etc., And So on
Some, Sometimes, Often, Usually, Mostly
5 Feasibility
Good, Fast, Cheap, Efficient, Small
6 Code-free Explanation
7 Testable
Dynamic Black Box Testing Techniques
The test is carried out by providing pre-defined inputs and the outputs arerecorded. These
outputs are compared with the correct output, and the variation that exists between
theactual output and desired output are segregated as bugs.

Test to Pass and Test to Fail Equivalence Partitioning Data Testing


Dynamic Black Box Testing Techniques

State Testing Random Testing Mutation Testing


Black Box Testing for Banking Applications
A global banking firm with over 30 million customers wanted to increase its business volume by concentrating more on
customer retention and enhancing relationship with them. For this the bank used client-server applications for their banking
software.
Every client server application needs continuous up-gradations to facilitate integrated transactions from common servers and
reworking navigation and usability that meets business needs. Any failure or errors in such applications may lead to severe
financial losses to the customers and the bank. This also affects the reputation of the bank. The bank provides various deposit
and loan products, automobiles finance, housing loans and personal loans for their customers across the globe. Bugs in the
software might cause problems related to availability, scalability, and performance. They have to be resolved before the
application reaches the production environment.
A team of highly skilled testers were given the task of testing the banking application. Subject Matter Experts gave extensive
knowledge and training to the team to make the testers aware of the bank's business requirements. The testing team
developed a high level test plan, and designed business scenarios, which were extensive black box testing test scenarios to test
the application. The team ran these test cases and scenarios in a configured environment with end user perspective to detect
critical bugs in the application.
Based on the test case results, the team suggested up-gradation in the application. Since the test cases were domain specific
and end user oriented, the team was able to efficiently carry out the testing process. Therefore, with the help of extensive black
box testing, the testing team was able to address all the concerns of the bank successfully.
This extensive black box testing helps to:
1. Measure the factors that affect the performance of the application.
2. Provide confidence to the bank in the application’s performance before it is deployed in the actual working environment.
3. Establish performance standards for all the applications and monitor critical indicators to assess the change in the expected
performance levels.
Features of Software Testing

Early defect detection Bug Free application

Risk mitigation Quality Assurance

Test Coverage Verification and Validation

Speed up the development process Documentation

Customer Satisfaction
Software Testing Tools
Questions
Summary
Structural testing techniques check the occurrence of bugs in the test software using the
actual codes of the software. The tester works with the source code of the software while
performing the test.

In a functional test, the tester is not aware of the actual working of the software. The test
analysis is performed based on the outputs that the software generates for various inputs.
The bugs are detected by comparing the expected output with the obtained output.

Black box testing is a functional testing technique. The tester performs the test to check the
behavior of the software by providing pre-defined inputs and analyzing the outputs.

A static black box testing involves checking for bugs in the specification document. Any
mistakes or incorrect information present in the specification is considered as a bug.

Dynamic black box testing refers to testing for bugs by executing the software.

You might also like