Intro to Testing

We are using Mocha + Chai to deal with assertions, Enzyme to testing React components themselves and Puppeteer for UI testing the final product.

Each section on testing will delve into examples.


  1. Mocha Website
  2. Chai API
  3. Enzyme API
  4. Puppeteer API
  5. Types of Software Testing
  6. What is Smoke Testing
  7. What is Interface Testing
  8. What is Reliability Testing
  9. What is Compliance Testing
  10. What is Localisation Testing

Functional Testing

Unit TestingTesting of an individual software component or module is termed as Unit Testing.
Integration TestingTesting of all integrated modules to verify the combined functionality after integration is termed as Integration Testing.
System TestingThe entire system is tested as per the requirements. It is a Black-box type Testing that is based on overall requirement specifications and covers all the combined parts of a system.
Sanity TestingSanity Testing is done to determine if a new software version is performing well enough to accept it for a major testing effort or not.
Smoke TestingIn simple terms, verifying whether the important features are working and there are no showstoppers in the build that is under testing.
Interface TestingInterface Testing is defined as a software testing type which verifies whether the communication between two different software systems is done correctly ie APIs, web services etc
Regression TestingTesting an application as a whole for the modification in any module or functionality is termed as Regression Testing.
Beta/Acceptance Testing (UAT)Performed by the client and verifies whether the end to end the flow of the system is as per the business requirements or not and if it is as per the needs of the end-user.

Non-functional Testing types include

Performance TestingThis term is often used interchangeably with ‘stress' and ‘load' testing. Performance Testing is done to check whether the system meets the performance requirements.
Load TestingIt is a type of Non-Functional Testing and the objective of Load Testing is to check how much load or maximum workload a system can handle without any performance degradation.
Stress TestingThis testing is done when a system is stressed beyond its specifications in order to check how and when it fails.
Volume TestingApplication undergoes a huge amount of data and Volume Testing checks the system behavior and response time of the application when the system came across such a high volume of data.
Security TestingSecurity Testing is done to check how the software or application or website is secure from internal and external threats.
Compatibility TestingIt is a testing type in which it validates how software behaves and runs in a different environment, web servers, hardware, and network environment.
Install TestingInstallation and Uninstallation Testing is done on full, partial, or upgrade install/uninstall processes on different operating systems under different hardware or software environment.
Recovery TestingIt is a type of testing which validates how well the application or system recovers from crashes or disasters.
Reliability TestingChecks whether the software can perform a failure-free operation for a specified period of time in a particular environment.
Usability TestingUser-friendliness check is done. The application flow is tested to know if a new user can understand the application easily or not.
Compliance Testing(Also known as Conformance testing) is a nonfunctional testing technique which is done to validate, whether the system developed meets the organization’s prescribed standards or not.
Localization TestingThe product is checked to assure that it behaves according to the local culture or settings