Documentation
Description
This document is a general catch from concepts and features that I feel should be referenced during the development of an application so as to ensure quality.
Virtual Machines
Why:
Due to the diverse nature of operating systems in the digital ecosystem. It is imperative to test the digital product developed on as many configurations as possible thereby ensuring consistent functionality and user experience.
Install common machine configs on a VM(virtual machine). This allows the testing and thereby a degree of quality control across OS's.
Virtual Machines allow a development teams to all run the same configuration, thereby ensuring consistent development. The code runs the same where ever the code is executed
DockerGoal:
- read-ability
- consistency
- Syntax
Function/Method/How: Checks code against a given set of rules. Options:
- lint code manually via CLI
- text editor plugin -> lints as code is produced
The process of checking small chunks of code to see if they work as expected
- function
- objects
- methods
Frameworks for Unit testing
End to End Test
Testing the program by emulating a user behavior
Building
Continuous Integration (CI)
Build and test code in an automated way
Continuous Delivery (CD)
Keeping code in a state of readiness to be pushed into delivery
- Choose when to deploy new features
Continuous Deployment (CD)
- Deploy features as soon as they are ready