TL;DR notes from articles I read today.
The big bad guide on database testing
- Check for data mapping, ACID properties and data integrity of your DB, and ensure they implement your business logic accurately.
- The most common test techniques are transactions for the ACID properties, checks of keys and indices, parameters and results of stored procedures, evaluation of triggers and field constraints, etc.
- Stress testing and performance testing are critical too.
- SQL queries are the most reliable way to qualitatively test apps with low or medium complexity.
- Use a database testing tool that considers the business, data access and UI as well as the database itself.
Full post here, 8 mins read
7 debugging techniques to speed up troubleshooting in production
- Remove or automate all the configuration needed to run the app by taking advantage of containerization and aiming for zero configuration.
- Don’t fall into the tech stack soup trap. The fewer technologies or ‘right tools’ you use, the better, to avoid a pile of dependencies.
- Use 80% of your logging for 20% of your most important code (the parts used the most).
- Make it simple and quick to replicate customer issues. Use a tool to import only the records needed from the production database to your machine.
- Place breakpoints in obvious places in the application, with one easily locatable method per UI event.
Full post here, 7 mins read
Four steps to creating effective game day tests
Game Day tests deliberately trigger failure modes in production systems to practice response to unpredictable situations.
- List all potential failure scenarios. Consider which parts of your infrastructure are completely safe, what are your blind spots, what happens if a server runs out of space or in case of a DNS outage or DDOS attack.
- Create a series of experiments to anticipate how things will break - what side effects may be triggered, whether alerts will be correctly dispatched, whether downstream systems may be affected.
- Test your human systems. Consider how team members need to interact when an incident unfolds.
- Address the gaps and patch any holes you find. Check which hypotheses held up in practice and which ones did not. Establish a plan to correct these and run a new game day test to check whether your hypotheses are now valid.
Full post here, 6 mins read
Get these notes directly in your inbox every weekday by signing up for my newsletter, in.snippets().