Implementation Part 1
Software Testing Techniques
Learning Objectives
Understand an overview of key software testing techniques
Distinguish between different types of testing approaches
Recognize when different testing techniques are appropriate
08/17/2025 IIMS College, Nepal 2
What is Software Testing?
IEEE Standard 829-2008 Definition: "Software testing is the process
of analyzing a software item to detect the differences between existing
and required conditions (that is, defects/errors/bugs) and to evaluate the
features of the software item.“
Essentially, software testing is the process of evaluating and verifying
that a software application or system meets specified requirements and
functions correctly.
08/17/2025 IIMS College, Nepal 3
Key Objectives
Find defects and bugs before production/before users
Verify functionality meets requirements
Ensure software quality and reliability
Validate user experience and performance
Reduce risks and costs of software failures
08/17/2025 IIMS College, Nepal 4
Testing Principles
Testing shows the presence of Testing is context dependent: The
defects: Testing can demonstrate that approach to testing should be tailored to
defects exist, but it cannot definitively the specific context of the software,
prove that a system is completely free of including its purpose, functionality, and
errors. target users
Exhaustive testing is impossible: It is Defects cluster together: A small
not feasible to test every possible number of modules often contain the
combination of inputs, conditions, and majority of defects.
outputs in a software application.
08/17/2025 IIMS College, Nepal 5
Types of Testing
Black Box Testing
What: Testing without knowledge of
internal code structure
Focus: Input-output behavior
Techniques: Equivalence partitioning,
boundary value analysis
Who: Testers, end users
08/17/2025 IIMS College, Nepal 6
Types of Testing
White Box Testing
What: Testing with full knowledge of
internal code structure
Focus: Code coverage, logic paths
Techniques: Statement coverage, branch
coverage, path coverage
Who: Developers, technical testers
08/17/2025 IIMS College, Nepal 7
Types of Testing
Gray Box Testing
What: Combination of black box and white
box testing
Focus: Limited internal knowledge with
external testing
Use Cases: Integration testing,
penetration testing
08/17/2025 IIMS College, Nepal 8
Testing Levels
08/17/2025 IIMS College, Nepal 9
Testing Levels
Unit Testing Integration Testing
Scope: Individual components or Scope: Interfaces between integrated
modules components
Performed by: Developers Goal: Detect interface defects
between modules
Tools: JUnit, NUnit, pytest
Performed by: Testers
Goal: Verify each unit works as
designed
08/17/2025 IIMS College, Nepal 10
Testing Levels
System Testing Acceptance Testing
Scope: Complete integrated system Scope: Business requirements
Environment: Production-like test validation
environment Types: User Acceptance Testing (UAT),
Goal: Verify system meets specified Business Acceptance Testing (BAT)
requirements Goal: Confirm system is ready for
deployment
08/17/2025 IIMS College, Nepal 11
Functional Testing
08/17/2025 IIMS College, Nepal 12
Functional Testing
Validates that software functions Tests specific functionality and
according to specified requirements features
Input → Process → Output Based on functional
validation requirements/specifications
Business logic, user requirements, Usually black-box testing method
feature correctness Validates business rules and workflows
"Does it work as expected?“
08/17/2025 IIMS College, Nepal 13
Non-Functional Testing
08/17/2025 IIMS College, Nepal 14
Non-Functional Testing Techniques
Performance Testing Security Testing
Load Testing: Normal expected load Authentication and Authorization
Stress Testing: Beyond normal capacity Testing: User identity verification and
access control validation
Volume Testing: Large amounts of data
SQL Injection: Database vulnerability
Spike Testing: Sudden load increases
testing
Endurance Testing: Extended periods
Cross-Site Scripting (XSS): Web
application security
08/17/2025 IIMS College, Nepal 15
Non-Functional Testing Techniques
Usability Testing
User interface and experience
evaluation
Navigation and workflow testing
Accessibility compliance testing
Mobile responsiveness testing
08/17/2025 IIMS College, Nepal 16
Modern Testing Approaches
DevOps and Continuous Testing
Continuous Testing: Testing throughout development cycle
CI/CD Integration: Automated testing in deployment pipeline
Shift-Left Testing: Earlier testing in development cycle
Test Automation: Automated execution of test cases
Infrastructure as Code: Automated test environment setup
08/17/2025 IIMS College, Nepal 17
Test Automation
When to Automate Automation Tools and Frameworks
Repetitive Tests: Regression, smoke Web Testing: Selenium, Playwright,
tests Cypress
Data-Driven Tests: Multiple input API Testing: Postman, REST Assured,
combinations SoapUI
Stable Features: Unlikely to change Mobile Testing: Appium, Espresso
Frequently Performance Testing: JMeter,
LoadRunner
08/17/2025 IIMS College, Nepal 18