This presentation is answering the questions: how to build an effective test automation framework, select the right tools and organize to whole process?
2. select the right tool
In order to understand whether a test automation tool was
selected properly, you should begin with answering a few
questions:
● Is your tool compatible with the application environment,
technologies, and interfaces?
● What is the cost of your chosen test automation tool?
● How easy it is to write, execute, and maintain test scripts?
● Is it possible to extend the tool with additional components?
● How fast can a person learn the scripting language used by
the tool?
● Is your vendor ready to resolve tool-related issues? Is the
community support strong enough?
● How reliable is your test automation tool?
4. select test cases for
automation
How do we select test cases for automation? "Automate
them all" is hardly an answer if you are focused on quality
and efficiency.
You should automate a manual test case only when:
● Your test case is executed frequently enough, and takes
time to run manually. Especially this is actual for large
regression test suites.
● You have a test that will run with different sets of data.
● Your test case needs to be run under many different
platforms and system configurations.
5. select test cases for
automation
On the other hand, test automation is not recommended in
the following cases:
● Usability testing.
● When the functionality of the application changes
frequently.
● When the expenditures on test automation tools and the
support of already existing tests are too high.
● When test automation doesn't provide enough
advantages if compared to manual testing.
7. sharing the
responsibilities
● TA Engineers
● QA Engineers
Test ● Developers
Manual Test Automation
Cases Framework
Development
Automated Execution
Test Scripts and Results
Development Analysis
● QA Engineers ● TA Engineers
● TA Engineers ● QA Engineers
8. what is selenium
webdriver?
● Open-source, multi-platform, multi-browser tool for
browser-based Web UI automation that is de facto
standard in the world of Web UI test automation.
9. what is selenium
webdriver?
All browsers, all versions are equally
supported.
Once written, test script in most cases will work
for all browsers without modifications.
13. what is selenium
webdriver?
Example of Selenium WebDriver script:
WebDriver driver = new FirefoxDriver();
// Go to the Google Suggest home page
driver.get("http://www.google.com/webhp?complete=1&hl=en");
// Enter the query string "Cheese"
WebElement query = driver.findElement(By.name("q"));
query.sendKeys("Cheese");
14. what is sikuli?
● Open-source, multi-platform visual technology to
automate graphical user interfaces using images of
objects on the screen and OCR.
15. what is sikuli?
Virtually any application interface and platform
can be automated. The only requirement is
Java.
18. what is sikuli?
Example test script in Sikuli:
#Start program
calcApp = App("Calculator")
if not calcApp.window():
App.open("calc.exe"); wait(2)
calcApp.focus(); wait(1)
#Verify that the window appeared
if exists("CalcApp.png"):
print("PASS: Calculator window appeared")
else:
print("FAIL: No calculator window")
click("2.png"); click("plus.png"); click("3.png")
#Verify the addition result
find("5.png")
19. what is testng?
TestNG is a testing framework inspired from JUnit and
NUnit but introducing some new functionalities that make it
more powerful and easier to use, such as:
● Annotations.
● Flexible test configuration.
● Support for data-driven testing.
● Support for parameters.
● Powerful execution model.
● Supported by a variety of tools and plug-ins (Eclipse,
IDEA, Maven, etc...).
20. what is apache ant?
Software tool for automating software build processes.
It can be used for preparing environment, compilation and
execution of test scripts if they are developed in Java.
21. what is jenkins?
Open-source continuous integration server with 300+
plugins to support all kinds of software development.
It can be used to make test automation processes more
solid by:
● Updating tests from source control repository before
execution.
● Scheduling test execution.
● Keeping test results and history.
22. demo
Test automation framework that is built upon the following
tools:
● Selenium WebDriver
● Sikuli
● TestNG
● Apache Ant
● Jenkins