Test Driven Development for some people is not considered as a primary concern and tends to be put aside when working on a tight deadline project, and the value of system integrity is not considered as high priority compared to, let's say a feature that needs to be implemented right away.
A system that has long life span requires metrics that measures system integrity, and to make sure the system doesn't collapse when one commit causes a chain reaction of exceptions thrown all over the place.
Testing in general have 2 types, white box and black box testing. Those 2 types can be done manually, or automated using tools such as RSpec or Minitest.
Project that has no system testing tends to rely on manual testing done by QA. The process requires instruction steps to assert on select features that has been implemented.
Manual testing is prone to error, incomplete, and slow compared to automated testing, but mastering the tools requires time and effort, and in here I would like to help you point to the right direction fast.
Following are some resources to help you build and master testing skills:
The best way to learn technology is by reading the documentation and it's source code.
If you're the kind of person that likes read and skimming through the pages while practices the examples provided, the following can help you start up your skills:
There are also courses out there that can help you build your skills while practicing the skillset online:
There are good examples of system specs on open source softwares, here are some of the good specs that you can have a look at:
In my future posts I will share you the steps that you can take to have a perfect start in Test Driven Development.