Test Automation overview

The use of special software to control the execution of tests and compare the expected results with the outcome provided by the tests, is called test automation.
With automated tests we can automate repeated actions which are time-consuming when performed manually, and ensure the functionality of our code. Test automation is critical for software development teams which produce software in short cycles in order to ensure that the software can be reliably released.

Javascript is a language that is, by design, difficult to debug. It is dynamically typed, it is based around asynchronous callbacks, almost all data types are mutable, almost no functions of the standard library are pure, and the list goes on. And these are not just flaws in the design; they are what makes the language what it is. It is therefore important to be equipped with the correct tools when setting out to correct your code. I am not talking about fancy debuggers and static code analyzers, just two very simple libraries. So simple in fact they do not even qualify as separate libraries. They are just a couple of hundreds of locs that you can copy right into your project and modify to your needs. My sample implementation for each is provided.