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

Unit 4-Session 3

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)
23 views19 pages

Unit 4-Session 3

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/ 19

Testing Mechanisms

Across life cycle


What is Testing
• Testing, in the context of software development
• is the process of evaluating a software application or system to assess its
quality, functionality, performance, and other relevant attributes.
• It involves executing the software with the intent of finding defects or
verifying that it meets specified requirements.
• Testing is a critical aspect of the software development life cycle
(SDLC) and is conducted at various stages to ensure the delivery of a
high-quality and reliable product.
key aspects of testing
• Quality Assurance (QA): Testing is an essential component of QA
processes, ensuring that software products meet quality standards
and conform to requirements.
• Defect Detection: Testing aims to uncover defects or bugs in the
software, such as errors in functionality, performance issues, security
vulnerabilities, or usability problems.
• Verification and Validation: Testing verifies that the software
functions as intended (verification) and validates that it meets the
user's requirements (validation).
Verification
• Definition: Verification focuses on evaluating whether the software product
meets the specified requirements and adheres to its design and development
standards.
• Purpose: The primary goal of verification is to ensure that the software is
being built correctly, according to the defined specifications and standards.
• Activities: Verification activities include reviews, inspections, walkthroughs,
and static analysis techniques. These activities are typically conducted during
the early stages of the software development life cycle (SDLC) before coding or
implementation begins.
• Key Questions: Is the software being built right? Does it conform to the
requirements and design specifications? Are coding standards being followed?
Validation
• Definition: Validation focuses on assessing whether the software product
meets the customer's or user's expectations and needs.
• Purpose: The primary goal of validation is to ensure that the software is
fulfilling its intended purpose in the real-world context and delivering value to
the end-users.
• Activities: Validation activities include testing the software against user
requirements, conducting user acceptance testing (UAT), and evaluating the
software's performance, usability, and functionality in real or simulated
environments.
• Key Questions: Is the right software being built? Does it meet the user's
needs and expectations? Does it perform as intended in real-world scenarios?
key aspects of testing
Contd..
• Risk Mitigation: Testing helps identify and mitigate risks associated with software
development, reducing the likelihood of critical failures or issues in production
environments.
• Feedback Mechanism: Testing provides valuable feedback to developers, allowing them to
identify and fix defects, improve software quality, and enhance user satisfaction.
• Types of Testing: There are various types of testing, including functional testing, non-
functional testing (such as performance testing, security testing, and usability testing),
integration testing, system testing, regression testing, and user acceptance testing (UAT),
among others. Each type of testing focuses on specific aspects of the software's behavior
and performance.
• Testing Techniques: Testing employs a variety of techniques and methodologies, such as
black-box testing, white-box testing, grey-box testing, exploratory testing, and automated
testing. These techniques help testers design test cases, execute tests, and analyze results
effectively.
Testing mechanisms
• Testing mechanisms are crucial components of software development
processes
• Which ensures that software products meet quality standards and
perform as expected.
• In coming slides you will see detailed explanation of various testing
mechanisms across the software development life cycle (SDLC) along
with testing tools commonly used in each phase
Functional Testing
• Definition: Functional testing verifies that each function of the software
application operates in conformance with the requirement specifications. It
focuses on what the system does.
• Approach: Test cases are designed based on the functional specifications or user
stories. These tests validate the system's behavior against expected outcomes.
• Types of Functional Testing: Unit Testing, Integration Testing, System Testing,
Acceptance Testing.
• Tools:
• JUnit: for Java applications.
• NUnit: for .NET applications.
• Selenium: for web application testing.
• TestNG: for testing Java applications.
Unit testing
• Unit testing is a software testing technique where individual units or
components of a software application are tested independently to
ensure they function correctly in isolation.
• A unit is the smallest testable part of an application, typically a
function, method, or class.
• Here's an example of unit testing in a Java application using JUnit, a
popular unit testing framework:
• Suppose we have a simple Java class named Calculator with a method add
that adds two numbers
Integration testing
• Integration testing is a software testing technique used to verify the
interaction between different components or modules of a software
system.
• It ensures that these components work together correctly when
integrated.
• Integration testing focuses on testing the interfaces and interactions
between components rather than the individual components
themselves.
• Here's a simple example of integration testing in a Java application with two
classes: Calculator and Logger. Suppose the Calculator class performs
arithmetic operations, and the Logger class logs messages.
System testing
• In functional testing, system testing refers to the evaluation of the entire software
system to ensure that it performs according to its functional requirements. It
focuses on testing the system as a whole, including all integrated components and
features, to verify that it meets the specified functional specifications.
• Here's a simple example of system testing in functional testing:
• Consider a web-based email application with various functionalities such as
composing emails, sending emails, receiving emails, and managing the inbox.
System testing for this application would involve testing all these functionalities
together to ensure they work as intended.
• Example Test Scenario: Sending an Email
• Test Case: Verify that a user can compose and send an email successfully.
Test Steps
• Pre-condition: The user is logged in to their email account.
• Navigate to the "Compose" section of the email application.
• Enter the recipient's email address, subject, and message content.
• Click on the "Send" button.
• Wait for the email to be sent.
• Check the sent items folder or verify with the recipient that they received the email.
• Expected Result: The email should be sent successfully, and it should appear in the
sent items folder. The recipient should receive the email without any errors.
• During system testing, this test scenario would be executed along with other similar
scenarios to validate the entire email system's functionality, including composing,
sending, receiving, and managing emails. The objective is to ensure that the email
application performs as expected in real-world usage scenarios and meets the users'
needs and expectations.
Acceptance testing,
• Acceptance testing, also known as user acceptance testing (UAT), is a type of
functional testing that validates whether a software system meets the
business requirements and is acceptable for delivery to the end-users.
• It involves executing test scenarios that simulate real-world usage by end-
users to ensure that the software meets their needs, expectations, and
business objectives.
• Here's a simple example of acceptance testing in functional testing:
• Consider a web-based banking application developed for a financial institution. The
acceptance testing for this application would involve validating various features and
functionalities to ensure they align with the business requirements and meet the
expectations of bank customers.
• Example Test Scenario: Online Bill Payment
Test Case: Verify that a user can successfully pay a utility bill through the online banking
system.

