We all know how important it is to test code. Test-driven development, continuous integration, and other testing techniques are all crucial for helping us build quality software that users want.
After all, the ultimate goal of testing is to ensure we’re building a product that meets our needs—not just once when we first build it, but continuously over time as new features get added and old ones get removed.
Test driven development is a great way to ensure your code remains clean and well-documented as you iterate on your product.
But while writing tests can be a challenge in its own right, sanity testing takes things up an entire notch. The goal of sanity tests is to ensure that no matter what state your code is in—regardless of whether you’ve just pushed a hotfix or are doing major refactoring—it’s still operating within acceptable parameters. This will catch regressions early on so they don’t have time to wreak havoc on your codebase later on.
What is Sanity Testing?
Sanity testing is the practice of running a series of tests to make sure your production environment is still functioning as expected, even if you’ve made major changes or implemented new functionality.
You’re essentially checking the sanity—or health—of your codebase. The best way to understand what sanity testing is all about is to think about it as the opposite of stress testing.
While stress testing is all about pushing your code to its limits—to see what breaks when you have lots of users on your site or are trying to handle a ton of transactions—sanity testing is about making sure nothing has changed.
Sanity testing is important because it allows you to identify any issues before customers or other parts of your business start encountering problems. Knowing what your code does and does not do at any given moment is crucial for maintaining good uptime, quickly identifying problems when they arise, and preventing nasty surprises down the road.
Run Your Tests in IDEs
Ideally, you’ll have tests that you can run manually to check whether your code still works as expected.
However, since you’ll probably be running a series of sanity tests at various points throughout the day, manually checking everything would take an impossibly long time. Plus, once you realize one of your tests has broken, you want to be able to fix it immediately.
While some developers prefer to use automated testing tools such as Selenium, you might want to consider running sanity tests in your code editor instead.
This will allow you to immediately see whether your code still does what it’s supposed to do—no waiting for an error or bad result. You can do this with a variety of tools, including linters like PyLint, static analysis tools like pylint, and code checkers like pyenv-virtualenv.
Check Your Code’s Quality With linting
Linting is a code analysis technique that can be used to catch bugs, enforce programming conventions, and improve readability. It’s a great way to ensure your code has a consistent and standardized look and feel that’s easy to read and maintain. Linting can also help with sanity testing.
You can use it to check whether any of your code has been modified since you last ran a sanity test. If you’ve modified code related to a particular feature, for example, you can add it to a code linting file and include it in your sanity checks to make sure nothing is broken.
Run a Static Analysis Tool
A static analysis tool will let you check whether your source code complies with certain rules, conventions, and best practices. With static analysis, you can quickly identify a wide variety of issues, from minor stylistic problems to major issues that could cause internal errors or lead to a data breach.
You can also use static analysis to sanity test your code. If you’ve added a new feature, modified an existing one, or changed something else significantly, you can check your code base with a static analysis tool to make sure nothing is broken. If you see issues or warnings, you can create a new sanity test to check whether they’ve been fixed.
Run an Automated End-to-End Test Suite
End-to-end tests are a great way to sanity test your code. You can use them to check whether your application is functioning properly, including steps to create new users and make changes to their account.
You can run end-to-end tests manually, but this can be time-consuming. If you’ve made changes to your code, though, it can be hard to remember to run your tests—and even harder to remember to check whether they passed or failed.
An automated end-to-end test suite, on the other hand, can run on a schedule. This will make it much easier to remember to sanity test your code, and will also make it simpler to check whether your tests passed or failed.
Sanity testing is a crucial part of every developer’s workflow. It can help you catch issues before they become larger problems, as well as make it easier to identify problems when they arise and fix them quickly.
You can run your sanity tests in your code editor, use code linters and static analysis tools to check your code’s quality, and run an automated end-to-end test suite to ensure your application is running as expected.
With these techniques in your toolbelt, you’ll be able to sanity test your code at any point in your development process, as often as you need to.