0% found this document useful (0 votes)
0 views11 pages

ST Unit 4

The document discusses maintenance testing, impact analysis, and regression testing, emphasizing their importance in ensuring software stability and reliability post-deployment. It also covers the Selenium automation testing suite, detailing its components like Selenium IDE, RC, Grid, and WebDriver, along with their features, advantages, and limitations. Additionally, it introduces automation frameworks like Robot Framework, Cypress, and Appium, as well as configuration management tools such as SVN and Git.

Uploaded by

sshreenidhi23
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)
0 views11 pages

ST Unit 4

The document discusses maintenance testing, impact analysis, and regression testing, emphasizing their importance in ensuring software stability and reliability post-deployment. It also covers the Selenium automation testing suite, detailing its components like Selenium IDE, RC, Grid, and WebDriver, along with their features, advantages, and limitations. Additionally, it introduces automation frameworks like Robot Framework, Cypress, and Appium, as well as configuration management tools such as SVN and Git.

Uploaded by

sshreenidhi23
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

SOFTWARE TESTING BCA IV SEM

UNIT IV
Maintenance Testing
Maintenance testing is a critical, post-deployment process that validates software modifications,
including bug fixes, environmental updates, and enhancements. It ensures that changes do not
break existing functionality through regression testing and confirms new changes work as
expected, maintaining system stability, reliability, and security throughout its lifecycle.
Impact Analysis
Impact analysis in maintenance testing is the process of evaluating the potential consequences of
changes (bug fixes, enhancements, or updates) to a software system, identifying affected areas,
and determining the necessary regression testing scope. It reduces testing time and resources by
focusing only on impacted components.
Key Aspects of Impact Analysis in Maintenance Testing:
Purpose: The primary goal is to assess the risk and scope of changes before implementation,
ensuring high-quality, efficient updates.
Process: It involves analyzing affected components, updating test documentation, and selecting a
targeted subset of test cases for regression testing.
Benefits: This technique enhances efficiency, reduces the time spent on redundant testing, and
ensures faster development cycles. It also facilitates better coordination and communication
between QA and development teams.
Types of Changes: Impact analysis covers functional and non-functional areas, including code
changes, requirement updates, and configuration modifications.
Components: It involves examining the ripple effects of a change on dependent systems or
modules.

Regression Testing
Regression Testing involves re-executing a previously created test suite to verify that recent code
changes haven't caused new issues. This verifies that updates, bug fixes, or enhancements do not
break the functionality of the application.
When to do Regression Testing?
Regression testing is necessary in several scenarios to maintain software quality:
 When new functionality is added to the system and the code has been modified to absorb and
integrate that functionality with the existing code.
 When some defect has been identified in the software and the code is debugged to fix it.
 When the code is modified to optimize it’s working.

pg. 1
SOFTWARE TESTING BCA IV SEM

Process of Regression Testing

Identify Code Changes: Analyze the source code to determine which areas have been modified,
such as new features, bug fixes, or optimizations.
Debug and Fix Failures: If existing test cases fail due to changes, debug the code to identify and
resolve defects.
Modify Code: Apply necessary updates to the code to incorporate changes or fixes.
Select Test Cases: Choose relevant test cases from the existing test suite that cover modified and
affected areas. Add new test cases if needed to address new functionality.
Execute Regression Tests: Run the selected test cases, either manually or using automated tools,
to verify system behavior.
Analyze Results: Review test outcomes to identify regressions, document issues, and recommend
fixes.
Retest as Needed: If defects are found, fix them and re-run tests to confirm resolution.
For Types of Regression, advantages and disadvantages refer unit 3

pg. 2
SOFTWARE TESTING BCA IV SEM

Automation:
Selenium Suite
Selenium is an open-source automation testing tool suite designed to automate web
applications for testing purposes.

Components of the Selenium Tool Suite


1. Selenium IDE (Integrated Development Environment)
Selenium IDE is a browser extension that is available to install for the most popular browsers like
Chrome, Firefox, and Edge. It lets testers record their interactions with the browser or web
application and save them to create test cases. These test cases can be shared with others, or the
tester/developer can export them into preferred programming languages such as Java, Python, C#,
Ruby, JavaScript, etc.
Benefits of Selenium IDE:
 User-Friendly Interface: One of the biggest advantages of Selenium IDE is its very
