Awesome
How They Test
A curated collection of publicly available resources on how software companies around the world test their software systems and build their quality culture.
Foreword
One of the outcomes of the various Taqelah meetups was that many software companies got to share their testing and quality culture with the community. It was absolutely fantastic to see the amazing stuff companies are doing to test their software, and ensure quality of their products and platforms.
Apart from this, many companies regularly come forward and share their best practices, tools, techniques and culture of software testing on various public platforms like conferences, blogs & meetups. The resources are there but dispersed, lost into the internet.
There is no single knowledge repository that gives a direct look at these best practices, tools, techniques and culture of software testing these companies adopt. This repository intends to do that.
Happy Learning!
Please note, that all the resources mentioned here are publicly available resources.
Kind of topics here
Testing / quality of software goes beyond traditional activities of pre-release functional testing and test automation. Hence the kind of topics you can expect to read about here are:
- Functional testing
- Non-functional testing
- Test automation
- Testing in CI/CD
- Release management and it's impact on quality/testing.
- Quality processes and culture
- Testing in production (monitoring/observability, chaos engineering, site reliability engineering etc.)
- Customer / user support
- User research / user testing from product/UX perspective
Companies & how they test their software
<details> <summary>ACV Auctions</summary>Blogs
</details> <details> <summary>Adore Me</summary>Blogs
- Android and iOS application testing with appium and wiremock - intro
- Android and iOS application testing with appium and wiremock - setup
- Android and iOS application testing with appium and wiremock - all together
- UI Testing: A deep dive in (apparently) shallow water
Blogs
- Testing at Airbnb
- Better Android Testing Part 1
- Better Android Testing Part 2
- Better Android Testing Part 3
- Better Android Testing Part 4
- Better Android Testing Part 5
- Better Android Testing Part 6
- Better Android Testing Part 7
- Building an effective test pipeline in a service oriented architecture
- Tracking the money scaling financial reporting
Blogs & Articles
- How does Amazon get by with so few hours spent by its QA teams relative to Microsoft?
- How Amazon handles a new software deployment every second
- How is software developed at Amazon
- Amazon's approach to automated testing
- Automated testing for Alexa
- Best practices for testing your Alexa skills
Videos
- Testing and Troubleshooting with AWS Device Farm
- Proactive security testing at AWS
- Advanced Continuous Delivery Best Practices at Amazon
- UI, Load and Performance testing at Amazon
- Best Practices for Benchmarking and Performance Analysis in the Cloud
- Large Scale Load Testing Amazon.com's Traffic on AWS
- Chaos Engineering on AWS
- Continuous Integration best practices for software development
Blogs & Articles
- A look inside the quality engineering team at Appian
- Dogfooding Appian
- Chaos Testing a Distributed System with Jepsen
- Chaos Testing a Distributed System with Jepsen — Part II
- Chaos Testing a Distributed System with Jepsen — Part III
- My Journey as a Quality Engineer Intern at Appian
- Women in Tech: Meet 3 Quality Engineers At Appian
- What Does “Quality Assurance” Mean in an Agile World?
Blogs & Articles
Videos
- Testing in XCode - WWDC
- UI testing in XCode - WWDC
- Advanced Testing and Continuous Integration - WWDC
- Engineering for Testability - WWDC
- What's new in testing - WWDC
- Testing tips & tricks - WWDC
Blogs
- How to go about front-end testing with Cypress.io — a success story
- Automated security testing using language you already know
- Behaviour driven automation testing in .NET Core using BDTest
- My Testing Safari
- Begin with the end in mind: one team’s journey towards Continuous Integration
- Gaining confidence in automated checks
- Witness the (Android) fitness
- How to test your React · Redux application
- How to write acceptance tests for a Facebook Messenger bot
- An introduction to Pact testing in .Net Core
- Finding balance as a Testing Specialist
- Continuous Testing in Customer Experience @ ASOS
- Responsive website testing with Sizzy
- Testing authorisation scenarios in ASP.NET Core Web APIs
Videos
</details> <details> <summary>Atlassian</summary>Blogs & Articles
- Quality assistance: how Atlassian does QA
- Moving from quality assurance to quality assistance
- Developing quality assistance skills
- Quality Health Monitor: Gauging your team’s quality maturity
- Automated testing: 5 lessons from Atlassian’s Kubernetes team on testing infrastructure as code
Videos
- Meet the Atlassian QE team
- The Future of QA at Atlassian - Atlassian Summit 2016
- Quality at Speed, How JIRA Does QA
- Verifying Microservice Integrations with Contract Testing
- Agile Testing: It's about time - Atlassian Summit 2011
- Finding bugs before writing code - Sigge Birgisson
- Code Reviews vs. Pull Requests - Atlassian Summit 2016
- Mock Servers - Fake all the things! - Peggy Kuo
- Quality at Speed
- Improving Software Quality with Effective Feedback - Atlassian Summit 2012
Videos
</details> <details> <summary>Basecamp</summary>Videos
</details> <details> <summary>BBC</summary>Blogs & Articles
- 10x your collaboration on writing tests - Part 1: Understanding
- 10 guidelines on readability and consistency when writing Integration Tests
- Maintaining Mobile: Update on Mobile Compatibility Programme
- Improving test automation with PUMA
- Test Automation with PhantomJS, Grunt and Friends
- Behaviour Driven Development: Tips for writing better feature files
- Testing BBC Connected Red Button
- Automating testing for BBC iPlayer mobile part one: 3 Amigos
- Automating testing for BBC iPlayer mobile part two: automation
- Automating BBC iPlayer mobile testing part three: legacy vs new features
- Testing BBC iPlayer Mobile App
- New BBC iPlayer: internal testing of user journeys
- Testing mobiles: Mobile Compatibility Program
- Testing BBC iPlayer: Krispy Gherkin feature file aggregator
- Testing BBC iPlayer: reading XML, JSON response into Java
- Testing BBC iPlayer Release For Android Downloads
- Testing for BBC Online: The creation of the POD Test Group
Videos
- BBC College of Technology: Develop conference videos
- GTAC 2016: Scale vs Value: Test Automation at the BBC, GTAC 2016, Slides
Videos
</details> <details> <summary>Bumble</summary>Blogs & Articles
- Bumble Tech Blog - QA
- How 3 Process Patterns will change the way you do Test Automation
- Checking your app’s paid services without losing money
- Add Superpowers to your Appium-Android tests
- A monolithic architecture for our clients’ hundreds of versions: how we write and support tests
- White-box testing with Appium Espresso Driver
- Catching bugs on the client-side: how we developed our error tracking system
Videos
- The Joy Of Green Builds - Running Tests Smartly
- Uncover Secrets of Your App with EspressoDriver
- Application Backdoor via Appium
- Automate the impossible: blending the best of Android drivers
- Why do we do Test Automation Internal Mentorships for our QA Engineers?
- iOS Parallel Automation: run faster than fast
- How we saved time by teaching developers to test their own code
Blogs & Articles
- Why we left manual UI testing behind
- Recommender systems: When they fail, who are you gonna call?
- Speeding up UI tests with CodeceptJS and Playwright
- Testing Search Engine Optimization Scalably without Breaking a Sweat
Videos
- User Testing: Finding That One Thing Meatloaf Won't Do For Love
- Visual regression testing: why, what and how
- How Canva is Doing Software Testing
Blogs and Articles
- Improvement and Parallelization of Android Automation Testing
- 9 Things I Wish I Knew About Automated Software Testing Before I Started My Career
- Improve Java Code Coverage and Quality with Unit Tests and JaCoCo
- Learning To Love Automated Testing
- Robot Pattern Testing for XCUITest
- Unit Testing Behavior of React Components with Test-Driven Development
- No Testing Strategy, No DevOps
- Spec to Gherkin to Code
- Blackbox API Testing With Kotlin for RESTful Microservices
- Performance Testing of Event-Driven Microservices
- Software Quality Testing: Creating Quality Filtration Stacks
- Testcontainers & LocalStack for Spring Boot Functional Tests
- Automated Detection, Diagnosis & Remediation of App Failure
- Using Stub vs Mock in iOS Unit Testing
- Software Quality Testing: Creating Quality Filtration Stacks
- Using Apple’s Main Thread Checker Tool on UI Tests
- Marginal Utility and Taco Consumption
- Spec to Gherkin to Code
- Test-Driven Development –Ready, Set, Go with Google Cloud Test Lab
- Shifting Testing in Agile Teams to the Left
- Getting Started With iOS UI Testing
Videos
- GTAC 2016: What’s in your Wallet?
- SauceCon 2017: FROM MANUAL TO CI/CD - THE JOURNEY OF A BOY AND HIS TOOLS - Gregory Schmidt
Blogs & Articles
- Prabhagharan DK : Building our inhouse virtual device lab "caroufarm"
- Martin Schneider : Automated end-to-end tests and how they fit into our testing culture
- Carousell scales app automation with Browserstack
Videos
- HUSTEF 2019 - By Syam Sasi & Martin Schneider - Building a scalable device lab with Ansible at Carousell
- Carousell's automation journey with BrowserStack by Prabhgharan DK and Syam Sasi
- End-end test code as first class citizens by Abhijeet Vaikar - Covers some practices adopted at Carousell for quality of end-end test code.
Blogs & Articles
</details> <details> <summary>Deliveroo</summary>Blogs
</details> <details> <summary>Disney+ Hotstar</summary>Blogs & Articles
- Machine Vision in Test Automation
- Machine Vision For Test Automation — Part Two
- Using Apple's Testing Mjölnir: XCUITest
- Closed Loop API Test Automation
Blogs
- How Dollar Shave Club 3x'd velocity and learned to love their tests
- QA Environments on Demand with Kubernetes
Blogs
- Using Fault Injection Testing to Improve DoorDash Reliability
- Moving e2e testing into production with multi-tenancy for increased speed and reliability
- A Framework For Speedy and Scalable Development Of Android UI Tests
- Contract Testing with Pact
Blogs & Articles
</details> <details> <summary>Dropbox</summary>Blogs & Articles
- Offensive testing to make Dropbox (and the world) a safer place
- Accelerating Iteration Velocity on Dropbox’s Desktop Client, Part 1
- Accelerating Iteration Velocity on Dropbox’s Desktop Client, Part 2
- Two years at Dropbox
- Creating a culter of accessibility
- Finding Kafka’s throughput limit in Dropbox infrastructure
- Athena: Our automated build health management system
- The Programmer Mindset: Main Debug Loop
- Testing sync at Dropbox
Videos
- Integration testing with Bazel
- Virtualizing Mac Infrastructure at Scale: A CI Case Study with Dropbox and MacStadium
- GTAC 2014: Scalable Continuous Integration - Using Open Source, Slides
Blogs & Articles
- The process: Launching Duolingo’s Arabic language course - Increment magazine - How the language-learning app used staggered releases, dogfooding, and a culture of A/B testing everything to ship its first Arabic course for English speakers.
Blogs & Articles
- Tiered Test Automation
- Becoming a World-Class Tester
- Early Detection of Frontend Single Points of Failure
- eBay Motors: Screenshot Testing with Flutter
- Discovering Continuous Automation With Request Mirroring
- Failbot—Improving Visibility on End-to-end Tests
- Your Own Spring Test Context
- GUI Testing Powered by Deep Learning
- Integration Testing with React and Enzyme
- Introducing Regressr - An Open Source Command Line Tool to Regression Test HTTP Services
- eBay Releases Dynamic Application Security Testing Proxy as Open Source
- Scalable and Nimble Continuous Integration for Hadoop Projects
- Functional iOS Testing in Swift
- Next-generation BDD: From Automated Web Tests to Automated Web Acceptance Testing
- Validating Hadoop Platform Releases
- Finding Usability Bugs with Automated Tests
- 100% test coverage is not enough
- Ensuring Software Quality at eBay Denmark
- Software Quality: Elevating the Game
Videos
- Lightning talk at Selenium Conf about their test automation framework Breeze
- Applied Testing Heuristics in the Context of eBay
- Test automation for Android testing
- Implementing Test Automation in Agile Projects with Open Source Tools
- Test Automation - 10 (sometimes painful) Lessons Learned
- Parallizing UI tests on iOS
- Bingsheng Ru — How to build Automation Test as a Service for large-scale e-commerce website
- How we build & test software at eBay DE
Blogs & Articles
</details> <details> <summary>Etsy</summary>Handbook
Blogs & Articles
- Culture of Quality: Measuring Code Coverage at Etsy
- Quality Matters: The Benefits of QA-Focused Retros
- Divide and Concur
- Etsy’s Journey to Continuous Integration for Mobile Apps
- Etsy’s Device Lab
- What’s the value of transparency in testing and deployment?, Increment Magazine
- Mutation Testing: A Tale of Two Suites
Blogs & Articles
- AngularJS and UI-Router testing — the right way, Part 1
- AngularJS and UI-Router testing — the right way, Part 2
- Contract testing in Everon
Blogs & Articles
- How Expedia.com Uses Accessibility Automation
- Improving iOS UI Testing
- Unit Testing Apache Spark Applications using Hive Tables
- The Cost of 100% Reliability
- Getting started with a Dockerized Selenium Grid in your On-Prem Data Centers
- DA Kube — Selenium Grid using Kubernetes, Docker, Helm and Traefik
- Distributed Automation: How to run 1000 UI Automation Tests in 5mins
- Integration Testing in React
- How to Earn a Black Belt in GraphQL Testing
- How to: Emulate Amazon Simple Queue Service (SQS) for Testing Purposes
- Fixing Flaky Time Based Unit Tests
- Conversational Integration Tests for your Alexa Skills (Node/JS)
- Better Test Code Coverage Through Data
- Do you want to speed up your integration tests by 10x?
- Testing Elasticsearch Applications
Videos
- Mobile Automation in Continuous Delivery Pipeline
- Distributed Automation Using Selenium Grid / AWS / Autoscaling
- AWS re:Invent 2017: Use Amazon EC2 Systems Manager to Perform Automated Resilience Testing
Blogs & Articles
- Open-sourcing Python Test Runner for multiple tests in parallel
- Predictive test selection: A more efficient way to ensure reliability of code changes
- MobileLab: Highly accurate testing to prevent mobile performance regressions
- Sapienz: Intelligent automated software testing at scale
- Preventing performance regressions with Health Compass and Incident Tracker
- Finding and fixing software bugs automatically with SapFix and Sapienz
- Open-sourcing Flipper: a new extensible debugging tool
- BrowserLab: Automated regression detection for the web
- Getafix: How Facebook tools learn to fix bugs automatically
- Stetho: A new debugging platform for Android
- Open-sourcing Facebook Infer: Identify bugs before you ship
- Building and testing at Facebook
- Watir to WebDriver: Unit Test Frameworks
- Rapid release at massive scale
- Finding inter-procedural bugs at scale with Infer static analyzer
- Zoncolan: How Facebook uses static analysis to detect and prevent security issues
- How do you test your tests? An approach on probablistic flakiness score
- Faster, more efficient systems for finding and fixing regressions
- Test plans at Facebook
- Improving end-to-end tests' reliability at Facebook
- Autonomous testing of services at scale
Videos
- Systems @Scale 2019 - Continuous Deployment at Facebook Scale
- Mobile End to End Testing at Scale - SeleniumConf 2015
- Turning iOS End to End Testing up to 11 - Lawrence Lomax
- Readable. Stable. Maintainable. E2E Testing @ Facebook - Archit Pal Singh Sachdeva
- Automated Fault-Finding and Fixing at Facebook
- Damien Sereni, Testing and moving fast making Selenium work for Facebook
- Taqelah - Facebook Meetup - Raj Kamal - Shreya Bhat
- GTAC 2013: Simon Stewart - How Facebook Tests Facebook on Android
- GTAC 2014: Never Send a Human to do a Machine’s Job: How Facebook uses bots to manage tests
- Facebook Infer: Advanced Static Analysis at Speed and Scale - Facebook - DevTools@Scale2017
- Building Mobile Apps with Open Source Tools - Simon Stewart - Mobile @ Scale
Blogs & Articles
</details> <details> <summary>Flipkart</summary>Blogs & Articles
</details> <details> <summary>GitHub</summary>Blogs & Articles
- How GitHub uses automated testing to empower developers to write less
- MySQL infrastructure testing automation at GitHub
- octocatalog-diff: GitHub’s Puppet development and testing tool
- Browser Monitoring for GitHub.com
- How we ship GitHub Mobile every week
Videos
</details> <details> <summary>GitLab</summary>Handbook
Blogs and Articles
- An inside look at software testing at GitLab
- Introducing Accessibility Testing in GitLab
- How our QA team leverages GitLab’s performance testing tool (and you can too)
- How GitLab switched to Headless Chrome for testing
- How recent acquisitions introduce fuzz testing to GitLab
- How the Search Team at GitLab Implemented a Risk Map to Direct Automated Testing Efforts
Blogs & Articles
- Move over Selenium - UI Testing with Cypress
- Mocking SOAP APIs in functional tests using Nock
- React Native Application UI testing using WebDriverIO and Appium
Blogs & Articles
</details> <details> <summary>GoJek</summary>Blogs
- It's Time To Find And Kill Bugs
- Test Mobile Apps Using Web Traffic Interception and Mocking
- Why you should automate tests early
- Screenshot Testing our Design System on Android
- Advice from a Test Journeyman
- How I Gave My First Conference Talk
- 7 Myths About Software Testing
- The Untold Story of Golang Testing
- The first principles of ‘Testing’
- How to Run Grouped TestNG Tests Using Gradle
- Golang Integration Testing Made Easy - How we at Gojek implement integration testing in our development processes.
- Everyone’s A Tester While ‘Mob Testing’
- Good bug reports lead to great bug fixes
Books
- James Whittaker, Jason Arbon and Jeff Carolllo provide insights into testing at Google in their (slightly outdated) 2012 book How Google Tests Software. There is a seven part summary on the Google Testing Blog as well:
Blogs
Videos
- Meet Test Engineers at Google
- GTAC 2016: Evolution of Business and Engineering Productivity, Slides
- GTAC 2016: The Quirkier Side of Testings, Slides
- GTAC 2016: How Flaky Tests in Continuous Integration: Current Practice at Google and Future Directions, Slides
- GTAC 2016: OpenHTF - The Open-Source Hardware Testing Framework, Slides
- GTAC 2016: Integration Testing with Multiple Mobile Devices and Services, Slides
- GTAC 2016: Finding bugs in C++ libraries using LibFuzzer, Slides
- GTAC 2015: Juggling Chainsaws for Fun and Profit: Lessons Learned from Mobile Cross-Platform Integration Testing, Slides
- GTAC 2015: How to Component Test Soup Dumplings, Slides
- GTAC 2015: Chromecast Test Automation, Slides
- GTAC 2015: Automated Accessibility Testing for Android Applications, Slides
- GTAC 2015: Statistical Data Sampling, Slides
- GTAC 2015: Nest Automation Infrastructure, Slides
- GTAC 2015: Fake Backends with RpcReplay, Slides
- GTAC 2014: Chrome OS Test Automation Lab, Slides
- GTAC 2014: Make Chrome the best mobile browser, Slides
- GTAC 2014: Test coverage at Google, Slides
- GTAC 2014: The Importance of Automated Testing on Real and Virtual Mobile Devices, Slides
- GTAC 2014: Free Tests Are Better Than Free Bananas: Using Data Mining and Machine Learning To Automate Real-Time Production Monitoring, Slides
- GTAC 2014: Google BigQuery Analytics, Slides
- GTAC 2014: The Testing User Experience, Slides
- GTAC 2014: Going Green: Cleaning up the Toxic Mobile Environment, Slides
- GTAC 2013: Opening Keynote - Evolution from Quality Assurance to Test Engineering, Slides
- GTAC 2013: Webdriver for Chrome, Slides
- GTAC 2013: Karma - Test Runner for JavaScript
- GTAC 2013: Automated Video Quality Measurements, Slides
- GTAC 2013: Testable JavaScript - Architecting Your Application for Testability, Slides
- GTAC 2013: Breaking the Matrix - Android Testing at Scale, Slides
- GTAC 2013: Android UI Automation, Slides
- GTAC 2013: Building Scalable Mobile Test Infrastructure for Google+ Mobile, Slides
- GTAC 2013: Espresso: Fresh Start to Android UI Testing, Slides
- GTAC 2013: Web Performance Testing with WebDriver, Slides
- GTAC 2013: Continuous Maps Data Testing, Slides
- GTAC 2013: Finding Culprits Automatically in Failing Builds - i.e. Who Broke the Build?, Slides
Blogs & Articles
- Security Dashboard — Part 1
- Security Dashboard — Part 2
- Software Bill of Materials (SBoM)
- Basics of Web Performance Testing
- Web Performance Testing — DCube’s Practices
- Agile Testing Practices
- Why automate tests and not do it manually?
- Test Automation— Our challenges and how to overcome them
- Developers working peacefully with the security folks — How?
- Secure code review process in Agile processes — how?
- Application security testing process in Agile processes — how?
- Mobile Test Automation — What is it?
- Mobile Test Automation — The Bigger Picture
- Integration Tests (with examples)
- Hacking the Bug Bounty Program
- Basic Coding Practices & Hygiene
- To BBP or not to BBP?
- When using 3rd-party libraries…
- API Testing
- Performance Testing - What to consider…
- The Good Unit Test
- Basic Web Security Testing - Sessions
- Basic Web Security Testing — File Upload
- Basic Web Security Testing — APIs
- All my functional tests passed — time to celebrate?
- Mobile Testing in the Cloud
Blogs & Articles
</details> <details> <summary>Helpshift</summary>Blogs & Articles
- Testing business logic using DSLs in Clojure
- Functional Testing of Mobile and Web Apps using Clojure
- Load Testing using Tsung
- The Convoluted Magic of Leiningen Test Selectors
- On the testability of Ring Middleware in Clojure
Videos
</details> <details> <summary>hh.ru</summary>Blogs & Articles
- Quality assurance for mobile development at hh.ru
- Automating the release process
- How to bring off a gentleman’s release
- Top 5 Junior Automation Tester’s Questions About Automated Testing
- Top 5 Technical Director’s Questions About Automated Testing
- Top 5 Manager’s Questions About Automated Testing
- Top 5 Manual Testers’ Questions About Automated Testing
- Olya, tests and factory — the path to beautiful architecture and clean code
Blogs & Articles
Videos
</details> <details> <summary>Intel</summary>Videos
- GTAC 2016: IATF: An new Automated Cross-platform and Multi-device API Test Framework, Slides
- GTAC 2016: Docker Based Geo Dispersed Test Farm - Test Infrastructure Practice in Intel Android Program, Slides
- GTAC 2016: Automation on Wearable Devices, Slides
Blogs & Articles
</details> <details> <summary>Komoot</summary>Videos
</details> <details> <summary>La Redoute</summary>Blogs & Articles
- 96% Successful Daily Web Production Deploy
- Quality at Speed for our Mobile Application
- How We Test Our Event-Driven Microservices
- Cerberus, the birth of our Open Source Testing
- The Traditional Test Automation Pyramid, Pitfalls and Anti-patterns
Videos
</details> <details> <summary>LinkedIn</summary>Blogs & Articles
- LinkedIn’s approach to automated accessibility (A11y) testing
- Quality Control - LinkedIn's Testing Methodology
- iOS: Test Pyramid
- Writing Maintainable Integration Tests
- "Testscaling" with Test Engineering
- UI Automation: Keep it Functional – and Stable!
- Test Stability - How We Make UI Tests Stable
- Getting Code to Production With Less Friction and High Quality
- Eliminating toil with fully automated load testing
- The testing lifecycle at LinkedIn
- Testing Frontier, LinkedIn's Web Framework
Videos
</details> <details> <summary>Loveholidays</summary>Blogs & Articles
</details> <details> <summary>McDonald’s</summary>Blogs & Articles
</details> <details> <summary>Mattermost</summary>Blogs & Articles
- Improving performance (and more) through load testing
- Automated UI Testing With Cypress
- Unit Testing mmctl Commands
- Avoiding Flaky Tests
Blogs & Articles
</details> <details> <summary>ManoMano</summary>Blogs & Articles
</details> <details> <summary>Meesho Tech</summary>Blogs & Articles
- Scaling For Sale: Automating JMeter Distributed Load Testing
- How Meesho's dedicated A/B Infra enables us to experiment and scale new features
- How we reduced our test automation development time by 20%
Blogs & Articles
- We have created unit testing guidelines
- Automatically generating snapshot tests from Xcode Previews
- Android automated testing to support one-week releases
- What We Talk About When We Talk About Quality Assurance.
- Running distributed testing to reduce testing time
- Learn the differences of Test Doubles
- Test parallelization in Go: Understanding the t.Parallel() method
- Tool created to help improve local web frontend performance
- The current state of automation in the Merpay QA Team
- The Merpay QA Team: Maintaining Quality for Safe and Secure Products #TeamInterview
- A Deep Dive into Table-Driven Testing in Golang
- Accessibility Testing 101
- How is Security Testing Different from Typical Software Testing?
- Test Automation Policy in Merpay Frontend
- Mercari’s QA Engineering Initiatives 2020
- Merry Christmas and a Gift for QA Team
- Quality Assurance is Engineering Excellence
- Introducing Testdeck, an Open Source Tool for Microservices QA & Security Testing
- Specifying Kotlin tests with Spek
- Super fast and parallelized Android UITest(Appium) environment using AWS, Docker and Android emulator
- Speeding up Windows 10 / Microsoft Edge browser testing (Selenium WebDriver) using Azure DevTest Labs
- How HeadSpin will change mobile testing and monitoring?
Books
- How We Test Software at Microsoft by and Alan C. Page, Ken Johnston and BJ Rollison is a good starting point.
Blogs & Articles
- Munil Shah: Evolving Test Practices at Microsoft
- CSE Code With Engineering Playbook: Automated testing
- How Hydra Lab Empowers Microsoft Mobile Testing and Test Intelligence
Videos
Frameworks
- Playwright is a framework for Web Testing and Automation.
- HydraLab: Intelligent Cloud Testing Made Easy
Blogs & Articles
- How the Miro Developer Platform leverages contract testing
- QA Lead at Miro: a strategy toward quality
- QA process at Miro
- Managing hundreds of servers for load testing: Autoscaling, custom monitoring, DevOps culture
- Reliable load testing with regards to unexpected nuances
Blogs & Articles
</details> <details> <summary>Monzo</summary>Blogs & Articles
- Automated Testing & Accessibility on iOS
- How we load tested our bank before our £20 million crowdfunding round
Blogs & Articles
Videos
</details> <details> <summary>NASA</summary>Blogs & Articles
- Intelligent test automation gives orion spacecraft boos
- How did NASA make reliable software if they didn't invent unit tests?
- Software Development & Test
- Automated testing of nasa software
- NASA releases updated open source software bundle including testing tools
- Jon McBride Software Testing and Research (JSTAR)
- They Write the Right Stuff
- Agile Development Brings New Challenges for Software Assurance at NASA
- How NASA does software testing and QA
- Product Verification from their System Engineering Handbook
Other
</details> <details> <summary>Netflix</summary>Blogs & Articles
- Edgar: Solving Mysteries Faster with Observability
- Automation as a Service — Introducing Scriptflask
- Automated testing on devices
- Product Integration Testing at the Speed of Netflix
- Automated Failure Testing
- Announcing Electric Eye
- From Chaos to Control — Testing the resiliency of Netflix’s Content Discovery Platform
- NTS: Real-time Streaming for Test Automation
- FIT: Failure Injection Testing
- Testing Netflix on Android
- Lerner — using RL agents for test case scheduling
- Announcing Sleepy Puppy — Cross-Site Scripting Payload Management for Web Application Security Testing
- How Netflix does A/B Testing
- Fixing Performance Regressions Before they Happen
- Improving Pull Request Confidence for the Netflix TV App
Videos
- GTAC 2015: Enabling Streaming Experiments at Netflix, Slides
- GTAC 2014: I Don't Test Often ... But When I Do, I Test in Production, Slides
- GTAC 2013: When Bad Things Happen to Good Applications..., Slides
- Design Testing at Netflix
- Testing In Production, The Netflix Way
- Test Automation at Scale
- Evolution of Payments Testing at Netflix
- Test Selection: Heuristics and Machine Learning
- The Automation before pressing Play
- Applying Failure Testing Research @Netflix
- Getting Netflix on a Variety of Devices
- Electric Eye
- Measuring Perceptual Video Quality at Scale
Blogs & Articles
</details> <details> <summary>Nubank</summary>Blogs & Articles
</details> <details> <summary>OutSystems</summary>Blogs & Articles
Videos
</details> <details> <summary>PayPal</summary>Blogs & Articles
</details> <details> <summary>Picnic</summary>Blogs & Articles
- Reinventing the QA process
- The Role & Relevance of API Testing in an Agile World
- User testing: setting up the Picnic user testing lab
Blogs & Articles
</details> <details> <summary>Reddit</summary>Blogs & Articles
- iOS: UI Testing Strategy and Tooling
- Reddit’s E2E UI Automation Framework for Android
- From Fragile to Agile: Automating the fight against Flaky Tests
Blogs & Articles
- 23 Books for Quality Assurance Professionals
- Q&A with Slalom Build’s Inaugural 2019 Quality Engineering Academy
- Eight Signs Your Agile Testing Isn’t That Agile
- Journey of a Manual QA into an Automation World
- Playwright vs WebDriver: The Future of Browser Automation
- Quality Engineer Learning Roadmap
- Quality Engineering: Adapt and Apply
- The challenge of testing Data Pipelines
- Quality Engineering Core Principles
- What is the ROI of my test automation?
- The Regression Death Spiral
- Testing Angular Applications with Selenium Java
- Why isn’t all test automation run on the pipeline?
- How to test Internationalization with UI automation
- Redefining “Using Promises with the Page Object Model”
- Load Testing in a Nutshell
- Mobile Testing with Microsoft’s Xamarin Test Cloud
- Using Promises with the Page Object Model
Blogs & Articles
</details> <details> <summary>Shazam</summary>Blogs & Articles
Videos
- Keeping 100+ million users happy: how we test Shazam on Android
- 3 years of backend testing at Shazam - the stuff we got wrong
Blogs & Articles
- Webhook testing made easy
- The Unreasonable Effectiveness of Test Retries: An Android Monorepo Case Study
- iOS Application Testing Strategies at Shopify
- Building and Testing Resilient Ruby on Rails Applications
- Four Steps to Creating Effective Game Day Tests
- Mobile Tophatting at Shopify
- Great Code Reviews—The Superpower Your Team Needs
- Mobile Release Engineering at Scale with Shipit Mobile
- Software Release Culture at Shopify
Videos
- Scaling R&D to thousands of people without dedicated QA - Adam Archer (Shopify)
- Chat Ops and Developer Productivity [John Arthorne, Shopify]
- Resiliency Testing with Toxiproxy
- ChatOps at Shopify: Inviting Bots in Our Day-to-Day Operations
- Testing Rails at Scale by Emil Stolarsky
Blogs & Articles
- Everything You Need to Know About How Slack Approaches Accessibility Testing
- Android UI Automation: Part 1, Building Trust
- Android UI Automation: Part 2, Making It Easy
- Surf’s Up! Preparing for Huge Waves of Traffic via Load Testing
- How About Code Reviews?
- On Empathy & Pull Requests
- Disasterpiece Theater: Slack’s process for approachable Chaos Engineering
- Scaling End-to-End User Interface Tests
- Handling Flaky Tests at Scale: Auto Detection & Suppression
Videos
- UI testing is so easy - said no developer ever - Valera Zakharov, Kevin Lai
- Mobile performance testing at Slack – Valera Zakharov
- "Better Integration Tests for Performance Monitoring" by Maude Lemaire
- Valera Zakharov: Testing
Blogs & Articles
- Release Quality and Mobile Trains
- Integration Testing for Memory Leaks
- Hands-Off Deployment with Canary
- Running Android UI Test Suites on Firebase Test Lab
- Automatic Stubbing of Network Requests to Deflakify Automation Testing
- Alerting on SLOs like Pros
- Periskop: Exception Monitoring Service
Videos
</details> <details> <summary>Spotify</summary>Blogs & Articles
- Test Flakiness – Methods for identifying and dealing with flaky tests
- Testing of Microservices
- Generating test cases so you don’t have to
- Test Strategies and Spotify – Kristian Karl
- How to Build a QA Strategy Like Spotify
- How Spotify does test automation
- Model Based Testing at Spotify
- How We Improved Developer Productivity for Our DevOps Teams
Videos
- Spotify Model Based Testing - Kristian Karl
- Experiences Of Test Automation At Spotify - Kristian Karl
- Scaling Android Application Testing at Spotify - Sean Kenny
- How Spotify Does Testing for Mobile - Sean Kenny
- Test flakiness - Methods for dealing with flaky tests - Jason Palmer
- Applying Testing Mindset to Software Development - Andrew Dzynia. | Slides
Blogs & Articles
- Engineering a Better Working Group
- Turbocharging Our UI Tests
- UI Testing at Squarespace: Part I
- UI Testing at Squarespace: Part II
- Six Attributes of Beautiful Systems
- Under the Hood: Ensuring Site Reliability
- Continuous Localization at Squarespace
- Creating a Code Review Culture, Part 1: Organizations and Authors
- Creating a Code Review Culture, Part 2: Code Reviewers
Blogs & Articles (& stackoverflow questions about stackoverflow obviously! :) )
- Which tools and libraries are used for testing by StackOverflow developers?
- How TDD-oriented is the SE team?
- Does Stack Overflow have automated tests?
- What tools and techniques are used to test UI changes?
- Adding Static Code Analysis to Stack Overflow
Blogs & Articles
- Running three hours of Ruby tests in under three minutes
- Game Day Exercises at Stripe - Learning from
kill -9
- Fast and flexible observability with canonical log lines
- Learning to operate Kubernetes reliably
Blogs & Articles
- ⬅️ Shifting left QA
- What QA Engineers do at Stuart
- 🌎 Webhook Testing At Stuart
- 🔬 Under The QA Testing Microscope
Blogs & Articles
- #BehindTheBug - Learning from our mistakes
- Gradle Incremental Test Runner
- Service Level Testing for Microservices in Swiggy
Blogs & Articles
- Ten-year experience in DBMS testing
- Расшифровка доклада: О чём я говорю, когда говорю о тестировании корректности работы компиляторов (In Russian)
Videos
</details> <details> <summary>The Guardian</summary>Blogs & Articles
- Software quality in a world of microservices and continuous deployment
- Testing in Production: rethinking the conventional deployment pipeline
- Data-Driven Quality
- Testing in the right places
- The software testing identity crisis
- Device wall of awesome: how Lego helped our digital development
- QA testing for the Guardian's Content API
- Real-time QA: staying confident with code
- Testing, testing: the Guardian attends a QA community meet-up
Blogs & Articles
</details> <details> <summary>Trendyol</summary>Blogs & Articles
- Manual Testing for Mobile Applications
- Acceptance Tests On CI Pipeline
- Regression Testing in Mobile Development
- Automated Integration Testing over Gitlab
- UI Testing Challenges of The Trendyol Mobile App
- Get the Most Out of UI Tests With XCode Test Plans
- How to Test Deeplinks with XCUITest
- Writing Pact Contract Tests with GoLang
- Integrate Slather to Trendyol Project
- UI Test Roadmap with Kaspresso
- Trendyol Android Team Unit Test Practice
- The Importance of A/B and Exploratory Testing (ET) in Trendyol iOS App
- Mobile App Complexity: Things to Consider While Estimating Test Effort
- Couchbase Integration Testing for Golang via Testcontainers
- The Different Types of Testing on Trendyol iOS App
- PIT Mutation Testing on CI/CD Pipeline
- How to Test Database Queries and More with Node.js
- Differences Between Mobile Web and Mobile Platform Tests
- Mocking API Calls in UI Tests
- How to Make iOS UI Testing fast and reliable
- How to Write Unit Tests for Selector Functions in Swift
- Integration testing with Wiremock
- Device Selection for iOS App Testing
- Measuring Data in App with Marketing Event Tests
- Heuristic Test Strategy for Mobile Software Test
- Meaningful Error Messages for iOS UI Tests
- Make UI Testing possible with TYGenerator
- Adaptation of Empathy Mapping to Mobile Test
- Automated Visual Testing With Snapshots: Part 1
- Automated Visual Testing With Snapshots: Part 2
Blogs
- End-to-end tests retry strategies
- How we improved reporting and monitoring of test automation results
- Cluecumber Report Maven Plugin for Cucumber test reporting
- Building fast and reliable web applications
- Cucable Maven plugin for parallel execution of Cucumber scenarios
- Creating a Culture of Quality
- Elasticsearch and Kibana for Selenium Automation
Blogs & Articles
- Integrating Cypress Tests With Docker, Buildkite, and CICD
- What to Consider When Writing E2E Tests
- 1,000 Foot Overview of Writing Cypress Tests
- TypeScript All the Things in Your Cypress
- Dealing With Email Flows in Cypress Tests
- Ideas for Configuring, Organizing, and Consolidating Your Cypress Tests
Videos
- GTAC 2015: Hands Off Regression Testing, Slides
- GTAC 2013: Testing Systems at Scale @Twitter, Slides
- Testing for products with a microservice architecture - Building an agnostic test framework
Videos
- GTAC 2015: The Uber Challenge of Cross-Application/Cross-Device Testing, Slides
- Using the Octopus Framework - Jeff Hu
- Inside Uber's secret self-driving car testing facility
- Ludwig: A Toolbox for Training and Testing Deep Learning Models without Writing Code
- Chaos Engineering @ Uber -- Dianne Laguerta
- Observability infra @ Uber
Blogs & Articles
- Introducing Shadower: A Minimalistic Load Testing Tool
- Supercharging A/B Testing at Uber
- Introducing Ballast: An Adaptive Load Test Framework
- Octopus to the Rescue: the Fascinating World of Inter-App Communications at Uber Engineering
- Introducing Hypothesis GU Funcs, an Open Source Python Package for Unit Testing
- Best Practices for Unit Testing in React Version 16
- Monitoring Data Quality at Scale with Statistical Modeling
- Introducing Piranha: An Open Source Tool to Automatically Delete Stale Code
Handbook
Videos
</details> <details> <summary>Visma</summary>Videos
</details> <details> <summary>WalmartLabs</summary>Blogs & Articles
- Test Automation of Query Understanding AI/ML based Model for an eCommerce Search - Kushal Kumar Verma
- Elements of Successful Massive Scale Automated Testing - Maciej Adwent
- iOS Test Automation @WalmartLabs - Chaoyi Chen
Videos
- SauceCon 2019: The Push From Within: A Journey Of Transformation - Claude Jones at Walmart Labs
- SauceCon 2019: Test Armada - Evolution of a Value-based Test Automation Platform - Pranav Verma at Walmart Labs
Handbook
</details> <details> <summary>Wingify</summary>Blogs & Articles
- Performance Testing a data pipeline at scale
- Automated Heatmap Verification E2E using Selenium and Canvas
- Automated environment deployments
- Automating Web Push Notifications @Selenium Conference 2016
- Testing AngularJS Apps End to End Using Protractor
- Overcoming the Challenges of Performance Testing Single-page Apps
Blogs & Articles
- Software Developers, Communicate Your Intentions (TLDR: do it using tests)
- Meet Raven TestKit: Wix Engineering's Open Source Tool to Test Sentry Reports
- How to Test Your Redux App
- Testing Asynchronous Code
- How to integrate 3rd Party APIs without Fear
- Keep Your Tests Clean and Isolated with a Context
- Asynchronous Sad Path Testing in React Using Jest and The Driver Pattern
- Keep your tests clean, by refactoring
- Functional Testing with Tagless-Final
- Overestimated value of test documentation
- Testing Metrics: Are You Really Sure about the Quality of Your Product?
- Integration Tests in JavaScript That Don’t Suck
- Building and Open-Sourcing Wix’s A/B Testing System
- Mockingbird: The Why, When and How of Testing with Mocks — Part 1
- Mockingbird: The Why, When and How of Testing with Mocks — Part 2
- Mockingbird — Part 3 — The Pitfalls
Videos
- The Price of TDD is Eternal Vigilance
- Clean Tests
- Testing with Protractor
- To Test or Not To Test?
- Screenshots in Automated Testing: When? How? Why?
- Driving to UI Test Heaven
- Detox: tackling the flakiness of mobile automation
- Testing For Performance
- Detox: Graybox End to End Tests and Automation Library for Mobile Apps
- TDD for the Curious
- E2E testing with Javascript
- Intro to TDD
- Meaningful Code Reviews
- E2E testing with Javascript
- TDD: Discover Implementation by Stepping Small
git
</details> <details> <summary>Wrike</summary>Blogs & Articles
- Onboarding Process in Wrike QA Automation Team
- Code Review Without Queues
- Generating a Smoke Test Suite
- How To Improve Code Quality in an Autotest Project
- Allure Integration at Wrike
- Test Markup in QA Automation
- Autotesting Optimized: Intellij IDEA Plugins in Service of QA Automation
- Callisto: An Easy Way To Run Selenium Tests in the Cloud
- All QA articles
Videos
- Onboarding in QA Automation Team
- Test Markup in QA Automation
- Allure Integration at Wrike
- Smoke Tests Suite Generation
- Autotests Runs Optimization with IDEA Plugin
- How static analysis can help in QAA processes
- Test quarantine or how to manage flaky tests
- How to survive with lots of tests
- IntelliJ IDEA plugins in QA Automation
- Selenium(road to Kubernetes
- Callisto: how we learned to stop worrying and love Selenium
- Performance testing of iOS applications
- Why the Era of vintage TMS is going to be over?
- How to save a year of your time every day
- Playlist with all 10 mins of Wrike QA
- QA playlist
Blogs & Articles
- Building an End to End load test automation system on top of Kubernetes
- Selenium Conf Gets a Dose of Zalenium
- Zalenium: A Disposable and Flexible Selenium Grid Infrastructure
- Zester – Unit Tests on Steroids
- Selenium WebDriver Explained
- Lean Testing, or Why Unit Tests are Worse than You Think
- Do We Really Need UI Tests?
- Integration tests with Testcontainers
- Stop using constants. Feed randomized input to test cases.
- End-to-end load testing Zalando’s production website
- A Journey On End To End Testing A Microservices Architecture
Blogs & Articles
- Hello, World! - Includes interesting aspects of how Zerodha managed testing and their principles around engineering quality.
Blogs & Articles
- Zoopla's Holistic Testing Model
- Measuring web page performance at Zoopla
- Scaling Playwright tests with tag annotations
- Zero bug policy
- Accessibility testing at Zoopla
- Contract Testing 101
- Emulating QA and Production Environments with Next.js and Caddy
Contributors
<a href="https://github.com/abhivaikar/howtheytest/graphs/contributors"> <img src="https://contributors-img.web.app/image?repo=abhivaikar/howtheytest" /> </a>Contribution
Want to contribute? Just fork and raise a PR!
Credits
- Images in banner used from https://undraw.co/
- Idea inspired from the awesome lists.
- Static site powered by docsify.
- Contributors list generated using contributors-img
- All the authors and the companies they represented in the resources.
Code of Conduct
Please refer to the code of conduct here.