0% found this document useful (0 votes)
3 views19 pages

Notes

The document provides a comprehensive overview of software testing techniques, including Black Box and White Box testing, and various methodologies like Equivalence Partitioning and Boundary Value Analysis. It covers the importance of test case design, the bug life cycle, test reporting, and the distinction between manual and automated testing. Additionally, it discusses testing strategies, levels of testing, and the significance of continuous integration and error handling in automated testing.
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)
3 views19 pages

Notes

The document provides a comprehensive overview of software testing techniques, including Black Box and White Box testing, and various methodologies like Equivalence Partitioning and Boundary Value Analysis. It covers the importance of test case design, the bug life cycle, test reporting, and the distinction between manual and automated testing. Additionally, it discusses testing strategies, levels of testing, and the significance of continuous integration and error handling in automated testing.
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

Black Box Testing vs White Box Testing

Software testing techniques are broadly classified into Black Box and White Box testing based
on the visibility of internal code. These approaches complement each other and are used
together to achieve comprehensive testing.

Black Box Testing is a method where the tester evaluates the functionality of the software
without any knowledge of its internal implementation. The focus is entirely on inputs, outputs,
and system behavior. It validates whether the system meets user requirements and
specifications.

In this approach, the tester treats the system as a "black box" and verifies:

• Functional requirements

• User interface behavior

• Input-output correctness

• Error handling

Example:
Testing a login page:

• Input: Correct username/password → Expected: Login successful

• Input: Wrong password → Expected: Error message

Advantages of Black Box Testing:

• Does not require programming knowledge

• Focuses on user perspective

• Suitable for large systems

Disadvantages:

• Limited internal logic coverage

• Difficult to identify root cause of defects

• May miss hidden errors


White Box Testing, also known as structural or glass box testing, focuses on testing the internal
logic, structure, and code of the application. The tester must understand the program’s code
and design test cases accordingly.

This approach ensures:

• All code paths are executed

• Conditions and loops are tested

• Logical errors are identified

Example:
Testing a function with multiple conditions:

• Checking all branches of if-else statements

• Verifying loop execution

Advantages of White Box Testing:

• Ensures complete code coverage

• Detects logical and structural errors

• Helps optimize code

Disadvantages:

• Requires programming knowledge

• Time-consuming

• Not suitable for large systems alone

Conclusion:
Black Box ensures functionality, while White Box ensures correctness of logic. Together, they
provide complete software quality assurance.

2. Software Testing Techniques

Testing techniques are systematic methods used to design test cases efficiently. They help
reduce redundant testing while ensuring maximum defect detection.

Equivalence Partitioning (EP)


This technique divides input data into different groups or partitions such that each group is
expected to behave similarly. Instead of testing every value, one representative value from each
partition is tested.

• Partitions are classified as:

o Valid partition

o Invalid partition

Example:
If a system accepts age between 18 and 60:

• Valid partition: 18–60 → test 30

• Invalid partitions:

o Below 18 → test 15

o Above 60 → test 70

This reduces the number of test cases significantly.

Boundary Value Analysis (BVA)

This technique focuses on testing the boundary values of input ranges, as errors often occur at
edges.

• Test values include:

o Minimum

o Maximum

o Just below minimum

o Just above maximum

Example:
Range: 1–100
Test cases: 0, 1, 100, 101

BVA is often used with equivalence partitioning for better coverage.

Decision Table Testing


Used when multiple conditions affect outcomes. It represents conditions and corresponding
actions in a tabular form.

Example: Loan Approval System

Income Credit Score Decision

High Good Approve

Low Poor Reject

Helps test complex business logic systematically.

3. Test Case Design and Development

Test case design is a crucial activity in software testing that ensures all functionalities are
verified systematically. It involves translating requirements into testable conditions.

Process of Test Case Design:

1. Analyze requirements carefully

2. Identify test scenarios

3. Design test cases with inputs and expected outputs

4. Review and refine test cases

5. Execute and record results

Characteristics of Effective Test Cases:

• Clear and easy to understand

• Covers both positive and negative scenarios

• Reusable and maintainable

• Accurate and complete

• Independent of other test cases

Example Test Case:


• Test Case ID: TC_Login_01

• Objective: Verify login functionality

• Input: Valid username and password

• Expected Result: User successfully logged in

• Actual Result: Matches expected → Pass