simple and easy-to-use interface. It helps beginners or people who are not familiar
with programming languages to create and run test cases quickly using the recorded
actions.
 Record and Playback: Testers can record their actions on the browser and web page
elements, then play them back anytime. This makes it very easy to build test cases
with almost no extra effort.
 Cross-Browser Compatibility and Exporting Scripts: The recorded scripts can be
run or exported to different browsers without big changes—just import and export.
Testers can also convert these scripts into code for their favorite programming
language when needed.
Limitations of Selenium IDE:
 Functionality is Limited: Compared to other Selenium tools, Selenium IDE has
fewer advanced features.
 Challenges with Dynamic Elements: It can sometimes have issues handling highly
dynamic elements or very complex web pages (though recent updates and plugins
help improve this a lot).
 Only for Web Applications: Selenium IDE works only with web applications in
browsers.
 Lack of Full Framework Support: It is not suitable for building large-scale test
automation frameworks needed for big projects.

Selenium RC
Selenium Remote Control (RC) was one of the earliest Selenium tools, preceding WebDriver. It
allowed testers to write automated web application tests in various programming languages like
Java, C#, Python, etc.
 The key feature of Selenium RC was its ability to interact with web browsers using a server,
which acted as an intermediary between the testing code and the browser.

pg. 3
SOFTWARE TESTING BCA IV SEM

Client Libraries: Testers wrote their test scripts using Selenium RC's client libraries in their
preferred programming language. These libraries provided commands to interact with web
elements like buttons, links, forms, etc.

Selenium RC Server: A Selenium RC server was required to run the tests. Test scripts
communicated with this server using HTTP commands. The server acted as a proxy, translating
these commands into actions performed by the web browser.

Web Browser Interaction: The Selenium RC server launched a browser instance (like Firefox,
Chrome, etc.) based on the specified configuration. It then injected a JavaScript program called
Selenium Core into the browser.

Execution: When a test script ran, Selenium Core interpreted the commands sent by the server
and executed corresponding actions in the browser, such as clicking a button, entering text into
a field, verifying page elements, etc.

Reporting and Validation: Selenium RC provided features for reporting test results and
validating expected outcomes, allowing testers to analyze test execution and identify any issues
or failures.

Limitations of Selenium RC
JavaScript Injection: Selenium RC relied on injecting a JavaScript program called Selenium
Core into the browser. This approach introduced complexities and potential compatibility issues
with different browser versions and configurations.
Single Execution Thread: Selenium RC executed test scripts in a single execution thread, which
could lead to slower test execution, especially when dealing with multiple browser interactions
or complex test scenarios.
pg. 4
SOFTWARE TESTING BCA IV SEM

Dependence on Selenium Server: Selenium RC required a Selenium server to be running during


test execution. This added an extra layer of complexity to test setup and maintenance, as testers
had to manage the server alongside their testing environments.

Limited Browser Support: Selenium RC's support for newer browser versions and technologies
was limited. It struggled to keep pace with rapid browser updates and often encountered
compatibility issues, leading to unreliable test results.

3. Selenium Grid
Selenium Grid is a tool that allows parallel execution of test scripts across different browsers,
versions, and platforms at the same time. It is perfect for distributed testing and helps testers
save a lot of time by running many tests together.
There are mainly two parts in a Selenium Grid:
 Hub: It acts as the central point. It receives test requests, distributes them to the right
nodes, tracks results, and manages everything.
 Node: Nodes are the machines (or containers) where the actual browsers run the test
cases.

Advantages of Selenium Grid


Selenium Grid is used popularly for cross browser testing and to execute tests in different
browsers, instances, devices, and platforms.
 Thus, the Selenium Grid gives the opportunity to see how the application under test
responds to a wide range of browsers, platforms, and device combinations.
 Since tests can be triggered with parallel threads the entire test suite is executed
completely with a short test cycle.
 Since the test cycles are shorter, Selenium Grid gives quicker results to the project
stakeholders and to conclude how the application is developed.
 Selenium Grid test cases are flexible, easy to maintain, scalable, and give better test
coverage within a short time.

