This is the Software Testing Notes, a newsletter that goes out every Wednesday. I republish it here for sharing and referencing, but if you'd like to sign up you can do so right here:
Hello there! 👋
Welcome to the 139th edition of Software Testing Notes, a weekly newsletter featuring must-read content on Software Testing. I hope this week has been good for you so far.
This week, we will explore:
- SOLID Principles for Testers: The Dependency Inversion Principle
- QA myth busting: QA slows work down
- The challenges of end-to-end testing and how to face them
- How to reduce Test Run time by 66%
- Test Run with TicTacToe Game with Appium-Android Java
- and more…
🙏 We also made
Hand curated collection of best tools on the internet to supercharge your testing.
TestDevTools is a collection of 350+ hand-picked tools & resources for your every testing needs. Whether you're looking for a new Automation tool, framework alternatives, a new way to manage test data, a way to learn development or testing…
📚 Testing
SOLID Principles for Testers: The Dependency Inversion Principle by Kristin Jackvony
This is the last article of SOLID Principles for Tester series by Kristin Jackvony and it’s all about the Dependency Inversion Principle (DIP). The article demonstrates how to implement DIP through the use of interfaces, ensuring that changes in the low-level modules do not affect the high-level modules, and highlights the importance of abstractions not depending on details.
QA myth busting: QA slows work down by Vitaly Sharovatov
Another gem by Vitaly Sharovatov. The article details the roles of testing and QA, and why it cannot be skipped without compromising the final product. Vitaly explains how QA measures, such as continuous learning, reducing wait times, and shifting testing left, actually enhance the speed and quality of production processes by preventing defects and reducing rework.
Elevating Your Career: From QA in India to SRE in Poland (Podcast Summary) by Vamsi Penmetsa
This article shares Vamsi Penmetsa's journey of transitioning from a QA role in India to an SRE role in Poland, highlighting the challenges and strategies involved.
🔍 Software Testing
⚙️ Automation
The challenges of end-to-end testing and how to face them by Chun Fei ⭕️ Lung
Chun Fei Lung published a paper with the results of an online survey that asked 78 experienced test engineers about 13 commonly mentioned challenges with end-to-end testing using Selenium and how those challenges are addressed.
The article explores the challenges of end-to-end (E2E) testing in web applications, such as asynchronicity, flakiness, and brittleness. It also highlights the strategies they employ to overcome these challenges, such as various waiting strategies, re-executing test scripts, and using the Page Object pattern.
Get All Intercepted Network Calls In Cypress by Gleb Bahmutov
In this blog post, Gleb Bahmutov explains how to use the alias.all
syntax in Cypress to retrieve all intercepted network calls at once. The article details step by step process of setting up network intercepts, utilizing cy.get('alias.all')
to gather all network calls, and making flexible assertions against them with practical examples.
How To Load a Custom Test Fixture or Setup Projects When Running Playwright Test Code Generator by Butch Mayhew
Playwright Test Generator has some limitations when used from the command line, particularly the inability to run setup files or access authentication cookies during test code generation.
Butch Mayhew provides a workaround by creating an empty test with a page.pause()
command, which allows the setup files to run and gives access to the Playwright Inspector for recording interactions. This method helps generate accurate test scripts by integrating custom test fixtures and setup projects into the Playwright code generation process.
How to Wait For API Response in Selenium WebDriver 4? by Priyanshu S.
The one thing most struggle is with using proper waits in selenium. When it comes to APIs, Priyanshu S. suggests implementing a explicit wait conditions for API responses with practical example with Java and Selenium 4.
4 Steps for a 66% Reduction in Test Run Time: Boosting Speed and Efficiency by Nikolay Advolodkin
Everyone wants to make their test execution faster, but what is the blueprint for it? Well, look no further and take a look at this article by Nikolay Advolodkin proposing four key steps to improve test quality and speed: scripting atomic tests, running tests in parallel, reducing Selenium commands, and using explicit waits, ultimately demonstrating a potential 66% improvement in test run times by applying these strategies.
Configure and Run Selenium with Ruby on Github actions by Pradap Pandiyan
Are you using Ruby with selenium with your automation tests? or wondering how to get started with that? Pradap Pandiyan wrote an easy to follow guide on setting up Selenium WebDriver with Ruby, including creating an HTML report from test execution with a sample test script that navigates to Google and performs a search and automating the whole thing using GitHub Actions.
Parameterized Selenium locators with Java’s String Functions by Ardi Jorganxhi
How do you implement DRY principle for your selenium locators? Ardi Jorganxhi describes how to dynamically construct XPath locators with parameterization in Selenium WebDriver, leading to more robust and scalable test automation frameworks.
Test Run with TicTacToe Game with Appium-Android Java by Livdemirci
Game automation might be as hard it gets for the testing. Livdemirci has outlined how you can approach it by using TicTacToe game as an example that includes basic steps for the test, which involve interacting with the game by clicking random cells, detecting empty cells through image processing, and verifying the game's end condition.
P.S. Livdemirci has also demonstrated how to do End-to-End Image Processing with Appium.
🔍 Test Automation
💨 Performance
Running iOS Performance Testing on CI by Alexey Alter-Pesotskiy
XCTest works best, but it still has some limitations when it comes to performance testing of front-end. Alexey Alter-Pesotskiy showcases use of Firebase TestLab for running performance tests on physical devices by creating custom baselines in JSON and comparing test results with these baselines.
🔍 Performance Testing
🌞 Accessibility
Top 5 iOS Mobile App Accessibility Issues Pt 1. by Mark Steadman
This article by Mark Steadman explores the current state of mobile accessibility by analyzing common issues in iOS and Android applications. It details the findings from a personal study of 10 mobile applications, highlighting issues such as missing traits and improper grouping of content, which affect accessibility.
Building Accessible Websites: Key Testing Methods and Tools You Need by Kshitij Sharma
Kshitij Sharma shares benefits of implementing accessibility best practices, and provides practical examples such as using alt text, enabling keyboard navigation, and ensuring color contrast. Additionally, the article discusses the role of accessibility in compliance with legal standards and provides guidance on testing methods, tools, and continuous improvement to maintain an accessible web environment.
The infuriating inefficiency of accessibility audits by Eric Eggert
Accessibility audits plays a critical role in ensuring web accessibility and it’s adherence to WCAG guidelines. Eric Eggert discusses strategies to simplify audit reports, improve communication of findings, and suggests a collaborative approach between auditors and testers to foster better, long-term accessibility practices.
🔍 Accessibility Testing
🔥Shoutout
BrowserStack joins forces with Google on Webdriver BiDi
BrowserStack, Selenium, Google Chrome, and other contributors have come together to bring Webdriver BiDi to production! WebDriver BiDi enables bi-directional automation across all browsers, speeding up and enhancing flexibility in testing. Find out more from Google’s Blog!
WebDriver BiDi —is a new browser automation protocol which enables bi-directional automation workflows across browsers.
Share with 1,800+ readers, book a classified ad.
🛠️ Resources & Tools
OpenAPI AutoSpec — A local server proxy that generates new OpenAPI specifications from network requests to automatically convert network traffic into the specification.
superfile — A fancy and modern terminal file manager for Mac and Linux, with partial support for Windows, that features a nice UI, fully customizable, multi-panel view, and lots more.
JS Game Rendering Benchmark — A sprite-based performance test that compares a set of JavaScript-based rendering/game engines that are currently maintained (Three.js, PixiJS, Phaser, Babylon,js, etc).
📝 List of Software Testers
It's hard to find good articles, podcasts on Software Testing. Even hard to find people who create them. Are you also looking for amazing software testers to follow or read their content ? check out this page dedicated to software testers.
Do you also create content around Software Testing ? Submit yours here and I will add it to the list.
🎁 Bonus Content
📌 OTHER INTERESTING STUFF
- Wonder why some team members need more guidance than others?
- Organization Architecture
- Instead of restricting AI and algorithms, make them explainable
⭐ LAST WEEK'S MOST READ
- Considering Generative AI in testing by Callum Akehurst-Ryan
- Why Do We Test? by Paul Grizzaffi
- How Can You Excel As A Leader In Software Testing? by Darshit Shah
😂 And Finally,
How Developer/Tester Response To A Bug 🤣
📨 Send Me Your Articles, Tutorials, Tools!
Wrote something? Send links via Direct Message on Twitter @thetestingkit (details here). If you have any suggestions for improvement or corrections, feel free to reply to this email.
Thanks to everyone for subscribing and reading!
Happy Testing!
Pritesh(@priteshusdadiya)
Did You Enjoy This?
Then consider joining the 2,630 other people getting the Software Testing Notes newsletter. It's a collection of fascinating finds from my week, about wide range of topics surrounding software testing and whatever else catches my interest.