Table of Contents:
· Quick Guide
· How to do X in Selenium WebDriver?
· Functional Test Refactoring
· Optimize Selenium WebDriver Automated Test Scripts
· Why Do Most UI Test Automation Fail?
· Benefits of Continuous Testing
· IT Terminology Clarified
· Software Design Pattern by Example
· Programming Language Advice
· Be aware of Fake Test Automation/DevOps Engineers
· IT Job Interviews
· Bad Test Automation Frameworks/Tools
· My Innovative Solution to …
· Chinese Idiom Stories for Software Professionals
· Web Test Automation Workbook
Quick Guide
10-Minute Guide to Set up Test Automation using Selenium WebDriver with Ruby
Step by Step showing how to learn to write raw Selenium WebDriver test scripts in minutes
Set up, Develop Automated UI tests and Run them in a CT server on your First day at work
Set Up a Continuous Testing Server to Run Selenium Tests in Minutes
How to do X in Selenium WebDriver?
Test AJAX Properly and Efficiently with Selenium WebDriver, and Avoid ‘Automated Waiting’
An Unsuccessful Attempt to use OCR to Pass text-based Captcha in Selenium Automated Tests
Testing Emails in Automated Test Scripts with Fake SMTP server: MailCatcher
Practical DDT: Randomized data scenarios in one automated test script + Continuous Testing
Case Study: Simulate Two Users with Selenium Automation Scripts
Case Study: Automated Testing ‘Login with Remember Me’ in Selenium WebDriver
Case Study: User Sign up Automated Test in Selenium WebDriver
Case Study: User Reset Password via Email in Selenium WebDriver
Advice on Self-Learning Test Automation with Selenium WebDriver
Use Advanced User Interactions in Selenium WebDriver to drive keyboard and mouse
Interacting with Databases in Automated Functional Test Scripts
How to Fix “Element is not clickable” in Selenium WebDriver tests?
Creative Web Automation: Generate User Guide with Automation Script
Print Style Sheets and Export a Webpage to PDF in Selenium WebDriver
Functional Test Refactoring
Automated test scripts are often poorly designed, inefficient, and hard to understand and maintain, i.e., the same issues we found in code. Functional Test Refactoring is a process of enhancing the quality of automated functional test scripts.
Functional Test Refactoring: Extract to Page Function
Functional Test Refactoring: Introduce to Page Object
Functional Test Refactoring: Rename
Optimize Selenium WebDriver Automated Test Scripts
Working automated test scripts is only the first test step to successful test automation. As automated tests are executed often and the application changes frequently too, it is important that test scripts need to be fast, easy to maintain and read.
Optimize Selenium WebDriver Automated Test Scripts: Maintainability
Optimize Selenium WebDriver Automated Test Scripts: Readability
Why Do Most UI Test Automation Fail?
FACT: not many software engineers (in Test) received proper education or training in test automation, which is unfortunate. Considering this: 30–40% of staff in a software team are usually testers. Programmers and business analysts spend a lot of time performing functional testing as well. However, there are few dedicated Functional Testing courses offered at universities to my knowledge. Therefore, it is not surprising that many wrong decisions on test automation are made due to a lack of knowledge.
(Technical)
Wrong choice of test automation tool
Don’t know how to design easy-to-maintain test scripts
Lack of Efficiency
Lack of experience in executing a medium-size regression suite of automated UI tests
(Human)
Management under-estimate the effort, especially on test maintenance
Tech leads over-estimate their capability in test automation
Tech leads are fixated with a particular wrong technologies
No access to a real Test Automation Coach
Benefits of Continuous Testing
Continuous Testing (enables software teams to push software updates to production daily, not fake CI/CD talks. Check out “Continuous Integration at Facebook” and AgileWay Continuous Testing Grading) is the heart of the software development process. It benefits all stakeholders of a software project.
1. Part 1: to Wise Executives
2. Part 2: to Wise Managers
3. Part 3: to Wise Business Analysts
4. Part 4: to Wise Developers
5. Part 5: to Wise Testers
6. Part 6: to Happy Customers
IT Terminology Clarified
In software development, particularly in software testing, there are many terminologies that are used wrongly by IT professionals.
Software Design Pattern by Example
Design Patterns are good practices of Object-Oriented (OO) Software Design. Applying appropriate design patterns will help to design your software better. However, design patterns are not easy to master, it was the case for me, and my daughter as well when she started an IT degree at Uni. I wrote a series of articles to help her learn Design Patterns quickly. My approach is to use easy-to-understand exercises, which I believe is an easier way to master design patterns.
Programming Language Advice
Programming Language Advice to My Daughter, Part 4: Shell Script
Programming Language Advice to My Daughter, Part 5: Others
Be aware of Fake Test Automation/DevOps Engineers
Be aware of the “fake it until you make it” mindset in Test Automation and CI/CD
An IT Graduate’s frustration with a Fake ‘Senior Test Automation Engineer’
Estimating Test Automation Story Points is a Total Waste of Time
Protractor, another Automation Framework I rightly avoided, is being Deprecated
Why Recording Videos for Automated Test Execution in Test Scripts is Wrong?
Why is Object Identification GUI Utility in Test Automation Unnecessary?
Why Gherkin (Cucumber, SpecFlow,…) Always Failed with UI Test Automation?
Why JavaScript Is Not a Suitable Language for Real Web Test Automation?
Four Screening Questions to Filter Out Fake Test Automation Engineers in Interviews
One Test Automation Scenario Interview Question that Most Candidates Failed
IT Job Interviews
Four Screening Questions to Filter Out Fake Test Automation Engineers in Interviews
One Test Automation Scenario Interview Question that Most Candidates Failed
Agile Project Management: You Cannot Lower the Quality
(filter out incompetent software managers, fake agile coaches/scrum masters)My secret of near 100% interview success on Test Automation Engineer roles
Bad Test Automation Frameworks/Tools
Why Cypress Sucks for Real Test Automation? (Part 2: Limitations)
Why Gherkin (Cucumber, SpecFlow,…) Always Failed with UI Test Automation?
Protractor, another Automation Framework I rightly avoided, is being Deprecated
My Innovative Solution to …
Test Automation: Keep the Browser Open after Executing an Individual Test
Test Automation: Run the same test against a different browser with a click of a button
Test Automation: Run the same test against a different server with a click of a button
Test Automation: Easy Wait in test scripts
Test Automation: Functional Test Refactoring
Test Automation: Attach test execution to the existing browser
Continuous Cross Browser Testing
Continuous Testing: Parallel Automated End-to-End Test Execution
Continuous Testing: Dynamic Ordering
Continuous Testing: Auto-Rerun
Continuous Testing: Manual-Rerun
Continuous Testing: BuildWise Server and Agents
Continuous Testing: Delay Completion
Continuous Testing: Invoke test execution from the browser, even with parameters
Continuous Testing: Quick Navigation to failed test line (from CT to Testing IDE)
Agile: User Story Printing
Software Development: Generating Requirement Traceability
Continuous Testing: Build notifications with Lava Lamps
Chinese Idiom Stories for Software Professionals
Using Chinese idioms to explain some of the problems I have witnessed in the software industry (in particular, test automation and continuous testing) ”. Chinese idioms are insightful and often with interesting stories. Human nature has changed little, and these Chinese idioms stand the test of time (over 1000 years).
#15 Those Who Flee 50 Steps Laugh at Those Who Flee 100 Steps(五十步笑百步)
#32 One is willing to punish; the other is willing to accept 周瑜打黄盖,一个愿打,一个愿挨
Web Test Automation Workbook
Welcome to Learning Web Test Automation with short and purposeful exercises, no tech background is required at all. An exercise typically takes 15–20 minutes.
(Bold ones: published, italic and underlined: soon will be published)
#06: User failed to sign in Test (with tips for productivity)
#07: Running a test script file vs Running an individual test case
#08: Assertions
#09: Run Tests from Command Line
#10: AgileTravel Select Flight Tests
#11: AgileTravel Enter Passenger Detail Test
#12 AJAX Test: Agile Travel Payment
#13 Testing Transformed Controls: WhenWise Sign-in Tests
#14: Sony Playstation Store Login Test
#15: Software Environments and Cross-Browser Testing
#16: Refactor AgileTravel User Login Test (extract function)
#17: Refactor AgileTravel User Login Test (move to helper)
#18: Refactor WhenWise Login Tests (extract function and move helper)
#19: Refactor AgileTravel Flight Tests (move)
#20: Refactor AgileTravel Tests (extract to page Function)
#21: Refactor Agile Travel Tests (introduce page object)
#22: CRUD WhenWise Professional Tests
#23: CRUD WhenWise Professional Tests Refinement
#24 Dynamic Test data for WhenWise Create Professional Test
#25 File Upload Test
#26: WhenWise Create Client Test
#27: WhenWise CRUD Client Tests
#28: WhenWise CRUD Client Tests (Refactored)
#29: WhenWise Find Client Test
#30: WhenWise Client Sorting Tests
#31: Review: WhenWise CRUD Service Tests
#32: WhenWise Search Test
#33: WhenWise Client Membership Test
#34: WhenWise Create Non-Time-Based Service Test (Transformed Controls)
(haven’t converted one-on-one training to writing yet, if you are keen, leave a message here)
#38: WhenWise Business View Booking Test
#46: Create Client Invoice (inline-edit testing)
#47: Print Invoice (file download)