0% found this document useful (0 votes)
11 views16 pages

Unit 3 - Test Automation

The document discusses the concept of test automation, highlighting its role in software testing by using specialized tools to execute tests and compare outcomes. It covers various automation tools like Selenium and Appium, the scope of automation in the software development lifecycle, and the benefits of shifting from manual to automated testing. Additionally, it outlines the types of tests suitable for automation and factors to consider when choosing between automated and manual testing methods.

Uploaded by

AKSHAT AMLA
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)
11 views16 pages

Unit 3 - Test Automation

The document discusses the concept of test automation, highlighting its role in software testing by using specialized tools to execute tests and compare outcomes. It covers various automation tools like Selenium and Appium, the scope of automation in the software development lifecycle, and the benefits of shifting from manual to automated testing. Additionally, it outlines the types of tests suitable for automation and factors to consider when choosing between automated and manual testing methods.

Uploaded by

AKSHAT AMLA
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/ 16

SOFTWARE TESTING AND AUTOMATION

COM-702 (B)
B.Tech 7th SEM

Test Automation
2 Test Automation
 Test automation refers to the use of specialized software tools to control the
execution of tests and the comparison of actual outcomes with predicted
outcomes.
 This process automates various tasks in a test case, such as setting up the
test environment, executing the test, checking for exceptions, and
validating the outcomes against expected results.
 Unlike manual testing, where a human is directly involved in carrying out
the tests step by step, test automation relies on pre-written scripts and
frameworks to perform these tasks without human intervention.
 The goal of automation tests is to reduce the number of test cases to be
executed manually but not to eliminate manual testing.
 It is possible to record the test suit and replay it when required.

Test Automation Fundamentals. Unit 3


3 Test Automation Tools
 Selenium: Widely used for automating web browsers. Selenium supports
multiple programming languages and frameworks, making it a versatile
choice for web application testing.
 Appium: An open-source tool for automating mobile apps. It supports
native, hybrid, and web applications across iOS and Android platforms.
 TestComplete: A comprehensive testing tool that supports desktop,
mobile, and web applications. TestComplete allows testers to write tests in
JavaScript, Python, VBScript, and other languages.
 JUnit: A popular framework for writing and running repeatable tests in Java.
It's commonly used for unit testing in Java applications.
 QTP/UFT (Unified Functional Testing): Developed by Micro Focus, UFT is
a widely used tool for functional and regression testing. It supports a variety
of software applications and environments.

Test Automation Fundamentals. Unit 3


4 Scope of Test Automation:
 The scope of test automation extends across the software development
lifecycle, particularly in areas like regression testing, smoke testing,
integration testing, and performance testing.
 It plays a crucial role in continuous integration and continuous
deployment (CI/CD) practices by ensuring that new code changes do not
break or degrade the existing functionality.
 Test automation is pivotal in agile and DevOps environments where rapid
iterations of software versions are common and require frequent testing.
 It allows developers and testers to quickly identify and fix bugs, ensure the
stability of the application, and accelerate the pace of development by
providing immediate feedback on the code changes.

Test Automation Fundamentals. Unit 3


Continuous Integration and Continuous
5
Deployment
 practices used in modern software development to improve the delivery
process, making it more automated, systematic, and reliable.
 These practices are key components of the agile and DevOps philosophy, which
integrates software development (Dev) and IT operations (Ops) to shorten the
development life cycle while delivering features, fixes, and updates frequently
and more reliably.
 Continuous Integration (CI)
 Definition and Purpose: Continuous Integration is the practice of merging all
developers' working copies to a shared mainline several times a day.
 Key Components:
1. Version Control System: All code is stored in a version control system (like
Git), allowing multiple developers to collaborate without overriding each
other's changes.

Test Automation Fundamentals. Unit 3


Continuous Integration and Continuous
6
Deployment
 Automated Build System: An automated system (like Jenkins, Travis CI, or
GitLab CI) builds the software and runs tests every time changes are
committed to the version control repository. This ensures that new code
commits do not break the existing build.
 Automated Testing: As part of the build process, automated tests are run to
ensure that the new code integrates well with the existing code and that the
application behaves as expected.
 Immediate Feedback: Developers receive immediate feedback on their
commits, enabling them to address issues quickly, which enhances code quality
and reduces the time to resolve bugs.

Test Automation Fundamentals. Unit 3


Continuous Integration and Continuous
7
Deployment
 Continuous Deployment (CD)
 Definition and Purpose: Continuous Deployment extends the concept of
Continuous Integration by automatically deploying all code changes to a testing
and/or production environment after the build stage. This ensures that software
can be deployed at any time with the push of a button or even automatically
without human intervention.
 Key Components:
1. Automated Deployment: The process involves scripts and automation tools
that push the built software to a live production environment seamlessly
without manual steps.
2. Configuration Management: Tools like Ansible, Chef, or Puppet manage
and provision the computing infrastructure in a consistent and repeatable
manner, which is vital for reliable deployments.

Test Automation Fundamentals. Unit 3


Continuous Integration and Continuous
8
Deployment
 Continuous Deployment (CD)