4. Selenium WebDriver
Selenium WebDriver is a core component of the Selenium suite, widely used for browser
automation testing. It allows direct communication with browsers by leveraging their native
APIs, making test execution faster, more reliable, and more efficient compared to older tools
like Selenium RC.

pg. 5
SOFTWARE TESTING BCA IV SEM

Features of Selenium WebDriver


1. Direct Browser Control
Selenium WebDriver interacts directly with browsers via browser-specific drivers, such as
ChromeDriver for Chrome and GeckoDriver for Firefox. This eliminates the need for an
intermediate server, ensuring faster and more stable test execution.
 Test scripts are converted into browser-understandable commands through the browser driver.
 This direct communication improves performance and reliability.

2. Multi-Language Support
WebDriver supports multiple programming languages, including: Java, Python, C#, JavaScript
This flexibility allows developers to use languages they are already proficient in, making Selenium
highly adaptable across diverse teams.

3. Cross-Browser Compatibility
Scripts written for one browser can be executed on others with minimal adjustments. Supported
browsers include: Chrome, Firefox, Edge, Safari, Opera
WebDriver ensures consistent testing experiences across different browsers and platforms.

4. No Server Dependency
Unlike Selenium RC, WebDriver does not require a server to run tests. Commands are sent directly
to the browser, simplifying the architecture and increasing test execution speed.

5. Advanced User Actions


Selenium WebDriver supports complex user interactions, such as: Drag-and-drop, Mouse hover,
Keyboard actions (e.g., key press simulations).

Advantages of Selenium WebDriver


1. Speed and Efficiency
No intermediate server speeds up test execution.
Direct browser communication ensures real-time interactions.
2. Scalability
Selenium WebDriver can be extended with Selenium Grid to perform parallel execution and
distributed testing.
Ideal for testing large applications across multiple environments.
3. Customization and Extensibility

pg. 6
SOFTWARE TESTING BCA IV SEM

Integrates seamlessly with testing frameworks like JUnit, TestNG, and build tools such as Maven.
Allows integration with external libraries to enhance test reporting and debugging.
4. Cross-Platform and Multi-Browser Support
Supports Windows, macOS, and Linux.
Automates all major browsers, ensuring tests run consistently across different environments.
5. Open Source and Cost-Effective
WebDriver is an open-source tool, making it accessible to organizations of all sizes. Its large
community ensures robust support and regular updates.

Limitations of Selenium WebDriver


1. Requires Programming Skills
Testers must have coding knowledge to write scripts, making it less accessible to non-technical
users.
2. Debugging Challenges
Large test suites can become complex, and debugging failures might require significant effort.

Selenium Architecture

OR

pg. 7
SOFTWARE TESTING BCA IV SEM

Selenium Client Library: This component provides language-specific bindings or APIs that allow
users to write test scripts and interact with the WebDriver.
JSON Wire Protocol: The JSON Wire Protocol is a standardized protocol used for
communication between the Selenium Client Library and the Browser Drivers.
(JSON (JavaScript Object Notation) is a lightweight, text-based, and human-readable format for
storing and exchanging data)
Browser Drivers: These are executable files that establish a communication channel between
the WebDriver and the actual web browsers, such as Chrome, Firefox, Safari, etc. Each browser
requires its specific driver, like ChromeDriver, GeckoDriver, to enable WebDriver to control and
automate browser actions.
Real Browsers: These are web browsers like Google Chrome, Mozilla Firefox, Microsoft
Edge, etc., where the actual testing and automation take place. The WebDriver interacts with
these browsers through their respective browser drivers to perform actions like clicking elements,
filling forms, navigating pages, and validating content.
Automation Framework
An automation framework is a structured set of guidelines, coding standards, tools, and practices
designed to streamline software testing or repetitive tasks. It improves efficiency, code reusability,
and test maintenance while reducing manual intervention.
Robot Framework
Robot Framework is a generic open-source test automation framework that provides an easy-to-
use, keyword-driven approach to automation.

pg. 8
SOFTWARE TESTING BCA IV SEM

 It is written in Python and allows users to create high-level test cases that can be easily
translated into machine-executable automation scripts.
 The framework has a rich set of libraries and tools that allow it to be used for various types
