0% found this document useful (0 votes)
6 views

SE Week5

The document discusses the importance of software testing, highlighting its necessity to prevent failures and ensure reliability, as illustrated by historical software failures. It outlines various types of testing, including manual vs. automated, white box vs. black box, and functional vs. non-functional testing, along with their goals and examples. Additionally, it covers different levels of testing, such as unit, integration, system, and acceptance testing, emphasizing their roles in validating software before release.

Uploaded by

nargisniazzz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

SE Week5

The document discusses the importance of software testing, highlighting its necessity to prevent failures and ensure reliability, as illustrated by historical software failures. It outlines various types of testing, including manual vs. automated, white box vs. black box, and functional vs. non-functional testing, along with their goals and examples. Additionally, it covers different levels of testing, such as unit, integration, system, and acceptance testing, emphasizing their roles in validating software before release.

Uploaded by

nargisniazzz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 33

Software Engineering I

Week 4
Lecturer: Zia ur Rehman
Software Testing
 Imagine a car factory where each car is tested for brakes, lights,
and airbags before being sold. Similarly, software must be tested
before release to ensure it works correctly.

What happens if the software is released without testing?


 Ariane 5 Rocket Explosion (1996) – A software bug caused a $370
million loss.
 Windows Blue Screen of Death (BSOD) – A bug in updates caused
system crashes.

 Testing prevents failures, saves money, and ensures reliability.


Types of Software Testing
Types of Testing
 Manual vs. Automated Testing
 Manual Testing: A human tester runs the tests manually.
 A tester manually clicks all buttons in an e-commerce app to
check if they work.
 tester manually navigating through a website, clicking on
different links, and verifying if the correct pages load and
information displays
 Automated Testing: Performed using automation tools & scripts
 An automated tool (like Selenium) tests a website’s login page
repeatedly.
 Using Selenium to auto-fill and submit forms in a student grading
system
Types of Manual Testing
Types of Manual Testing
 White Box Testing
 Black Box Testing
 White Box Testing
 involves testing the internal structure and workings of a
software application. The tester has access to the source code
and uses this knowledge to design test cases that can verify the
correctness of the software at the code level.
Focus: Code logic, security, and structure
Example:
• A tester checks if a "login function" correctly encrypts user
passwords before storing them in the database.
• Testing "if-else" conditions in a tax calculation system to ensure
correct tax rates are applied based on income.
 Black Box Testing
The tester doesn’t need to know the internal code structure.
Instead, they test how the system behaves based on inputs and
expected outputs.
Goal: To check if the software meets user requirements.
Focus: Functionality & user behavior
Examples:
 A tester enters invalid credentials on a banking app’s login page
to see if an appropriate error message appears.
 In an e-commerce website, testing whether clicking "Add to
Cart" actually adds the selected product.
Types of Testing
 Functional vs. Non-Functional Testing
 Functional Testing – Checks if the software works as expected.
Example:
 Testing whether a banking app correctly transfers money.
 A tester adds an item to the cart and checks if the total price
updates correctly.
 Non-Functional Testing – Checks performance, security, and
usability.
Example:
 Measuring how fast a website loads under heavy traffic.
 Ensures that multi-factor authentication (MFA) works
properly.
Levels of Testing
1. Unit Testing: Testing individual components (e.g., functions,
methods) in isolation.
Goal: Ensure each piece works correctly alone.
Example:
Test a calculateGrade() function:
Input: Student marks = 85 → Expected Output: Grade "A".
2. Integration Testing: Testing interactions between integrated
components/modules.
Goal: Ensure combined parts work together.
Example:
 Checking if an e-commerce app’s payment system correctly
connects with the bank’s server.
 Test if a login module interacts correctly with the database:
Input: Valid username/password → Database returns user details.
3. System Testing: Testing the complete system end-to-end.
Goal: Validate the system meets all requirements.
Example:
 Running the full banking app to check if all features work.
 Test a student portal from login → course registration → fee
payment.
4. Acceptance Testing: Final testing by end-users to confirm
readiness for release.
Goal: Ensure the system meets user needs.
Example:
 A company tests a CRM system before final approval.
 Beta Testing: Students use a new exam scheduling app to check
usability and report issues.
Alpha / Beta Testing
.

You might also like