0% found this document useful (0 votes)
24 views20 pages

Software Quality & Testing Lecture 8

Uploaded by

abhayboodhoo7
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)
24 views20 pages

Software Quality & Testing Lecture 8

Uploaded by

abhayboodhoo7
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
You are on page 1/ 20

SOFTWARE QUALITY &

TESTING
Lecture 8
Mr. Loovesh Ramwodin
University of Technology, Mauritius
Content

▪ Introduction to Shift Left Testing Methodology.


▪ Functional Testing Techniques
▪ Non-Functional Testing Techniques
▪ Pyramid Testing Methodology
Shift- Left Testing

▪ Shift Left Testing is a practice in software development where testing


activities are moved to earlier stages in the development lifecycle.
▪ This approach emphasizes early testing to identify and fix defects as
soon as possible.
▪ This can save time and resources by preventing issues from
propagating to later stages of development.
Key Concept of Shift Left Testing

▪ Early Testing: Initiating testing activities as early as the requirements


and design phases.
▪ Continuous Testing: Integrating testing into the continuous integration
and continuous delivery (CI/CD) pipeline.
▪ Developer Involvement: Encouraging developers to write and execute
tests as they code.
▪ Collaboration: Promoting collaboration between developers, testers,
and other stakeholders from the outset.
Benefits of Shift Left Testing

▪ Early Defect Detection.


▪ Improved Quality
▪ Faster time to Market
▪ Enhanced Collaboration
Quick Revision: Software Testing Lift Cycle- Important

▪ The main stages of the Software Testing Life cycle:


1. Identify Test Requirements
2. Test planning
3. Test Case development
4. Environment Setup
5. Test Execution
6. Test Closure
Functional Testing

▪ Functional testing is concerned with verifying that the software


functions as expected and meets the specified requirements.
▪ It focuses on what the system does.
Types of Functional Testing (1)

▪ Unit Testing: Tests individual components or functions.


▪ Integration Testing: Tests the combination of components to ensure
they work together.
▪ System Testing: Tests the complete system as a whole.
▪ Acceptance Testing: Ensures the software meets the end users
requirements.
Example: Unit Testing

▪ Description: Tests individual components or functions in isolation.


▪ Example: Testing a function that calculates the total price of items in a
shopping cart to ensure it returns the correct total.
▪ Scenario: A developer writes a unit test for a function
‘’calculateTotalPrice(items)’’ to ensure it accurately sums the prices of
items, including applying any discounts.
Example: Integration Testing

▪ Description: Tests the interactions between different components or


systems.
▪ Example: Testing the integration between a payment gateway and an
e-commerce application.
▪ Scenario: After integrating a third-party payment service, an
integration test verifies that payment processing works correctly,
ensuring transactions are successfully completed and recorded.
System Testing

▪ Description: Tests the complete and integrated software system to


ensure it meets the specified requirements.
▪ Example: Testing an entire e-commerce application to ensure all
functionalities (search, add to cart, checkout, user login) work
together.
Acceptance Testing

▪ Description: Validates that the system meets the business


requirements and is ready for delivery to the end user.
▪ Example: User Acceptance Testing (UAT) where end users test the
system to ensure it meets their needs.
Non-Functional Testing

▪ Non-functional testing focuses on how the system performs under


certain conditions, rather than specific behaviors or functions.
Types of Non-Functional Testing

▪ Performance Testing: Assesses the speed, responsiveness, and


stability of the system.
▪ Load Testing: To evaluate the system's performance under expected
normal and peak load conditions.
▪ Stress Testing: Tests the system's limits by pushing it beyond normal
operational capacity.
▪ Usability Testing: Evaluates the user-friendliness of the system.
▪ Security Testing: Identifies vulnerabilities and ensures the system's
data and resources are protected.
The Test Pyramid
Test Pyramid

▪ The test pyramid represents different types of testing, their proposed


share in all of the test cases that you want to run, and their return on
investment (ROI).
▪ The pyramid typically consists of three main layers: unit tests,
integration tests, and end-to-end (or UI/acceptance) tests.
Base of the Pyramid (Unit Tests)

▪ These tests focus on individual components or functions in isolation.


They are small, fast, and cover specific pieces of functionality.
▪ Main objective is to ensure that each unit of code works as expected.
Middle Layer (Integration Tests)

▪ These tests check the interactions between different components or


systems to ensure they work together as expected.
▪ The main objective is to verify that the integration points between
modules or services function correctly.
Top of the Pyramid (End-to-End Tests)

▪ These tests validate the entire application flow from start to finish,
including the user interface, security aspect, etc.
▪ The main objectives is to ensure that the application functions
correctly from the user's perspective.
Questions & Answers

You might also like