of testing, including acceptance testing, functional testing, and unit testing.
Key Characteristics
 Keyword-Driven Testing: Uses a human-friendly, tabular syntax where actions are defined
by "keywords" (e.g., Open Browser, Click Button), making it accessible to non-programmers.
 Highly Extensible: Can be extended with libraries written in Python or Java to support diverse
technologies.
 Detailed Reporting: Automatically generates high-level HTML reports ([Link]) and
detailed execution logs ([Link]) for every run.
 Versatile Support: Supports various methodologies including Acceptance Test-Driven
Development (ATDD), Behavior-Driven Development (BDD), and Data-Driven Testing.
Different types of testing supported by Robot Framework:
Acceptance Testing, Regression Testing, Functional Testing, Integration Testing.

Cypress Automation Framework


Cypress is a modern, open-source JavaScript-based automation framework designed
primarily for end-to-end (E2E), integration, and unit testing of web applications. Unlike
traditional tools like Selenium, Cypress operates directly within the browser, executing in the same
run-loop as the application being tested.
Key Characteristics
Time-Travel Debugging: The Cypress Test Runner takes snapshots as tests run, allowing you to
hover over commands in the log to see exactly what happened at each step.
Automatic Waiting: It automatically waits for commands and assertions before moving on,
eliminating the need for manual "sleeps" or "waits".
Real-Time Reloads: Tests automatically reload and rerun whenever changes are made to the test
code.
Cross-Browser Support: Supports Chromium-based browsers (Chrome, Edge, Brave), Firefox,
and Electron

Appium
Appium is an open-source, cross-platform test automation framework for native, hybrid, and
mobile web apps, supporting iOS, Android, and Windows. It uses the WebDriver protocol to drive
app UIs, allowing testers to use a single script across multiple platforms using languages like Java,
Python, and JavaScript.
Key Components of an Appium Framework
Appium Server: Manages the communication between the test script and the mobile device.
Client Libraries: Language-specific libraries (Java, Python, JS) to interact with Appium.
Key Advantages
Cross-Platform: Write once, run on both Android and iOS.

pg. 9
SOFTWARE TESTING BCA IV SEM

Flexibility: Supports multiple programming languages and testing frameworks (TestNG, JUnit,
PyTest).

Configuration Management tools


Configuration management tools can help you to track and manage changes to systems within your
infrastructure, making sure that your software and hardware runs reliably and smoothly.
SVN
Apache Subversion which is often abbreviated as SVN, is a software versioning and revision
control system distributed under an open-source license.
Version Control System (VCS) is a software that helps software developers to work together and
maintain a complete history of their work.
For Subversion to work, the SVN setup needs two main elements:
 The server, which has all versions of all source files
 A local copy of the files, which is on your computer

Features
 Centralized Version Control: Stores all files and their history in a central repository, ensuring
everyone works on the latest version.
 Atomic Commits: Applies all changes in a commit together or not at all, avoiding
inconsistencies.
The files on your computer are called working files. These are the files in which each user makes
edits. Then, users commit their changes to the SVN server.
 Each time a user commits a change, SVN manages and records it by creating a new version.

Git
Git is a tool used to keep track of changes to files, especially the code of the projects. It is termed
a distributed version control system because of its behaviour to allow multiple people to work on
the same project, even if they are not connected to a common server.
Features of Git
Version Control System: Git keeps track of every change you make to your project files. You can
go back to previous versions is any requirement arises.
Repositories: A Git repository (or repo) is like a project's central hub where everything related to
your work is stored and managed. There are two main types:
 Local Repository: This is a copy of the repository which is stored in your computer. You
can work on your project and make changes here.
 Remote Repository: This is stored on a server, like GitHub, where you and others can
share and work on a project.
Commits: Every time you make changes and save them in Git, these are called commits. The
repository keeps track of all the commits you have made.

pg. 10
SOFTWARE TESTING BCA IV SEM

Cloning: Cloning is a process of making a complete copy of Git repository. It's like copying the
entire project from central location (like website) to your own computer.

GIT SVN

Distributed version control system by Linus Centralized version control system under
Torvalds (2005) Apache license

Git has a Distributed Model. SVN has a Centralized Model.

Single central repository with working


Each user has a full local copy of the repository
copies

Works offline without network Requires network for most operations

pg. 11

You might also like