-
Something that is untested is broken.
-
Why testing is required?
-
Static (code reviews, inspection, linting) vs. dynamic testing (running tests suites)
-
Black box and White Box testing
-
-
Unit Testing
-
Integration Testing
-
System Testing
-
Alpha and Beta Testing
-
Functional and Non-Functional Testing
-
-
Mocks, Stubs, Fakes, Spies
-
Code Coverage Reports
Software testing is one of the key parts of developing any application. Tests are where you write code to test your code. This helps prevent bugs and promotes cleaner code. It is also what allows us to use continuous deployment systems to deploy code confidently. With good test coverage, you no longer have to go through any manually click around to test your changes every time you push new code.
-
Software Testing [Read the portions mentioned in the Understand section]
-
Testing Your Frontend Code [Part 1 to 5]
-
A Skeptics Guide to Frontend Testing [Part 1 to 3]
Good unit tests should read like a set of instructions for the tested piece of code. A reader should be able to read through the tests and know immediately what the tested code is supposed to do, without having to look at the code itself.
-
Learn Test Driven Development [Extensive Resource]
Every language has different ways to support the same principles with its own set of best-practices and common steps. Please focus on this part since most of our projects are made in JavaScript.
Also, libraries such as React have their own standards and best practices in testing. We'll include that soon.
-
A Gentle Introduction To JavaScript TDD [Part 1, Part 2, Part 3]
-
JavaScript unit testing frameworks: Comparing Jasmine, Mocha, AVA, Tape and Jest
-
Udacity's JavaScript Testing (UD549) [MOOC]
A good test should only test it's contract with the other pieces of software that will use that piece of code. The test should NOT be testing a piece of codes implementation.
If tests are designed this way, you should be able to refactor any line of code in your implementation without having to refactor your tests.
You should avoid adding logic whenever possible in the assertion part of your unit tests. This not only makes your tests harder to read but it also makes your test code more likely to have a bug, and therefore not actually test the original code properly.
-
-
-
-
e2e or end-to-end or UI testing is a methodology used to test whether the flow of an application is performing as designed from start to finish. In simple words, it is testing of your application from the user endpoint where the whole system is a blackbox with only the UI exposed to the user.
-