Hire Me for Automated Testing

Automated testing, whether is it in the form of Unit Testing, API testing, Integration Testing or UI testing is often neglected part of software development work-flow. Which is quite understandable. It takes developer's time. Time that he can use to create production code. Nevertheless, time spent on writing and maintaining automated tests pays off in multiple ways:
  • through safer refactoring
  • better coverage then manual testing
  • because it runs continuously, after every commit, unlikely manual testing that happens at best after a feature is completely implemented, acting as a safeguard and early defect detection and prevention
  • proves that a certain bug is solved, and guards it from creeping in again
As great as it is, do not forget that automated testing is not replacement for manual testing. Automated testing cannot find new bugs, as no real intelligence sits behind it. Manual testing is however great feed for automated tests. Combining these two is the key of having stable maintainable product.
One, often missed property of automated test is that they erode. As new functionality is added, new automated tests are added to cover it, but old ones tend to be forgotten. Some of them are starting breaking perhaps because of API change, others because some set of predefined values is changed, a certain library is updated, OS is patched... Automated tests need to be maintained just like the code they cover does. Never allow failures to start being ignored. It is like a plague, living developers a feeling that sloppy is tolerable. If for some reason a certain tests cannot be fixed within reasonable time, isolate it in the separate run batch, call it a quarantine, postponed, suspended..., but make it clear that it is intentionally separated.