Good test case design improves efficiency, reduces defects, and ensures better software
quality.

4. Bug (Defect) Life Cycle

The bug life cycle defines the stages a defect goes through from identification to closure. It
ensures systematic handling and tracking of defects.

Stages:

• New: Bug is identified and reported

• Assigned: Assigned to developer

• Open: Developer starts working

• Fixed: Bug is resolved

• Retest: Tester verifies fix

• Closed: Bug is successfully fixed

Sometimes additional states exist:

• Reopened (if issue persists)

• Deferred (postponed)

Importance:

• Ensures no bug is ignored

• Improves communication between teams

• Tracks progress and accountability


• Enhances product quality

5. Test Reporting

Test reporting is the process of documenting testing activities, results, and observations. It
provides stakeholders with insights into product quality and testing progress.

Components of Test Report:

• Test summary (total, passed, failed)

• Defect details and severity

• Test execution status

• Environment details

• Recommendations

Example:

• Total test cases: 150

• Passed: 140

• Failed: 10

• Critical bugs: 2

Importance:

• Helps management make release decisions

• Improves transparency

• Tracks testing progress

6. Test Drivers and Stubs

During integration testing, some modules may not be ready. To handle this, testers use drivers
and stubs.

• Test Driver: Simulates higher-level modules and calls lower modules


• Test Stub: Simulates lower-level modules

Example:

• If database is not ready → use stub

• If UI is not ready → use driver

These allow early testing of incomplete systems.

7. Test Suites

A test suite is a collection of multiple test cases grouped together to test a particular
functionality or module.

Types:

• Functional test suite

• Regression test suite

• Smoke test suite

Benefits:

• Organized execution

• Easy maintenance

• Supports automation

• Improves efficiency

8. Test Scripts using Selenium/Jest

Test scripts automate test case execution.

Steps:

1. Install tool (Selenium/Jest)

2. Write test scripts


3. Execute scripts

4. Analyze results

Example (Selenium):

• Open browser

• Navigate to URL

• Enter login details

• Click login

• Verify dashboard

Advantages:

• Saves time

• Reduces human error

• Supports regression testing

9. Manual vs Automated Testing

Testing can be done manually or using automation tools.

Manual Testing:

• Performed by testers manually

• Suitable for exploratory and usability testing

• Flexible but time-consuming

Automated Testing:

• Uses tools/scripts

• Fast, repeatable, and accurate

• High initial cost


Comparison:

Manual Automated

Slow Fast

Flexible Less flexible

Low cost High setup cost

Best practice: Use both methods where appropriate.

10. Complete Testing Strategy

A testing strategy defines the overall approach to testing in a project.

Steps:

• Test planning

• Test case design

• Automation setup

• Execution

• Reporting

Example:

E-commerce system testing:

• Login

• Product search

• Add to cart

• Payment
A good strategy ensures quality, coverage, and efficiency.

11. Levels of Testing

Software testing is performed at different levels to ensure quality at every stage of


development. Each level focuses on a specific part of the system and helps detect defects early.

Types of Testing Levels:

1. Unit Testing
This is the first level of testing where individual components or functions are tested in isolation.

• Performed by developers

• Focuses on small units of code

• Example: Testing a function that calculates total price

2. Integration Testing
After unit testing, multiple modules are combined and tested together.

• Checks interaction between modules

• Detects interface errors

Example:
Testing login module with database connection

3. System Testing
At this level, the complete system is tested as a whole.

• Validates system requirements

• Performed in a real-like environment

Example:
Testing full e-commerce application
4. Acceptance Testing
Final level where the system is tested by users or clients.

• Ensures system meets business requirements

• Determines readiness for release

These levels ensure that errors are detected at different stages, reducing cost and improving
quality.

12. Test Planning

Test planning is the foundation of the testing process. It defines the scope, objectives, and
approach for testing activities.

Key Components of a Test Plan:

• Test objectives

• Scope of testing

• Resources (team, tools)

• Schedule and timeline

• Risk analysis

• Test strategy

Importance of Test Planning:

• Provides clear direction

• Avoids confusion and delays

• Ensures efficient resource utilization

• Improves overall testing quality

A well-prepared test plan leads to successful project execution.

13. Boundary Value Analysis (Detailed)


Boundary Value Analysis (BVA) is a technique used to test the extreme values of input ranges, as
most errors occur at boundaries.

Key Idea:

Instead of testing all values, focus on edge values.

Types of Boundaries:

• Minimum value

• Maximum value

• Just below minimum

• Just above maximum

Example:

If input range is 10–50:

• Test values: 9, 10, 50, 51

Advantages:

• Efficient and effective

• Detects boundary-related errors

• Reduces test cases

Widely used in real-world applications like form validation.

14. Equivalence Partitioning (Detailed)

Equivalence Partitioning is a technique that divides input data into groups where each group
behaves similarly.

Concept:

• Valid partitions

• Invalid partitions
Example:

Password length (8–16):

• Valid: 10

• Invalid: 5, 20

Benefits:

• Reduces number of test cases

• Saves time and effort

• Ensures coverage of all input types

Often used together with Boundary Value Analysis.

15. Regression Testing

Regression testing ensures that changes or updates in the code do not affect existing
functionality.

When it is performed:

• After bug fixes

• After new feature addition

• After system updates

Importance:

• Prevents new bugs

• Maintains system stability

• Ensures existing features work correctly

Role of Automation:
• Speeds up testing

• Allows frequent execution

• Improves accuracy

Regression testing is critical in large projects.

16. Smoke Testing vs Sanity Testing

Both smoke and sanity testing are quick testing methods but serve different purposes.

Smoke Testing:

• Basic functionality check

• Performed on new build

• Ensures system is stable for further testing

Example:
Check if application opens and login works

Sanity Testing:

• Focused testing of specific functionality

• Performed after minor changes

Example:
Check login feature after bug fix

Difference:

• Smoke → Broad

• Sanity → Narrow and focused

17. Test Coverage

Test coverage measures how much of the code or functionality is tested.


Types:

• Statement coverage

• Branch coverage

• Path coverage

Importance:

• Identifies untested areas

• Improves quality

• Reduces risk

How to Improve:

• Write more test cases

• Use automation tools

• Review test cases

Higher coverage means better reliability.

18. Challenges in Automated Testing

Automated testing provides many benefits but also comes with challenges.

Challenges:

• High initial cost

• Script maintenance

• Tool limitations

• Requires skilled testers

Solutions:

• Use proper frameworks


• Regularly update scripts

• Train team members

Proper planning reduces automation challenges.

19. Continuous Integration (CI) and Testing

Continuous Integration (CI) is a development practice where code changes are integrated
frequently and tested automatically.

Workflow:

1. Developer commits code

2. Build process starts

3. Automated tests run

4. Results are reported

Benefits:

• Early bug detection

• Faster development

• Improved collaboration

Example Tools:

• GitHub Actions

• Jenkins

CI ensures continuous quality improvement.

20. Assertions in Unit Testing

Assertions are statements used to verify expected outcomes in test cases.

Common Assertions:
• assertEqual()

• assertTrue()

• assertFalse()

Example:

If sum(2,3) = 5

• assertEqual(5, result)

Importance:

• Validates correctness

• Detects errors automatically

• Improves reliability

21. Error Handling in Automated Test Scripts

Error handling ensures that test scripts do not crash and can handle failures properly.

Techniques:

• Try-catch blocks

• Logging errors

• Retry mechanisms

Benefits:

• Improves script stability

• Helps debugging

• Ensures smooth execution

Essential for large automation projects.


22. Data-Driven and Keyword-Driven Testing

These are advanced automation testing approaches.

Data-Driven Testing:

• Uses multiple input datasets

• Same test logic, different data

Example:
Testing login with multiple usernames/passwords

Keyword-Driven Testing:

• Uses predefined keywords (actions)

• Non-programmers can write tests

Example Keywords:

• Click

• Enter

• Verify

Both improve reusability and efficiency.

23. Test Environment and Test Data

Testing requires a proper environment and accurate data.

Test Environment:

• Hardware, software, network setup

• Should simulate real system

Test Data:

• Input values used for testing


• Should cover all scenarios

Importance:

• Ensures realistic testing

• Improves accuracy

• Detects real-world issues

24. Performance Testing vs Functional Testing

These are two important types of testing with different goals.

Functional Testing:

• Verifies system functionality

• Checks if features work correctly

Example:
Login feature works properly

Performance Testing:

• Measures system speed and stability

• Tests under load

Example:
How system behaves with 1000 users

Difference:

Functional Performance

What system does How system performs

Feature-based Speed/load-based

You might also like