1. Monitoring and Logging: Post-deployment, the system's performance is
monitored to quickly identify and rectify any issues that arise. Logging
mechanisms are used to trace issues back to their source.
2. Rollback Mechanisms: In case of any deployment failure or critical issues,
automatic rollback mechanisms are employed to revert to the previous stable
version, minimizing downtime and impact on end-users.

Test Automation Fundamentals. Unit 3


9 Why shift from manual to
 Quality Automation:
Assurance: Manual testing, while necessary in certain contexts,
can be monotonous and prone to human error, especially when repetitive
tasks are involved. Automated testing helps in reducing these human errors
by executing pre-defined test cases without fatigue or oversight.
 Error or Bug-free Software: Automated tests are generally more reliable
in detecting bugs and errors compared to manual testing because they can
quickly execute thousands of complex test cases during every test run.
 No Human Intervention: Once set up, automated tests can run
unattended, which means they do not require manual intervention to
execute.
 Increased Test Coverage: Automated testing allows teams to increase the
depth and scope of tests, helping improve software quality.
 Testing Can Be Done Frequently: Automated testing makes it feasible
to run tests as often as needed.
Test Automation Fundamentals. Unit 3
10 Benefits:
 Increased Efficiency: Automation can execute a large number of tests
quickly and repeatedly, which is particularly beneficial in agile development
environments where frequent changes are made to the code.
 Improved Accuracy: Human testers are prone to errors during manual
testing, especially when performing monotonous and repetitive testing
tasks.
 Cost-Effectiveness: Although the initial setup for test automation can be
high due to the cost of the tools and the time required to write scripts, it
becomes cost-effective over time.
 Enhanced Test Coverage: Automated testing can easily expand the scope
of tests, which helps improve software quality.
 Reusability of Test Suite: Automated test scripts are reusable and can be
used across different versions of the software, even if the operating
environment changes.
Test Automation Fundamentals. Unit 3
11 Benefits:
 Faster Feedback: Automation helps identify issues quickly during the
development phase, which enhances communication between coders,
testers, and other team members involved in the project.
 Integration with Development Tools: Automated testing tools can be
integrated with other tools used in software development, such as build
tools, configuration management tools, and deployment tools.

Test Automation Fundamentals. Unit 3


12 Kinds of Software Tests to Automate
 End-to-End Tests: These tests validate the complete flow of an application
from start to finish, ensuring that all integrated components work together
as expected. They are crucial for verifying the overall system behavior and
data integrity across components.
 Unit Tests: These are foundational tests that focus on small, isolated parts
of the application code, typically individual functions or methods.
Automating unit tests ensures that changes in the code do not introduce
new bugs in already tested components.
 Integration Tests: These tests check the interactions between different
modules or services in an application, ensuring that they work together
correctly after they have passed unit testing.
 Performance Tests: These evaluate how well the application performs
under expected loads, which is critical for understanding the scalability and
responsiveness of the system.
Test Automation Fundamentals. Unit 3
13 Kinds of Software for Manual Tests
 Exploratory Testing: This unscripted, creative testing is critical for
discovering unforeseen issues based on the tester's intuition and
experience. It allows testers to probe the software beyond predefined test
cases.
 Visual Regression Testing: Although partially automatable, visual
regression testing involves comparing screenshots before and after changes
to detect UI discrepancies. It often requires manual review to interpret visual
differences and decide if they are bugs or intentional changes.
 Usability Testing: Usability testing involves assessing how easy user
interfaces are to use. It requires human judgment to evaluate aesthetic
appeal, user satisfaction, and the overall user experience, which are
subjective and cannot be easily quantified or automated.
 Hardware-related Tests: Tests that require physical interaction with
hardware, like checking if a device heats up under operation, involves
manual intervention and sensory feedback that cannot be easily replicated
Test Automation Fundamentals. Unit 3
through automation.
14 Kinds of Software for Manual Tests
 Non-functional Qualities: Testing for qualities like comfort, smell, or taste
in products cannot be automated. For example, determining the comfort of
a car's seats requires human testers.
 Building a Test Automation Framework for DevOps Team: it
emphasizes that setting up an automated testing framework should be
tailored to the specific needs of the development environment, considering
the tools and practices that best fit the team’s and project's requirements.

Test Automation Fundamentals. Unit 3


Factors to Consider When Deciding
15
Between Automated and Manual Testing
 Frequency of Release: Frequent releases might require more automation
to ensure timely and efficient testing cycles. However, if releases are less
frequent, manual testing might be sufficient.
 Available Tools and Ecosystem: The choice of automation tools depends
heavily on the programming languages and frameworks used in
development. It's important to select tools that integrate well with these
technologies.
 Product Market Fit and Code Base Maturity: The stage of the product
in its lifecycle can influence the testing approach. For new products still
finding market fit, manual testing might be more appropriate to
accommodate rapid changes and iterations. For mature products,
automated testing can help maintain stability and efficiency.

Test Automation Fundamentals. Unit 3


16

Manual
Vs
Automated
Testing

Software Testing and Automation. Unit 2

You might also like