Hi there. In this week's issue we have an article about Facebook's experience on service testing, a complete guide to set up Charles proxy and more. Want something mentioned? Tweet us at @testingdigest. Happy reading!
If you'd like to support Test Automation Weekly please share this issue with friends and colleagues. Don't forget to subscribe to our newsletter to stay up to date on all news.
📚 Articles, Tutorials, and Opinions
Autonomous testing of services at scale — The components of an integration test. The testing infrastructure provides the foundation on top of which engineers write their tests, and the execution platform for running them. Enabling developers to prototype, test, and iterate on new features quickly is important to Facebook’s success. To do this effectively, it’s key to have a stable infrastructure that doesn’t introduce unnecessary friction.
Flexible Cypress Data Setup And Validation — This post will introduce you to a very powerful way of creating and re-using data in your Cypress tests. By re-using the expensive to create objects like users, projects, etc. you will make your tests much much faster, and potentially the tests will be easier to read and maintain.
Supercharge your test script with a DSL — This article will show you how you can make your test scripts more readable and maintainable. To do that, I'll test a demo application with a custom DSL. DSL is short for a Domain Specific Language, and in this case, it allowed me to write meaningful code specific to our business requirements.
The Best Test Automation Framework Is… — In this social world, it is very easy to get biased into believing that some practice is the best practice, or some automation tool or framework is “the best.” When anyone makes the statement – “this <some_practice> is a best practice”, or “this tool <name_of_tool> or framework <name_of_framework>” is the best.
Testing Bash completions — If you've ever wondered why SDKMAN! rarely breaks, the answer is simple: Loads and loads of tests! helpermethod
A Complete Guide To Set Up Charles Proxy In Any QA Environment — In this article, I will share some tips and tricks for testers on how to leverage Charles proxy in QA testing. Gnana Prasanna B
Testing Distributed Systems — List of resources on testing distributed systems.
Structuring, testing and debugging procedural macro crates — In this blog post we'll explore how to structure a procedural macro, AKA proc-macro, crate to make it easier to test. We'll show different testing approaches: unit tests, for code coverage; compile-fail tests, to ensure good error messages; and end-to-end tests, to validate behavior.
Denotational Homomorphic Testing — Almost a million years ago, I was dealing with some sinister bugs inside the data structures in linear-base and to stop the nightmares I decided to just test the specification of the data structures themselves. I ended up using something that I’ve been calling denotational homomorphic testing. In this post, I’ll walk through how I ended up with this and why this is legitimately helpful.
Tests aren’t enough: Case study after adding type hints to urllib3 — We wanted to share the journey, what we learned, and problems we encountered along the way as well as celebrate this enormous milestone for the urllib3 project.
Seth Michael Larson
The Test Coverage Trap —If you’ve ever been to a developer interview in your life, you must’ve heard the question. How much test coverage is acceptable? Some people immedately say 100%, some say 90% and it ultimately stops at like 50%. For some reason that’s the lowest number I heard so far. I’ll try to break down the topic from my point of view and share my ideas along the way.
Senior Automation Engineer (US Remote)
We are aiming for bringing a strong automation engineer that understands Cypress.io and open to learn even more. This role heavily involves using the test runner, and thus we would like to find a candidate who is both passionate about writing end-to-end tests using this test runner, and has deep experience writing Cy specs.
Post your job with us.
🛠 Code, Tools and Resources
Making Better Pull Requests — In this blog post, I've discussed pull requests and how to make them better.
Fuzzing Forum — This project aims at hosting tutorials, examples, discussions, research proposals, and other resources related to fuzzing.
Truthy — Package truthy provides truthy condition testing with Go generics.
Modern Unix — A collection of modern/faster/saner alternatives to common unix commands.
Introducing Playwright test runner — In this talk, we'll get an introduction to Playwright Test. We'll start from scratch with a simple test to see how Playwright Test runs parallel by default and supports multiple browsers. We will learn about "fixtures" that make tests configuration easy and flexible. We'll see how to do data-driven tests and how to manage testing artifacts. YouTube
Testing The Infinite Scroll With Cypress — In this video, I confirm the infinite scroll fetches the items as I scroll to the bottom of the page. Different tests confirm the loading element appears and disappears, the number of items gets incremented correctly, the backend API is called, and that the user can get back to the top of the page by clicking the "Back to Top" element. YouTube
Hackable with Ted Harrington — If you don't fix your security vulnerabilities, attackers will exploit them. As testers, we have a responsibility to help to secure our applications. In this episode, Ted Harrington, author of Hackable: How to Do Application Security Right, shares how to defend against attackers by learning to think like them. Discover how to eradicate security vulnerabilities, establish a threat model, and build security into your development process. Joe Colantonio and Ted Harrington