Welcome to issue #6 of Test Automation Weekly. In this week's issue we have detailed instructions on how to write integration tests for Node.js, really interesting bug in Apple iCloud, and many many more. 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
Node.js Integration Tests Best Practices — 40+ Best Practices List. Detailed instructions on how to write component tests in the RIGHT way including code example and reference to the example application. Example application. A Complete showcase of a typical Node.js backend with performant tests setup (50 tests in 4 seconds! including database!).
DO-178C and OWASP in avionics app testing — In this blog post, you will learn about the verification methodology developed to satisfy DO-178C and OWASP standards, and its execution to verify the software requirements and the architecture components on a dummy application.
Óscar Lugo Ruíz
Refactoring CSS: Strategy, Regression Testing And Maintenance (Part 2) — After analyzing CSS and its weaknesses, and management giving a green light to the refactoring project, it’s time to get to work. A team needs to agree on the internal code standards and best practices, plan out the refactoring strategy, and outline individual tasks. We need to set up a visual regression testing suite, and a maintenance plan to enforce the new standards and best practices in the future. Adrian Bece
Property-based testing is not the same as partition testing — This seems to imply that property-based testing isn't effective, because (if you accept the paper's conclusions) partition testing isn't effective. There's certainly overlap between partition testing and property-based testing, but it's not complete.
What are you even testing for? — Lukas says "All of what this post says is correct, but when writing tests for a react component, a library or an application, arguments about the testing pyramid or code coverage cannot give you guidance on which parts of the code infront of you would actually test and which parts you would leave untested."
Testing Routes with RSpec — Routing specs are one of the less-talked-about types of spec in RSpec’s toolbox. They offer you a speedy way to verify that specific URLs go to the correct controllers. If you are using the standard RESTful routes that Rails defaults to, then the chances are you won’t get a tonne of lasting value from these tests; however, there are two situations where you will get lots of value.
Our journey to managing Jenkins on AWS EKS — Here at BrowserStack, our engineers run on passion and coffee to build and ship awesome features at an incredible frequency to show our commitment to our loyal users worldwide. Here, our teams have to maintain confidence that their code works as intended, and indeed, our methodology is not based on “Hope that everything works”. BrowserStack
How to test component interactions — As you build more complex UIs like pages, components become responsible for more than just rendering the UI. They fetch data and manage state. This article walks through testing interactive components. You’ll learn how to use a computer to simulate and verify user interactions. Varun Vachhar
Are automated test retries good or bad? — What happens when a test fails? If someone is manually running the test, then they will pause and poke around to learn more about the problem. However, when an automated test fails, the rest of the suite keeps running. Testers won’t get to view results until the suite is complete, and the automation won’t perform any extra exploration at the time of failure.
Testing with Spring Boot and @SpringBootTest — With the @SpringBootTest annotation, Spring Boot provides a convenient way to start up an application context to be used in a test. In this tutorial, we’ll discuss when to use @SpringBootTest and when to better use other tools for testing. We’ll also look into different ways to customize the application context and how to reduce test runtime.
Automated Test Cases Creation and Maintenance — For a QA/automation engineer, one of the most painful points is to write a manual test case and then the test maintenance in JIRA/Excel or some test case management tool.
Load Testing SQL Databases with k6 — This short tutorial shows how to run a k6 test for load testing a database. In performance testing, we often trigger load tests that simulate realistic user flows, particularly those that are most commonly seen in production. This type of acceptance testing usually interacts with various parts of our infrastructure: web servers, microservices, databases, etc. k6
Testing Event-Driven Application Architectures: An Asynchronous Approach — Event-driven application architectures make it so that various components in a very large distributed system can communicate and interoperate asynchronously. Event-driven architectures are the glue that binds the various services and components that make up the system together.
What is Automation Testing: The Ultimate Guide — Automation helps you to accelerate running through numerous test scenarios to check that the results produced by specific actions or lines of code match expected results. If not, it raises an exception to let you know that something went wrong. Joe Colantonio
Senior QA Analyst (Remote)
The Senior QA Analyst will define testing strategy, facilitate manual testing, report on the success of new features and updates to the Mailchimp application, and advocate for users. The Senior Analyst will have an eye toward user experience, risk identification, and mitigation and experimentation.
Post your job with us.
🛠 Code, Tools and Resources
TestFlight — makes it easy to invite users to test your apps and App Clips and collect valuable feedback before releasing your apps on the App Store. You can now submit apps built with Xcode 13 beta 4 using the SDK for iOS 15 beta 4, iPadOS 15 beta 4, tvOS 15 beta 4, and watchOS 8 beta 4 for internal and external testing.
Runt — is a lightweight, concurrent, and parallel snapshot testing framework that requires minimal configuration. Checkout the documentation for an explanation of various features.
Peanut — provides a REST API, Admin Dashboard, and a command line tool to deploy and configure the commonly used services like databases, message brokers, graphing, tracing, caching tools. It is perfectly suited for development, manual testing, automated testing pipelines where mocking is not possible, and test drives.
Test Data — plugin is a part of the toolset for QA specialists and teams. Helps to generate multiple types of test data.
How I Found A Vulnerability To Hack iCloud Accounts and How Apple Reacted To It — This article is about how I found a vulnerability on Apple forgot password endpoint that allowed me to takeover an iCloud account. The vulnerability is completely patched by Apple security team and it no longer works. Apple Security Team rewarded me $18,000 USD as a part of their bounty program but I refused to receive it. Please read the article to know why I refused the bounty.
Introducing Playwright's New Test Runner — Playwright Test is a new test runner built from scratch by the Playwright team specifically to accommodate end-to-end testing needs. Join Principal Engineer, Andrey Lushinkov as he demonstrates how to use Playwright Test to author new tests, how to migrate existing tests, how to deploy them on CI, and debug them if something goes wrong. YouTube
What is quality? — This week the Peers are talking around the perennial topic of quality. The Peers dive into what quality might mean, but in classic testers' style, we talk about the importance of context. Quality is value to some person Jerry Weinberg: Quality Software Management: Volume 1, Systems Thinking, 1992. The conversation moves on talking about how we can even measure quality, be it via coverage, confidence, or other. The Testing Peers