A guide for testing effectively and some of the strategies we’re fond of here at Boltmade.
We all test. We test our own code, we test other peoples code, we test whatever needs to be tested so we can be certain what we’re delivering is high-quality stuff.
We test for a few different, but complementary goals:
As defined by artofunittesting.com:
“A unit test is an automated piece of code that invokes a unit of work in the system and then checks a single assumption about the behavior of that unit of work.”
Strategies we’ve found effective for unit testing:
Wikipedia provides:
“Integration testing is the phase in software testing in which individual software modules are combined and tested as a group.”
Strategies we’ve found effective for integration testing:
Wikipedia provides:
“System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic.”
Strategies we’ve found effective for system testing:
We run almost every project with continuous integration, as part of our automated checks in our pull request process.
The simple answer: whatever makes sense for your project. Think about what the constraints are, the goals, the requirements. You have to make a decision, and be able to defend it, so long as you can do that, you should be fine.