0% found this document useful (0 votes)
7 views28 pages

Essential Software Testing Techniques

The document provides an overview of software testing, defining key concepts such as testing, verification, validation, and debugging. It outlines various testing levels including unit, integration, system, and acceptance testing, along with methodologies like black box and white box testing. Additionally, it presents a case study on a Hospital Appointment Booking System, detailing its functional and non-functional requirements.

Uploaded by

mashathebear083
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)
7 views28 pages

Essential Software Testing Techniques

The document provides an overview of software testing, defining key concepts such as testing, verification, validation, and debugging. It outlines various testing levels including unit, integration, system, and acceptance testing, along with methodologies like black box and white box testing. Additionally, it presents a case study on a Hospital Appointment Booking System, detailing its functional and non-functional requirements.

Uploaded by

mashathebear083
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

Software Testing

Anas Ali
Department of Computer Science
NUML Lahore Campus
Software Testing
• Software testing is defined as the execution of a program to find its
faults. While more time typically is spent on testing than in any other
phase of software development, there is considerable confusion
about its purpose.
• Many software professionals, for example, believe that tests are run
to show that the program works rather than to learn about its faults
How to define Software Testing Principles
• Testing
The execution of a program to find its faults
• Verification
The process of proving the programs correctness.
• Validation
The process of finding errors by executing the program in a real environment
• Debugging
Diagnosing the error and correct it
Testing Principles: To remove as many defects as possible before test since the
quality improvement potential of testing is limited
Testing Levels

• Unit testing
• Integration testing
• System testing
• Acceptance testing
Unit testing
• The most ‘micro’ scale of testing.
• Tests done on particular functions or code modules.
• Requires knowledge of the internal program design and code.
• Done by Programmers (not by testers).
Unit testing
Objectives ∙ To test the function of a program or unit of
code such as a program or module
∙ To test internal logic
∙ To verify internal design
∙ To test path & conditions coverage
∙ To test exception conditions & error
handling
When ∙ After modules are coded
Input ∙ Internal Application Design
∙ Master Test Plan
∙ Unit Test Plan
Output ∙ Unit Test Report
Who ∙Developer

Methods ∙White Box testing techniques


∙Test Coverage techniques

Tools ∙Debug
∙Re-structure
∙Code Analyzers
∙Path/statement coverage tools
Education ∙Testing Methodology
∙Effective use of tools
Integration Testing

•Testing of combined parts of an application to


determine their functional correctness.

•‘Parts’ can be
• code modules
• individual applications
• client/server applications on a network.
Types of Integration Testing
Big Bang testing: Big Bang Integration Testing is an integration
testing strategy wherein all units are linked at once, resulting in a
complete system. When this type of testing strategy is adopted, it is
difficult to isolate any errors found, because attention is not paid to
verifying the interfaces across individual units.
Top Down Integration testing: testing form the top of the
module hierarchy and work down to the bottom. Modules
are added in descending hierarchical order.
Bottom Up Integration testing:
testing from the bottom of the hierarchy and works up to the
top. Modules are added in ascending hierarchical order.
System Testing & Acceptance Testing
• the process in which a quality • Acceptance Testing: Acceptance
assurance (QA) team evaluates testing is a quality assurance (QA)
how the various components of process that determines to what
an application interact together in degree an application meets end
the full, integrated system or users' approval
application.
System Testing
Objectives ∙ To verify that the system components perform
control functions
∙ To perform inter-system test
∙ To demonstrate that the system performs both
functionally and operationally as specified
∙ To perform appropriate types of tests relating
to Transaction Flow, Installation, Reliability,
Regression etc.
When ∙ After Integration Testing
Input ∙ Detailed Requirements & External Application
Design
∙ Master Test Plan
∙ System Test Plan
Output ∙ System Test Report
Who ∙Development Team and Users

Methods ∙Problem / Configuration Management

Tools ∙Recommended set of tools

Education ∙Testing Methodology


∙Effective use of tools
Acceptance Testing

Objectives ∙ To verify that the system meets


the user requirements
When ∙ After System Testing
Input ∙ Business Needs & Detailed
Requirements
∙ Master Test Plan
∙ User Acceptance Test Plan
Output ∙ User Acceptance Test report
Who Users / End Users

Methods ∙Black Box techniques


