Software Testing Library
This library is a resource of collected resources that I’ve found helpful along with way of my journey, learning in software testing.
Exploratory Testing
- My Company’s Test Vision, Mission, and Strategy
- What!!! You Don’t Have Test Cases? Agile Testing Days USA 2019 - Video presentation given by Butch Mayhew
- Explore It? Explore It! - Exploratory Testing Video by Elisabeth Hendrickson
- Advice for the New Tester
- Exploratory Testing Explained - Detailed article on Exploratory Testing by James Bach
- Introduction to Rapid Software Testing Course - Video with James Bach
- Test Cases are Not Testing: Toward a Performance Culture - Video with James Bach Butch asks James a question
- Breaking the Test Case Addition Blog Series by Michael Bolton - Part 1 - Part 2 - Part 3 -Part 4 - Part 5 - Part 6 - Part 7 - Part 8
- All Roads Lead to Exploratory Testing - by Alex Schladebeck
- Explore It! - Book - By Elisabeth Hendrickson
- Three Digestible Diagrams to Describe Exploratory Testing - by Simon Tomes
- A Heuristic Approach to Test Charters - by Adam Howard
- Software Testing Heuristics: Overview - by Richard Bradshaw and Sarah Deery
- Test Heuristics Cheat Sheet - 2 page sheet put together by Elisabeth Hendrickson
- Questions to ask during a Session Debrief - by Marcus Gartner
- An Exploratory Tester’s Notebook - A guide to using a physical notebook when doing exploratory testing by Michael Bolton
- Expirements to improve your Exploratory Testing Note Taking - by Alan Richardson
- Exploratory Testing (ET) -What, When, Why and How - by Iryna Suprun
- Live Web Exploratory Testing Session - Exploratory Testing modeled and recorded by Alan Richardson
- Explore Galore! 30 Tips to Supercharge your Exploratory Testing Efforts - by Simon Tomes
- Why I’m Talking to Developers about Exploratory Testing - by Callum Akehurst-Ryan
- Testing Quality and My Inability to Teach - by Patrick Prill
- How to measure exploratory testing - by Rafaela Azevedo
- Test Strategy Templates - by Rafaela Azevedo
- Automation & Exploratory Testing - A symbiotic relationship - by Gareth Waterhouse
- What Does Testing Look Like Without Test Cases? - by Kim Engel
- Software Test Planning Worksheet - useful for ideas
- Modern Testing Principles
- Testing like the TSA - Great followup comments
- The Archaeology of Testing
- Complete the Main Quest First
- Testing isn’t just about acceptance criteria
- If a test falls in a forest…
- One way to introduce exploratory testing to your team
- James Lynsday: There are Plenty of Ways to Manage Exploratory Testing
- Why Checking Acceptance Criteria Isn’t Enough
- Feature Chat Sheet - Thanks Agile Testing Fellowship!
- 7 Types of Test Strategy
- Web Testing with Chrome Dev Tools
- Good Tests VS Bad Tests
- Exploratory Testing Faq
- Definition of Ready
- Testing on a Platform Team
- The Defect Expiration Date
- Teaching Exploratory Testing with Code
- Testing In Production, The Netflix Way
- We need to talk about testing
- A Journey in Test Engineering Leadership: Applying Session-Based Test Management
- Moving into “Modern Test Leadership”
- High Tech - Low Test or Problems with Testing
- Software Bugs that Caused Real Harm
- Do’s and Dont’s of Exploratory Testing
Big Lists
- Library of Testing
- Emily Bache Learning Hours
- Systems Thinkings Resources
- Awesome Sites to Test On
- How They Test - software companies
- Ministry of Testing Learn Timeline
- Test Buddy Exploratory Testing List
- Testing Times Link Page
- Exploratory Testing Index
- huibschoots long list
- Awesome Testing
- Performance Testing
- Nicola Lindgren favorite resources
- Big List of Engineering Blogs
- Software Testing Book List
- A Useable Definition of Quality
- 45 ways to break an api server
API Testing
- Postman Tricks and Tips - This public collection contains Postman Tricks and Tips about how to achieve some tricky postman use cases.
- Exploratory Testing an API - by Maaret Pyhäjärvi
- What is an API and how to call an API in JavaScript
- CATS API Automation - Based on OpenAPI spec
- API Tokens: A Tedious Survey - API Security and Authentication methods
- Microsoft REST API Guidelines
- Big List of API Testing Learnings
- How to test graphql API
- Dealing and Learning with JSON Path
Test Automation
- Test Automation Cirriculum Path
- Atomic Tests - great practices when building test automation.
- How to Teach Code
- Why Teach Ruby - Ruby may have a smaller place in the market. But that’s not why you should learn it.
- Ruby Quick Reference Guide
- Lesser Known Cypress tricks
- Solid Principles in Pictures
- A Complete Guide to Data Attributes
- Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
- Write fewer, longer tests
- Maybe Don’t Write That Test
- Your Tests Aren’t Flakey - Talk by Alister Scott
- Test Flakiness - One of the main challenges of automated testing
- Learn Ruby the Hard Way
- Ruby Programming Course
- Automation Addition - Pragmatic Approach to Test Automation - Paul Holland & Huib Schoots
- AwesomeList - Visual Regression
- Cross Branch Testing
- Intro to Contract Testing Part 1 - Part2 - Part 3 - Part 4 By Bas Dijkstra
- Definition of End-to-End Test Automation Success
- Why Should Software Testers Understand Unit Testing
- JSON Schema in 60 seconds
- Playwright cheat sheet
- JavaScript testing: 9 best practices to learn
- gitlab: Testing levels
- Selecting a Test Data Management Strategy
- What Tests Should I Automate
- A Beginner’s Guide to Test/BDD Frameworks
- Challenging automation flows
- Playwright Framework example lib/WebActions interesting
- A pied piper named “UI test automation”
- Test Automation Guidelines
- Getting Started With Test Automation (Oldie but goodie)
- API Testing Checklist
- Regular Expressions for testers
- Typescript Tutorials TotalTypescript
Test Automation Locators
- CSS Pseudo-Elements - Before and After Selectors Explained
- Weekly XPath/CSS Selector Challenge
- CSS SpeedRun
General Technology
- How Complex Systems Fail - Being a Short Treatise on the Nature of Failure; How Failure is Evaluated; How Failure is Attributed to Proximate Cause; and the Resulting New Understanding of Patient Safety
- Good/Cheap/Fast - pick two
- Will it CORS?
- Why Every Software Developer Needs to Learn Chaos Engineering
- Understanding positioning in CSS
- Testing Microservices, the sane way
- Deep Dive: Testing a Microservice Architecture with QA Environments
- How to Teach Git
- Cleaning Up Git History
- This Picture Will Change the Way You Learn to Code
- Continuous Integration and Feature Branching - by Dave Farley. I don’t agree with everythhing in this article but it has been helpful in expanding the way I think about branching and merging.
- Rubber Duck Debugging
- List of favorite command one liners
- Pedantic Checklist: Changing Data Model
- Gleb Bahmutov - OSS Projects
- AwesomeList Falsehoods Developers Believe
- Zen and the Art of Unit Testing
- Testing Strategy for DevOps - Testing in Production
- Software Testing Anti Patterns
- Software Correctness is a Lot Like Flossing
- Align Test Strategy with Business Strategy
- Become More Technical By Learning How Things Work
- Resilience engineering papers
- Project Guidelines - great resource for great practices, and can be used to get teams on the same page.
- Javascript Snippets
- Visual Guide to Regular Expressions
- A gentle introduction to Kafka
- Good enough
- DevOps Engineer Crash Course - Section 1
- DevOps Crash Course - Section 2: Servers
- My Logging Best Practices
- Software Does Not Fail
- Intro to SSH: Secure Shell 101 + Exercise
Agile
- Retrospective Plans - Collection of Retrospective ideas.
- The Mindset That Kills Product Thinking
- The CSPO Pathology
- gitlab: Quad Planning
- Epic Story Feature and Why They Matter
Web Technologies
- What happens when you go to google.com in browser
- How web browsers work - navigation Part 1
- How web browsers work - fetching data Part 2
- How web browsers work - parsing the HTML Part 3
- How HTTPS works
- How DNS works
- How Browser Work
- How Cookies Work
- How Dom Events Work
- What is CORS
- Mess With DNS
- Learn DMARC - email
- Interneting is Hard - Friendly web development tutorials for complete beginners
Security in Testing
- But I’m Not A Security Tester! Security Testing On The Web For The Rest Of Us - Kate Paulk
- OWASP Juice Shop - probably the most modern and sophisticated insecure web application + Map/Guide
- OWASP Top 10
- Hacksplaining - explains common web application vulnerabilities and exploits
- Big List of Naughty Strings - a big list of strings used to test vulnerabilities
- XSS Payload List - big list of XSS payloads
- Tryhackme - an online learning platform that teaches you about all things cybersecurity through gamified activities
- CA Security Testing
- OWASP API Security Project - API Security focuses on strategies and solutions to understand and mitigate the unique vulnerabilities and security risks of Application Programming Interfaces (APIs).
- Starter pack on Penetration/Security Testing for newbies - I am putting together a table a learning goals and resources that i hope will help Testers start out on their journey in Pen Testing .
- PracticalWeb Cache Poisoning
- How Hackers Steal Your Keys and Secrets
- Simplifying API Pentesting With Swagger Files
- Cyber Security Professional List
- Penetration Testing Tools Cheat Sheet
- Threat Modeling Manifesto
- CTF Live
- Netcat - All you need to know
- How to Secure Anything
- OWASP Mobile Security Testing Guide
- How to Test API Security: A Guide and Checklist
- awesome-api-security
- Study for Bug Bounty
- Google Dorks - Search strings to find things
- API Security University
Courses, Learning Paths, Exercises, and Workshops
- Docker for Testers - Self paced workshop on learning the ins and outs of docker.
- Docker Build: A Beginner’s Guide to Building Docker Images - Focusses on a container for a application build.
- Tester’s Playground - This includes challenges for Chrome DevTools, OWASP, and Accessibility.
- Wizardzines Mystery Tour - Site, currently 4 technology challenges to make you smarter.
- Learn Browser Testing - End to end testing and browser automation. By Umaar
- Down and Dirty With Chrome Dev Tools - A site put together to walk through many of the browser dev tools in chrome browser. this site hasn’t been updated recently but still provides a ton of value.
- DevTools Javascript Snippets - Helpful javascript snippets.
- 67 Weird Chrome Dev Tools Debugging Tricks Your Browser Doesn’t Want You to Know
- Javascript Questions - an exercise/quiz in vanilla javascript.
- Javascript callback functions explained
- How HTTPS Works in 10 Minutes
- Git Immersion
- SQL Zoo - Interactive exercises to practice SQL.
- Reddit: SQL Practice websites?
- Code Wars - Community created coding katas in lots of different languages.
- OWASP Juice Shop - probably the most modern and sophisticated insecure web application + Map/Guide
- Test Automation University - Applitools - Free
- BBST Foundations - Free content from older presentations. New courses offered here
- Learning Pathways - Created by Katrina Clokie
- bbst.courses - Paid courses but helpful to new testers.
- AwesomeList - Testing Courses
- Web Scraping 101 with python
- 12 Days of Testmas
- API Challenges - 39 challenges to test your API knowledge.
- PACT Contract Testing Workshop
- DevOps Exercises
- 30 Days of Postman
- Introduction to Observability for Test Automation
- List of Computer Science courses with video lectures.
- SQL Murder Mystery
- Testing With Charles Proxy Part 1
- GitHub Courses Beginner Friendly
JavaScript Articles
- JavaScript For Beginners: Objects
- 7 neat tricks for JS that you probably did not know
- 15+ Array Methods in Javascript
- All about Promises
- Typescript all features of last 3 years 2023
Video Courses
- Automating in the Browser Using JavaScript - A video tutorial by Alan Richardson on using javascript in testing.
Testing Tools
Text Tools
- Letter Count - This tool will count the characters or words in a block of text. I use it for creating strings with a specific character count when I test text fields.
- Bacon Ipsum or Lorem Ipsum Generator - I use this tool when I need to generate large amounts of text for text fields where a user will be able to enter several paragraphs of text.
- Convert Case - This tool comes in handy when I’m testing with Postman and my assertions are expecting the exact casing for string comparison. Convert Case will set all the characters in a string to lower case, upper case, sentence case, alternating case, and more.
- Big List of Naughty Strings - Thing a tester walks into a bar and orders (insert_naughty_string_here).
- Bug Magnet - Chrome extension that gives your browser access to common boundaries and edge cases for exploring
JSON Tools
- Pretty Print - JSON objects need indentation to be easily readable. This tool will take care of all of the indentation and spacing for you. This is especially helpful when you receive flattened JSON in a response and you want to be able to read through it.
- Online JSON Viewer - This tool will flatten your JSON for you by removing all the white spaces, which is helpful when you need to use your JSON in code.
- JSON Lint - I use this tool whenever I’m using JSON in a test and getting 400 errors. I paste the JSON into the tool and it will tell me whether my JSON is valid. If it’s not valid, it shows me the line with the error.
- JSON Schema - Tool to generate and validate json schemas.
- JSON Path - Tool used to validate the code needed to identify a json path, to get a value of a key within a json object.
Encoding and Decoding Tools
- URL Encoder/Decoder - This tool is great for testing cross-site scripting. Simply paste in your script and it will encode it in valid HTML format for you.
- JWT.IO - This official JWT documentation includes a tool that will decode a JWT. It’s really helpful for testing authorization, because you can see exactly what information your JWT is sending.
- Base 64 Decode and Encode - When you have an image or string that’s been encoded into Base 64, this is an easy way to decode it.
GUID Tools
- GUID Generator - I often need random GUIDs for my testing, and this tool will generate as many as I need.
- GUID Test and Validate - I use this tool to check GUIDs to make sure that they are valid.
HTTP Based Tools and Proxies
- Postman - Useful for making API calls.
- Charles - HTTP proxy useful for monitoring and modifying web traffic.
- Fiddler - HTTP Proxy works really well on Windows
- Code Generator - for HTTP Requests
- curl - API testing made really simple
- Curl Tips for Performance Engineers
- SpeedBump - TCP proxy for simulating variable yet predictable network latency
Lots of Tools
Security Testing
- BurpSuite - used to monitor HTTP traffic bug also has built in Web Vulnerability Scans for security testing
Performance Testing
- Jmeter - Free to use performance testing application
- NeoLoad - Easier to use but pricey load testing tool
- K6 - Load testing tool using javascript
- Locust - Load testing tool using python
- Vegeta - CLI tool written in GO
- Oha - CLI tool written in RUST
- Hey - another CLI tool
- Artillery
- DDosify
- Starting K6
Visualization Tools
- Kiri - Mindmap - Online mind map tool.
- MindMup - Create public mind maps free
- Diagrams.net - Create sharable diagrams with this tool, confluence integration available.
Miscellaneous Tools
- Risk Storming Game (Online)
- Rubular - This is a regex editor that allows you to put in a regex, add a string to test, and find out whether your string matches the regex. It is specifically designed for Ruby but can be used with other languages as well.
- NumVerify - This tool is helpful when you are testing international phone numbers. It lets you know whether a given number is valid, and which country it is valid in.
- Online Random File Generator: When you need to test files of a very specific size, this tool uses random strings to generate a file with exactly the size you need.
- 37 Sources for Test Ideas - List of Areas that may help spark an idea in order to find a critical bug.
- Generic Testing Personas - Useful for helping you understand a specific user of the system your testing
- Chrome Dev Tools - Great for using in exploratory testing, inspecting what is happening on a web page.
- Mastering Web SCraping in Python
- Testing Webhooks
Podcasts
- AB Testing - Modern Testing
- Testing Peers
- Test Guild - Automation
- Testers’ Island Discs
- PerfBytes - Performance Testing
- Ministry of Testing Podcast
- QA Lead
- DARKNET DIARIES
Books
- Explore It!
- Lessons Learned in Software Testing
- Agile Testing
- Continuous Testing for DevOps Professionals
- Agile Testing Condensed: A Brief Introduction
- Leading Quality: How Great Leaders Deliver High-Quality Software and Accelerate Growth
- Perfect Software And Other Illusions About Testing
- Quality Software Management: Systems Thinking
- Thinking in System: A Primer
- The Pragmatic Programmer
- The Effective Engineer
- Accelerate: The Science of Lean Software and DevOps
- Thinking Fast and Slow
- Little Black Book on Test Design PDF
Interesting Tools/Articles I want to investigate
- Test Crawler for screenshots and visual Regression
- Gatling Visual regression
- Learn Playwright and Puppeteer
- Spectre Visual Regression
- Jmeter Exercises
- Sudoku in browser TDD
- PortSwigger Dom INvader
- Read Anne-Marie’s Blog
- Self Hosted Gitlab Raspberry Pi
- Rspec web monitoring + Test Driven Devops
- Stryker-js - Mutation Testing
- Playwright Demos
- I figured out how DMARC works, and it almost broke me
- Memegen.link api
- Software Development Waste
- GoogleChromeDevTools Utilites + article
- Three Tips To Understand Chaos Engineering
- Peeky js test framework
- MAKING WORLD-CLASS DOCS TAKES EFFORT
- Picturing Git: Conceptions and Misconceptions
- Forward and reverse proxies explained
- Software Testing Portfolio (learning journey)
- Heuristics for Effective Software Development Organizations: A continuously evolving list.*
- You don’t need React for building websites
- How To Test
- Nginx Playground
- Oh My Zsh Cheatsheet
- What every software engineer should know about search
- git purr
- 7 Easy-to-Follow Best Practices for Writing Dockerfile
- API Test Creation Best Practices
- An Introduction to VisiData
- Web scraping by watching requests - Playwright
- complexity catastrophe
- [https://engineeringblogs.xyz/](Engineering Blogs, Big List)
- 5 Keys to Test Management for Remote QA Team
- K6 Load Testing to Grafana
- Maestro Mobile Automation
- Data Structures Objects and Arrays Javascript
- Domain-Driven Test Data Generation: A Category-Partition Method and Property-Based Testing Mashup
- Fix JavaScript errors that are reported in the Console
- Learning JavaScript through load test scripts
- Software Engineering Tips for CLMS Students
- Custom Dev Container Features
- Learn HTML Web Dev
- VS Code Can Do That!
- Design resources for developers
- Useful Javascript commands - twitter images
- Year of web Scraping
- Automatically speech to text with subtitles
- Javascript Best Testing Practices for Developers
- K6-Browser testing and reporting
- Performance testing is more than learning a toolset. K6
- How to scale your API to handle millions of calls? K6
- Load Testing Made Easy with K6: Using Faker Library and CSV Files
- 50+ CLI tools that you may find interesting
- Job Search Tools Github Repo
- Typescript Design Patterns
- Things they didn’t teach you about Software Engineering
- Request catcher for testing Webhooks and http clients
- DevTools Tips
- Useful DevTools Tips and Tricks
- 10 tips to make you a better js programmer
- 7 More JavaScript Web APIs to Build Futuristic Websites you didn’t Know 🤯
- 🚀 10 Github repositories to achieve Javascript mastery 🧙♂️🪄✨
- Reverse Engineering or how can I generate API documentation?
- Playwright Mastery: Integrating Web Servers, API Schemas, Geolocation, and Localization
- Bot Detect Captcha Practice
- Microsoft Dev Proxy - Tool
- Common Javascript Utility Functions for STring, Object, Array, Date
- Testing AI Prompts
- Free Mock data
- 2024 publish npm package
Playwright
VS Code Extensions
- Git File History - amazing look into the past
Skills Valued in Testing
Ten Skills that are Probably More Important for Testers than Tools and Test Automation. source by Paul Maxwell-Walters
- Analysis and Systems Thinking
- The Ability to Communicate with Tech Colleagues, Support, Management, Business People and Stakeholders
- Observation, Modelling and Note Taking
- Curiosity and a Desire for Exploration
- Tenacity
- Empathy for the User
- Business Domain Knowledge
- Formulating Rational and Consistent Arguments
- Persuasiveness and Influencing Skills
- Common Sense
Testing Quotes
- automation should not be a pain to maintain - Butch Mayhew