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!
Pritesh fromĀ Software Testing NotesĀ hereĀ š.Welcome to theĀ 13th issueĀ of Software Testing Notes! š. There's a lot of good reads, tools and resources this week. Let me know which one is your favorite this week, just reply to this email!
Hope you have a great rest of the week.
šĀ Top Reads
How Much Testing is Enough?
āHow much testing is enough to qualify a software release?ā George Pirocanac lays out few helpful tips in the article on Google Testing Blog.
- Document your process or strategy.
- Have a solid base of unit tests.
- Donāt skimp on integration testing.
- Perform end-to-end testing for Critical User Journeys.
- Understand and implement the other tiers of testing.
- Understand your coverage of code and functionality.
- Use feedback from the field to improve your process.
Testing, Quality, and my inability to teach by Patrick Prill
Quality is relative, quality is in a constant flow, quality is highly subjective, quality is everywhere and nowhere, quality canāt be predicted, quality cannot be put in numbers.
Quality Assurance is more than just writing and executing test cases. What does quality mean ? and how can we approach testing ? Patrick Prill shares his perspective on how he approaches testing and quality.
Quality Assurance is a process. It is not a role by Alan Richardson
(QA == Process) && (QA != Testing && QA != Tester && QA != Role)
Quality Assurance is a process. It is not a role. Roles have responsibilities, and we all have a responsibility for quality.
Are Automated Test Retries Good or Bad? by Andrew Knight
Automated test retries can be a blessing or a curse. It all depends on how testers use them. If testers use retries toĀ revealĀ more information about failures, then retries greatly assist triage.
Andrew makes a compelling case about using retries for the failed test cases in automation suite. however there are many things that needs to be considered as this can become terrible antipattern if not given proper care. Explore about the case for it and against it in this post.
10 More Useful Git Commands You Should Know by Andreea Draniceanu via TestProject
Git has become one of things that you canāt live without. Find few useful git commands for everyday use shared by Andreea
Dealing with Intermittent Bugs by Nicola (Owen) Lindgren
Dou you remember that nasty bug that occurred once in 10 executions and you spent hours pulling your hairs on how the hack that happened ? Read this article as Nicola Lindgren shares some ideas on how to deal with intermittent bugs.
- Gather information about the bug
- Look at the logs
- Timebox the investigation
- Record what you have tried (be specific)
- Pair with someone
Working with legacy code by Tiger Abrodi
Code without tests is bad code. It doesnāt matter how well written it is; it doesnāt matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behavior of our code quickly and verifiably. Without them, we really donāt know if our code is getting better or worse. - Michael Feathers
So, how to work with legacy code ? how should we test it ? what kind of test can be performed ? Tiger Abrodi has put together a detailed article on the same.
āļø Automation
E2E Testing with React, Jest, and the TestProject JavaScript OpenSDK by Tyler Hawkins
Running End To End Test with TestProject JavaScript OpenSDKĀ to test a React app withĀ JestĀ test framework. The article includes,
- Getting Started with TestProject
- Configuring Jest
- Writing Tests with the JavaScript OpenSDK
- Running Our E2E Tests
Run Two Cypress Test Runners At The Same Time by Gleb Bahmutov
Wondering how to run two Cypress test runners concurrently ? Glebās got you covered. Learn with practical example on how to test a real-time Socket.io chat app by running two Cypress test runners concurrently.
How to execute javascript commands in cypress by Ganesh Hegde
In General, javascript commands are not much needed in cypress. The reason is it usually works directly within the browser. Still, if you are in need, Cypress provides a way to modify and perform Javascript actions. See below examples on,
- Method 1: Execute Javascript in Cypress by getting Native Dom Element
- Method 2: Execute Javascript in Cypress using window Object in Cypress
- How to change the text in HTML Element in Cypress?
- How to add an HTML element dynamically in Cypress?
ā¶ļø API Automation Testing Full Course [YouTube] | JavaScript API Automation by Dilpreet Johal
Dilpreet Johal has put together a Course on Learning API Automation Testing using Javascript with Supertest & Mocha. YouTube tutorial covers some of the topics listed below.
- Which libraries & frameworks to use for Javascript API Automation
- Installation & Setup and Write your first API test using Javascript
- API tests for HTTP GET, POST, PUT and DELETE method
- API Tests Optimization and Using Async/Await with Supertest
- Writing negative API tests, Mochawesome Reporter & API tests Jenkins Integration
šØ Performance
How a single PostgreSQL config change improved slow query performance by 50x by Pavan Patibandla
Sometimes a small change can have huge effect on performance. Pavan Patibandla writes about how they analyzed and made some small changes in their PostgreSQL config which improved query performance by 50x.
š”ļø Security
What is a Honeypot and How it Improves Network security? by Gurubaran KS
Honeypot is one type of security mechanism which creates a virtual trap to lure attackers. This is an intentionally vulnerable computer system that allows attackers to exploit the vulnerabilities.
Hack any Website - SubDomain A GUIDE TO SUBDOMAIN TAKEOVERS by Ananya Chatterjee
Introduction to perform a subdomain takeover with example scenario.
Easy Setup Charles Proxy to Intercept HTTPS traffic of Android Emulator by Kidd Tang
Looking for a way to intercept the HTTPS traffic in Android Emulator ? Kidd Tangās got you covered in this step by step guide to setting up Charles Proxy with Android Emulator.
š Accessibility
Overview of accessibility testing using DevTools
An article about accessibility testing in Microsoft Edge.
- Using the Inspect tool to detect accessibility issues
- Verify keyboard support by using the Tab and Enter keys
- Analyze keyboard accessibility issues using DevTools
- Testing contrast of text colors in various states
- Use the Rendering tool to test accessibility for visual impairment
š ļø Resources & Tools
ModHeader : Modify HTTP request and response headers:Ā
when you use hyper test in order to create test cases at that moment in time we have to use this extension which is known as mob header.
Classic Cache Killer:Ā
An extension that is used to clear the cache. It clears all the cache when you load a new web page.
Conftest:
Write tests for your Kubernetes configurations, Tekton pipeline definitions, Terraform code, Serverless configs or any other structured data.
šĀ 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.
And Finally,
When your integration test fails so hard it announces itself to your 44 million subscribers š¤£
šĀ Reach Out
Let me know what you thought about this newsletter, maybe you have someĀ ideas you'd like to share.
You can follow me personallyĀ @priteshusdadiya. I give insights intoĀ Testing, development & how I'm growingĀ Software Testing Notes.
You can followĀ @thetestingkitĀ to keep up-to-date on the community & fresh links to read.
Happy Reading. š„
Pritesh
Did You Enjoy This?
Then consider joining the 2,667 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.