∙Problem / Configuration
Management

Tools Compare, keystroke capture & playback,


regression testing

Education ∙Testing Methodology


∙Effective use of tools
∙Product knowledge
∙Business Release Strategy
Testing methodologies

Black box testing

White box testing

Incremental testing

Thread testing
• Black box testing
•No knowledge of internal design or code
required.
•Tests are based on requirements and
functionality
• White box testing
• Knowledge of the internal program design and code
required.
• Tests are based on coverage of code
statements,branches,paths,conditions.
BLACK BOX - TESTING TECHNIQUE

• Incorrect or missing functions


• Interface errors
• Errors in data structures or external database access
• Performance errors
• Initialization and termination errors
Black box / Functional testing

• Based on requirements and functionality

• Not based on any knowledge of internal


design or code

• Covers all combined parts of a system

• Tests are data driven


White box testing / Structural testing

• Based on knowledge of internal logic of an


application's code

• Based on coverage of code statements,


branches, paths, conditions

• Tests are logic driven


White Box - testing technique
• All independent paths within a module have been
exercised at least once

• Exercise all logical decisions on their true and false


sides

• Execute all loops at their boundaries and within their


operational bounds

• Exercise internal data structures to ensure their


validity
Functional testing
• Black box type testing geared to functional requirements of
an application.
• Done by testers.
System testing
• Black box type testing that is based on overall requirements
specifications; covering all combined parts of the system.
End-to-end testing
• Similar to system testing; involves testing of a complete
application environment in a situation that mimics real-world
use.
Sanity testing

•Initial effort to determine if a new software


version is performing well enough to accept
it for a major testing effort.

Regression testing

•Re-testing after fixes or modifications of the


software or its environment.
Major Testing Types

Stress / Load Testing


Performance Testing
Recovery Testing
Conversion Testing
Usability Testing
Configuration Testing
Stress / Load Test: Evaluates a system or component at
or beyond the limits of its specified requirements.
• Determines the load under which it fails and
how.
Performance Test: Evaluate the compliance of a
system or component with specified
performance requirements.
•Often performed using an automated test
tool to simulate large number of users.
Recovery Test: Confirms that the system recovers
from expected or unexpected events without loss of
data or functionality.
Eg. Shortage of disk space, Unexpected loss of communication,
Power out conditions
Conversion Test: Testing of code that is used to convert data from
existing systems for use in the newly replaced systems
Usability Test: Testing the system for the users to learn and use
the product.
Configuration Test

•Examines an application's requirements for


pre-existing software, initial states and
configuration in order to maintain proper
functionality.
Case Study
• A city hospital is developing a Hospital Appointment Booking System (HABS)
to simplify the process of booking and managing patient appointments. The
system will allow patients to register online, search for available doctors by
specialty and time slot, and book appointments. Once an appointment is
booked, patients should receive SMS and email confirmations. The system
will also let doctors view, update, or cancel their schedules and hospital staff
manage appointment slots, doctor profiles, and patient queries.
The hospital requires the system to be highly secure, as it will store sensitive
medical and personal data. It should be accessible via mobile and desktop,
support real-time booking updates, and be usable by staff with basic computer
skills. The system must ensure data encryption, fast response time, and system
recovery in case of failure. It should be built using Laravel (PHP) for the
backend, [Link] for the frontend, and a MySQL database, hosted on a secure,
HIPAA-compliant server.
Category Requirement
Functional Requirements

- Patient registration, login, profile update- Role-based login for


User Management
doctors and staff- Password reset

- Search doctors by specialty and availability- Book, reschedule,


Appointment Management
cancel, view appointments- Real-time slot updates

Doctor Features - Set and manage availability- View and update appointment status

- Manage doctor profiles and schedules- Oversee appointments-


Staff/Admin Features
Respond to queries- Generate reports

Notifications - SMS and email confirmations- Optional reminders


Non-Functional Requirements

- HTTPS, encryption at rest- Role-based access control- 2FA for


Security
doctors/staff- Audit logging

Usability - Mobile and desktop accessibility- Simple UI for basic users

Performance - <2s response time- Real-time updates


Reliability & Availability - Data backup and recovery- 99.9% uptime
Compliance - HIPAA-compliant infrastructure and data handling
Scalability & Maintainability - Modular, API-first design<br

You might also like