This document discusses 6 traits of a successful test automation architecture:
1. Deciding which test levels to automate by considering factors like efficiency, expected vs unexpected scenarios, and intelligence vs repetitiveness.
2. Design principles for test automation including modularity, reusability, and separation of concerns.
3. Locator strategy which determines whether tests are flaky or robust, prioritizing unique, descriptive locators that are unlikely to change.
4. Methodology such as behavior driven development, test driven development, and continuous testing approaches.
5. Framework and language selection considering project dynamics and technologies. Examples mentioned are Geb, Spock, Groovy, and CodeceptJS.
6.
Test Automation Best Practices (with SOA test approach)Leonard Fingerman
Today we hear a lot of buzz about the latest & greatest test automation tools like Selenium, Rational Functional Tester or HP LoadRunner but to make your test automation effort successful it might take more than just having the right tool. This presentation will try to uncover major pitfalls typically involved with test automation efforts. It will provide guidance on successful strategy as well as differences among third-generation frameworks like keyword-driven, data-driven and hybrid. It will also cover various aspects of SOA test automation
Building a Test Automation Strategy for SuccessLee Barnes
Choosing an appropriate tool and building the right framework are typically thought of as the main challenges in implementing successful test automation. However, long term success requires that other key questions must be answered including:
- What are our objectives?
- How should we be organized?
- Will our processes need to change?
- Will our test environment support test automation?
- What skills will we need?
- How and when should we implement?
In this workshop, Lee will discuss how to assess your test automation readiness and build a strategy for long term success. You will interactively walk through the assessment process and build a test automation strategy based on input from the group. Attend this workshop and you will take away a blue print and best practices for building an effective test automation strategy in your organization.
• Understand the key aspects of a successful test automation function
• Learn how to assess your test automation readiness
• Develop a test automation strategy specific to your organization
A test automation framework defines an organization's way of doing things. It is a set of assumptions, concepts and tools that provide support for automated software testing.
Test Automation
Test automation is the use of test automation software like Selenium or self-developed testware to execute test cases.
Test automation is mostly used to automate repetitive testing tasks in a formalized way. It is also used to execute tests that would be difficult to perform manually like performance testing.
There are many advantages of test automation that are mostly related to the repeatability of the tests and the speed of test execution. There are a lot of commercial and open source tools available which can be grouped into two main categories; Code-Driven and Graphical User Interface Testing. Thus the key success factor in test automation is selecting the right tool and have a specialized test automation team.
It is to use test automation tools by considering ROI (return on investment). Otherwise it is quite easy to waste big amount of energy, commitment and definitely money.
With more than 500 clients, Keytorc is the leading software testing company in EMEA region that have competencies of automating any kind of software in diverse industries.
For more information about test automation tools and Keytorc’s test automation service you can contact with our performance test engineers: www.keytorc.com or blogs.keytorc.com
Test Otomasyonu:
Test otomasyonu özellikle tekrarlayan ve manuel olarak yapılması zor olan testlerin Selenium gibi test otomasyon araçları kullanılarak ya da özel olarak geliştirilen test otomasyon scriptleri ile yapılmasıdır. Bu bakımdan:
- Regresyon testleri
- Performans testleri
- Yük ve Stres testleri
- Test yönetimi
test otomasyonuna en uygun test tipleri ve aktiviteleridir.
Test otomasyonunun en büyük faydaları:
- testlerin hıznının artırılması
- testlerin kapsamının artırılması
- testlerin doğruluğunun artırılması
- testlerin raporlama kalitesinin artırılmasıdır.
Test otomasyonu doğru araç seçimi yapılmaması, ya da test otomasyonunu bilen uzman bir ekip tarafından yapılmaması durumunda faydadan çok zarar getirmektedir.
EMEA bölgesindeki lider yazılım test firması olan Keytorc’un test otomasyon ekibiyle iletişime geçmek için: www.keytorc.com ya da blogs.keytorc.com
Test Automation Best Practices (with SOA test approach)Leonard Fingerman
Today we hear a lot of buzz about the latest & greatest test automation tools like Selenium, Rational Functional Tester or HP LoadRunner but to make your test automation effort successful it might take more than just having the right tool. This presentation will try to uncover major pitfalls typically involved with test automation efforts. It will provide guidance on successful strategy as well as differences among third-generation frameworks like keyword-driven, data-driven and hybrid. It will also cover various aspects of SOA test automation
Building a Test Automation Strategy for SuccessLee Barnes
Choosing an appropriate tool and building the right framework are typically thought of as the main challenges in implementing successful test automation. However, long term success requires that other key questions must be answered including:
- What are our objectives?
- How should we be organized?
- Will our processes need to change?
- Will our test environment support test automation?
- What skills will we need?
- How and when should we implement?
In this workshop, Lee will discuss how to assess your test automation readiness and build a strategy for long term success. You will interactively walk through the assessment process and build a test automation strategy based on input from the group. Attend this workshop and you will take away a blue print and best practices for building an effective test automation strategy in your organization.
• Understand the key aspects of a successful test automation function
• Learn how to assess your test automation readiness
• Develop a test automation strategy specific to your organization
A test automation framework defines an organization's way of doing things. It is a set of assumptions, concepts and tools that provide support for automated software testing.
Test Automation
Test automation is the use of test automation software like Selenium or self-developed testware to execute test cases.
Test automation is mostly used to automate repetitive testing tasks in a formalized way. It is also used to execute tests that would be difficult to perform manually like performance testing.
There are many advantages of test automation that are mostly related to the repeatability of the tests and the speed of test execution. There are a lot of commercial and open source tools available which can be grouped into two main categories; Code-Driven and Graphical User Interface Testing. Thus the key success factor in test automation is selecting the right tool and have a specialized test automation team.
It is to use test automation tools by considering ROI (return on investment). Otherwise it is quite easy to waste big amount of energy, commitment and definitely money.
With more than 500 clients, Keytorc is the leading software testing company in EMEA region that have competencies of automating any kind of software in diverse industries.
For more information about test automation tools and Keytorc’s test automation service you can contact with our performance test engineers: www.keytorc.com or blogs.keytorc.com
Test Otomasyonu:
Test otomasyonu özellikle tekrarlayan ve manuel olarak yapılması zor olan testlerin Selenium gibi test otomasyon araçları kullanılarak ya da özel olarak geliştirilen test otomasyon scriptleri ile yapılmasıdır. Bu bakımdan:
- Regresyon testleri
- Performans testleri
- Yük ve Stres testleri
- Test yönetimi
test otomasyonuna en uygun test tipleri ve aktiviteleridir.
Test otomasyonunun en büyük faydaları:
- testlerin hıznının artırılması
- testlerin kapsamının artırılması
- testlerin doğruluğunun artırılması
- testlerin raporlama kalitesinin artırılmasıdır.
Test otomasyonu doğru araç seçimi yapılmaması, ya da test otomasyonunu bilen uzman bir ekip tarafından yapılmaması durumunda faydadan çok zarar getirmektedir.
EMEA bölgesindeki lider yazılım test firması olan Keytorc’un test otomasyon ekibiyle iletişime geçmek için: www.keytorc.com ya da blogs.keytorc.com
What are the Key drivers for automation? What are the Challenges in Agile automation and How to deal with them? How to automate? Who will automate? Which tool to select? Commercial or open source? What to automate? Which features? Here is what our experience says
This is a presentation given at the Hangzhou Scrum Forum 2009, sponsored by Perficient, China. The topic is how to incorporate automated functional testing into an agile project, and also some best practices, tips, and warnings.
www.perficient.com
Software testing concepts is going to enhance from manual testing to automated testing. Due to rapidly increasing complexity in software development process, the present manual testing technique is not sufficient for effective testing. Hence, here arises the requirement of test automation process. The automation testing is the software testing process in which the tester use advance automation tools for testing software applications areas, which needs to be tested again-and-again due to frequent changes.
(** Selenium Training:
https://www.edureka.co/testing-with-selenium-webdriver **)
This Edureka PPT on Xpath Tutorial talks about Xpath fundamentals and steps involved in writing a Xpath Script. It also gives a brief idea on types of Xpath, Xpath Functions along with an example.
Following topics are covered in this tutorial:
Introduction to Xpath
XML DocumentX
Xpath Syntax
Types of Xpath
Xpath Functions
Selenium playlist: https://goo.gl/NmuzXE
2015-StarWest presentation on REST-assuredEing Ong
T9: Automate REST Services Testing with RestAssured
Many browser, UI, and Java-based tools and frameworks can help you test REST services. However, in the world of continuous integration and delivery, manual UI- or browser-based tools typically fall short in many aspects—from early test development to developer support. When using Java-based libraries such as HttpClient, much code has to be written for all aspects of a web service call. These extensions or wrappers tend to be complex, hard to read, and difficult to maintain. This is where RestAssured comes in. RestAssured is an open source Java DSL for testing REST-based services, making test code more readable, easier to write, and cheaper to maintain. Learn how easily you can write HTTP get and post requests as well as more complex scenarios involving session management, authentication, and (de)serialization of objects. Take back good practices and an open source command line tool that can help you jumpstart your RestAssured testing.
http://starwest.techwell.com/sessions/starwest-2015/automate-rest-services-testing-restassured
.NET Fest 2019. Arnon Axelrod. Test automation for developersNETFest
Traditionally developers only write unit tests (hopefully!) and QA engineers write System tests, with Selenium or some other tool. However, while this separation has some reasons, it's also a bit arbitrary and unhealthy. In this talk we'll discuss why you should be involved in all kinds of test automation and discuss best practices for utilizing the test automation to improve the development lifecycle, as well as both the internal and the external quality of your code.
What are the Key drivers for automation? What are the Challenges in Agile automation and How to deal with them? How to automate? Who will automate? Which tool to select? Commercial or open source? What to automate? Which features? Here is what our experience says
This is a presentation given at the Hangzhou Scrum Forum 2009, sponsored by Perficient, China. The topic is how to incorporate automated functional testing into an agile project, and also some best practices, tips, and warnings.
www.perficient.com
Software testing concepts is going to enhance from manual testing to automated testing. Due to rapidly increasing complexity in software development process, the present manual testing technique is not sufficient for effective testing. Hence, here arises the requirement of test automation process. The automation testing is the software testing process in which the tester use advance automation tools for testing software applications areas, which needs to be tested again-and-again due to frequent changes.
(** Selenium Training:
https://www.edureka.co/testing-with-selenium-webdriver **)
This Edureka PPT on Xpath Tutorial talks about Xpath fundamentals and steps involved in writing a Xpath Script. It also gives a brief idea on types of Xpath, Xpath Functions along with an example.
Following topics are covered in this tutorial:
Introduction to Xpath
XML DocumentX
Xpath Syntax
Types of Xpath
Xpath Functions
Selenium playlist: https://goo.gl/NmuzXE
2015-StarWest presentation on REST-assuredEing Ong
T9: Automate REST Services Testing with RestAssured
Many browser, UI, and Java-based tools and frameworks can help you test REST services. However, in the world of continuous integration and delivery, manual UI- or browser-based tools typically fall short in many aspects—from early test development to developer support. When using Java-based libraries such as HttpClient, much code has to be written for all aspects of a web service call. These extensions or wrappers tend to be complex, hard to read, and difficult to maintain. This is where RestAssured comes in. RestAssured is an open source Java DSL for testing REST-based services, making test code more readable, easier to write, and cheaper to maintain. Learn how easily you can write HTTP get and post requests as well as more complex scenarios involving session management, authentication, and (de)serialization of objects. Take back good practices and an open source command line tool that can help you jumpstart your RestAssured testing.
http://starwest.techwell.com/sessions/starwest-2015/automate-rest-services-testing-restassured
.NET Fest 2019. Arnon Axelrod. Test automation for developersNETFest
Traditionally developers only write unit tests (hopefully!) and QA engineers write System tests, with Selenium or some other tool. However, while this separation has some reasons, it's also a bit arbitrary and unhealthy. In this talk we'll discuss why you should be involved in all kinds of test automation and discuss best practices for utilizing the test automation to improve the development lifecycle, as well as both the internal and the external quality of your code.
Lightning Talks by Globant - Automation (This app runs by itself ) Globant
When you add new features to your application a lot of things can happen. Do you believe that the app is able to test itself by using automation? Just imagine testing everything manually due to that change. Do you know how many people will be needed to complete this process? The power of automated testing in the development lifecycle allows us things such as scheduling, and executing tests at any time with a big scope on thousands of mobile devices, websites and multiple browsers simultaneously making sure everything is working as expected.
Unit Testing like a Pro - The Circle of PurityVictor Rentea
Best practices on designing unit tests, designing testable production code, a glimpse of TDD, using mocks and isolating pure functions for easy testing. Talk distilled from http://victorrentea.ro/#unit-testing
Held at VoxxedDays Bucharest in March 2019.
This workshop is about testing the right way. Get a clear view on how to test your code in an efficient and useful way!
This first testing-related workshop is about all aspects of unit testing. Integration testing and TDD will have their own dedicated workshops.
Ever tried doing Test First Test Driven Development? Ever failed? TDD is not easy to get right. Here's some practical advice on doing BDD and TDD correctly. This presentation attempts to explain to you why, what, and how you should test, tell you about the FIRST principles of tests, the connections of unit testing and the SOLID principles, writing testable code, test doubles, the AAA of unit testing, and some practical ideas about structuring tests.
Sharing some test heuristics that you can use in different apps your testing!
For more presentation slides related to testing and automation, visit us at qeisthenewqa.com
How EVERFI Moved from No Automation to Continuous Test Generation in 9 MonthsApplitools
See and hear about EVERFI's journey to generating targeted tests automatically from changing system schemas in this webinar with Applitools, CircleCI, and Cypress. Greg Sypolt, VP of Quality Engineering, and Sneha Viswalingam, Director of Quality Engineering, share the time and productivity savings achieved through this approach, and how adopting shift-left test generation has shortened the QA cycle.
* See the Applitools products used, including the Ultrafast Grid, at https://applitools.info/n3o
* Read and download the case study at https://applitools.info/gbi
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
6 Traits of a Successful Test Automation Architecture
1. 6 TRAITS OF
A SUCCESSFUL TEST AUTOMATION
ARCHITECTURE
ERDEM YILDIRIM
2. https://www.linkedin.com/in/yildirim-erdem
About Me
2000 – Software Developer
2006 – Discovered Test Automation &
Decided to be a Test Engineer
2010 – Test Lead at STM (Defence
Technologies and Engineering)
2013 – Test Lead at Innova (12 PRJs, 20 TEs)
12. AUTOMATION
Expected Action
Machines are great for
running straigtforward
tests
Gives Confidence
EXPLORATORY
Unexpected Scenario
Humans are great for tests
requiring intelligence and
experience
Finds new defects
COMPLEMANTARY
19. Automation Levels
Scenario Depth
UI
Tests
Integration
Tests
Unit Tests
Test Data Preparation
CI–ContinuousIntegration
Horizontal E2E (UI & Integration Layer) Login / Add to Chart / Checkout / Pay
Vertical E2E
Implementing
tests on all level
of the pyramid
Deciding
Exploratory
Test
35. Disadvantages of Spaghetti Pattern
• Anti-pattern
• Tight Coupling
• No Random Order
• No parallel test runs
• Covers up failures
• Difficult to extend or reuse; INEFFICIENT
36. Hermetic Test Pattern
Polar opposite of the Spaghetti pattern.
It states that each test should be completely independent and
self-sufficient.
Advantages Disadvantages
• Clean Start
• Resilience
• Modular
• Random Run Order
• Parallel Testing
• Upfront Design
• Runtime Increase
• Resource Usage Increase
37. Factory Design Pattern
interface Dog
{
public void speak ();
}
class Poodle implements Dog
{
public void speak()
{
System.out.println("The poodle says "arf"");
}
}
class Rottweiler implements Dog
{
public void speak()
{
System.out.println("The Rottweiler says (in a very deep voice) "WOOF!"");
}
}
class SiberianHusky implements Dog
{
public void speak()
{
System.out.println("The husky says "Dude, what's up?"");
}
class DogFactory
{
public static Dog getDog(String criteria)
{
if ( criteria.equals("small") )
return new Poodle();
else if ( criteria.equals("big") )
return new Rottweiler();
else if ( criteria.equals("working") )
return new SiberianHusky();
return null;
}
}
1
3
2
Create a Dog Interface Define Concrete Dog Classes
Define Java Factory Class
38. Factory Design Pattern
public class JavaFactoryPatternExample
{
public static void main(String[] args)
{
// create a small dog
Dog dog = DogFactory.getDog("small");
dog.speak();
// create a big dog
dog = DogFactory.getDog("big");
dog.speak();
// create a working dog
dog = DogFactory.getDog("working");
dog.speak();
}
}
4
Factory Pattern Test Program
The poodle says "arf"
The Rottweiler says (in a very deep voice) "WOOF!"
The husky says "Dude, what's up?"
Brings
Decoupling
Encapsulation
39. Page Object Model (POM)
Helps to hide the page implementation; the test is no longer allowed to directly
interact with a given page, but instead uses a framework of classes and methods to
accomplish the same goal. This pattern abstracts the business logic/implementation
details.
Advantages Disadvantages
• Busines Point of View
• Testing Behavior
• DRY
• Modular & Reusable
• Clear Intentions
• Complexity (Wrong Usage)
40. Page - Spec
public class LoginSpec extends PageSpec {
def "Login tests with user information"() {
given: "Home Page"
def loginPage = to LoginPage
when: "user information is entered"
loginPage.loginOl(userName, password)
then: "login to the system, open main page"
at resultPage
where:
userName | password | resultPage | aciklama
"buro1@innova.com.tr" | "123456" | MemberHomePage | "positive-test"
"wrong@mail.com" | "123" | LoginPage | "negative-test"
"" | "" | LoginPage | "exceptional-test"
}
}
class LoginPage extends BasePage {
static url = "giris"
static at = { waitFor { title == "Innova Legalite User Login" } }
def getUser() { $("input", name: "username") }
def getPass() { $("input", name: "password") }
def getEnter() { $("button", 0) }
def loginOl(String username, String password) {
user.value(username)
pass.value(password)
enter.click()
}
}
41. Layers in Your Framework Design
The Framework should also be divided up into layers of functionality.
Tests
Framework
Selenium/GEB/etc.
Browser (Web App)
Workflows
Pages
Navigation Modules
Selenium/GEB/etc.
42. PageFactory Pattern
The PageFactory Class in Selenium is an extension to the Page Object
design pattern. It is used to initialize the elements of the Page Object
or instantiate the Page Objects itself.
It is used to initialize elements of a Page class without having to use
‘FindElement’ or ‘FindElements’. Annotations can be used to supply
descriptive names of target objects to improve code readability.
In fact, we can use the page object pattern without using the Page
Factory class.
43. PageFactory Pattern
There are different opinions in sector.
• Even the creator of PageFactory doesn’t encourage to use PageFactory.
• Jim Holmes: "It's simpler and cleaner for people to stand up their own
page objects. PageFactory is a needless complication"
• PageFactory is useful; It handles WebElements nicely and helps test
codes/scenarios be easier to read.
• The only difference I can see is that it makes tracing through code a
little harder for people unfamiliar to Selenium and saves a few
characters per instruction.
46. Prod Like Testing Stage
Simulate a test stage as if every integrated system/comp is up
before they are really up
And leave the stage at starting point
Setup
Exercise
Verify
Teardown
SUT
Install
Create
Return
ValuesIndirect
Inputs
Record
Mock
Object
49. LOCATORS
Your locator strategy will determine your tests’ destiny as flaky or
robust.
Good: If you know the right strategy you can apply it.
Bad: It is also dependent to AUT code/developers not only to you.
Critical: Communication & Collaboration, mentoring dev teams.
54. E2E Test Automation
High business logic coverage,
Testing from the user perspective,
Prevents production incidents,
Gives the confidence that everything is OK
Low code coverage,
Slow execution,
55. Continuous Testing
To develop software within shorter delivery cycles; Agile, DevOps
and Continuous Delivery approaches are on the forefront.
Continuous Delivery supports Continuous Testing which is a
testing strategy that consists of a large number of automated unit
and acceptance tests but a small number of automated end-to-
end tests.
Continuous Testing claims that E2E tests are inefficient and they
should be limited.
It is a means of using Vertical E2E Test Automation effectively but
avoiding Horizontal E2E Test Automation
57. TDD – Test Driven Development
RULES
Write only enough of a unit test to fail.
Write only enough production code to make the failing unit test pass.
WHY TDD
Simplest way to achieve both good quality code and good test coverage
.
58. BDD – Behaviour Driven Development
Developing unambiguous features in collaboration with BA, QA, Dev
Writing features’ definition and also the behaviours driving the design
process.
Preventing defects rather than finding defects at early stages.
59. BDD – Behaviour Driven Development
Communication / Collaboration
Automation
Living Documentation
Drives whole project team
Preventative Tests
Healthy test basis / requirements
Clear understanding of what a feature means
Replaces scripted test with automation scripts
61. Spock BDD
public class LoginSpec extends PageSpec {
def "Login tests with user information"() {
given: "Home Page"
def loginPage = to LoginPage
when: "user information is entered"
loginPage.loginOl(userName, password)
then: "login to the system, open main page"
at resultPage
where:
userName | password | resultPage | aciklama
"buro1@innova.com.tr" | "123456" | MemberHomePage | "positive-test"
"wrong@mail.com" | "123" | LoginPage | "negative-test"
"" | "" | LoginPage | "exceptional-test"
}
}
All (BDD, automation code) in one file;
very concise/readable code,
very fast and fun to code
63. xDD: TDD vs BDD
BDD focuses on the behavioural aspect of the system rather
than the implementation aspect of the system that TDD
focuses on.
TDD captures low-level requirements (usually at the
class/method level). BDD captures high-level requirements.
Therefore, BDD is still TDD - but at a higher level
64. Develop “Software that matters”
along with “Software that works”
Enter the User Stories (feature + scenarios) in a BDD tool,
Write E2E automation code to map the User Stories to tests,
Write production code using TDD to make the tests pass.
65. Dev Team
Version
Control
Build & Unit
Tests
UI Test
Automation
(Smoke)
Deploy (Prod)
UI Test
Automation
(Smoke)
UI Test
Automation
(Full Set)
Monitoring
Dev CI Pre-Production Production
Check in
Trigger
Trigger
Approval
Approval
Approval
Approval
Feedback
Feedback
Feedback
Feedback
Feedback
Automated Test Runs
After Nightly Build [1]
• Unit Test
Automation
• Web Service Test
Automation
• UI Test Automation
(Full Set)
• Cross Browser &
Platform Tests
Automated Test Runs
After Weekly Build [2]
• Automated Non
Functional Tests
(Performance &
Load Tests)
• Static Code Quality
Analysis
Feedback
Feedback
Feedback
69. CONSIDER
Technologies used in SUT development code,
3rd party components
LOOK FOR
Efficiency
(produce more with less effort)
70. Just a Few Examples
on Personel Experience
GEB, Spock, Groovy
the power of Selenium WebDriver,
the elegance of jQuery content selection,
the robustness of Page Object modelling,
the expressiveness of the Groovy language,
the velocity of Spock style BDD
What bring us?
71. CODECEPTJS
Backend agnostic; the power of Selenium WebDriver,
webdriverio, protractor, nightmarejs, appium, puppiteer
Facilitated one language for all above frameworks,
Scenario driven highly readable,
Built in POM support,
Support for both Spock style BDD and Cucumber BDD
Fast to develop and learn.
72. CUCUMBER
Readable BDD for whole stakeholders,
Ideal for automating backend, middleware applications.
Increase the communication / collaboration in team.
Resolve the issue of developing the wrong/misunderstood
requirement.
74. 4 PILLARS OF OOP
Encapsulation
Inheritance
Polymorphism
Abstraction
75. ENCAPSULATION
Hiding data and binding that data to public methods that other classes can utilize to
access to data to protect the data integrity and consistency. Accessing data from the
getter/setter methods.
class Account
{
private double balance;
public setBalance(double balance)
{
if(balance > 0) // Validating input data in order to maintain data integrity
this.balance = balance;
}
}
public static void main()
{
Account theGeekyAsian = new Account(); //Creating an object of class Account
theGeekyAsian.setBalance(1000); //Balance set successful
}
76. INHERITANCE
Extend data and behaviours. Inheritance is a way to reuse code. The class which is
inherited from, is called the base class, and the class which inherits the code from the
base class is called a derived class. A derived class can use all the functions which are
defined in the base class, making the code reusable.
class Shape
{
private int height;
private int width;
public void setWidth(int width)
{
this.width = width;
}
public void setHeight(int height)
{
this.height = height;
}
}
class Rectangle extends Shape
{
public int getArea()
{
return height * width; //Rectangle's getArea method inherited the height and width from Shape
}
}
77. POLYMORPHISM
The ability to take multiple forms. The name polymorphism defines itself. Poly means
many, and morph means forms. It is a process of a method of a class taking
different/many forms.
Static Polymorphism – Known as Method Overloading
Dynamic Polymorphism – Known as Method Overriding
class Numbers
{
public int sum(int numberA, int numberB)
{
return numberA + numberB;
}
public double sum(double numberA, double numberB) //Here, method overloading takes place,
{ //by providing another feature to the same method 'sum'
return numberA + numberB;
}
}
class Test
{
public static void main(String[] args)
{
Numbers objNumber = new Numbers();
System.out.println("Sum of two integer numbers is: " + objNumber.sum(2,3);
System.out.println("Sum of two double numbers is: " + objNumber.sum(2.5,3.2);
}
}
78. ABSTRACTION
In abstraction, we provide only essential/necessary features (methods) of an entity to
the outside world (the user) while hiding other irrelevant details, in order to reduce
operational complexity at the user-end.
class Car
{
public void changeGear(){}
public void steerCar(){}
public void accelerateCar() //Accelerator is accessible by the user to accelerate the car
{
/* Something happens here */
what_happens_when_he_accelerates_the_car(someValue);
}
private void exhaustSystem(){}
private void what_happens_when_he_accelerates_the_car(String someValue)
{
/* Something happens here */
}
private void silencer(){}
}
80. Team Building
Roles – Intersection of Interests and Works
Developer in Test
Test Automation Engineer
Test Analyst
Career Planning
Give Venue to Team for Sharing Knowledge
Engaging – Motivating Environment
Communication - Collaboration