Test Steps
• Pre-condition: The user is logged in to their online banking account.
• Navigate to the "Bill Payment" section of the banking application.
• Select the utility bill payment option (e.g., electricity, water, phone).
• Enter the bill details (e.g., account number, payment amount, payment date).
• Click on the "Pay Now" button.
• Confirm the payment details and authorize the payment.
• Wait for the payment confirmation message.
• Check the transaction history or verify with the utility provider that the payment was processed
successfully.
• Expected Result: The payment should be processed successfully, and the user should receive a
confirmation message indicating that the bill payment was successful. The transaction should also
be recorded in the user's transaction history.
System Integration Testing
• Definition: System integration testing validates interactions between
various integrated systems or modules.
• Process:
• Identify interfaces and interactions between system components.
• Develop test cases to verify data flow, communication, and
functionality across interfaces.
• Execute test cases to ensure seamless integration and interoperability.
Examples

• Examples
• Testing the interaction between a customer relationship management (CRM)
system and an email marketing platform.
• Verifying data synchronization between a front-end web application and a
back-end database.
User Testing
• Definition: User testing involves evaluating the software from an end-
user perspective to ensure usability, accessibility, and user
satisfaction.
• Types
• Alpha Testing: Conducted by internal users or developers before the software
release.
• Beta Testing: Involves real-world users testing the software in a live
environment before the final release.
• Acceptance Testing: Performed by end-users to validate whether the software
meets business requirements.
Examples:
• Alpha Testing: Developers testing a new feature internally before
releasing it to a wider audience.
• Beta Testing: Inviting a group of external users to test a mobile
application and provide feedback before its official launch.
• Acceptance Testing: Business stakeholders testing a web application
to ensure it meets their functional and non-functional requirements.
Conclusion
• Functional testing ensures each function operates as expected.
• System integration testing validates interactions between integrated
systems.
• User testing focuses on evaluating the software from an end-user
perspective to ensure usability and satisfaction.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy