Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gunnar-miklis/learn-testing
Practice. Learn. Improve. (Intro into: Testing, DevOps, CI/CD. Unit-, Integration- and End-to-End Tests)
https://github.com/gunnar-miklis/learn-testing
cicd cypress devops end-to-end-testing integration-testing jest unit-testing vitest
Last synced: about 2 months ago
JSON representation
Practice. Learn. Improve. (Intro into: Testing, DevOps, CI/CD. Unit-, Integration- and End-to-End Tests)
- Host: GitHub
- URL: https://github.com/gunnar-miklis/learn-testing
- Owner: gunnar-miklis
- Created: 2023-08-31T13:33:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-11T14:59:13.000Z (6 months ago)
- Last Synced: 2024-07-11T17:15:37.373Z (6 months ago)
- Topics: cicd, cypress, devops, end-to-end-testing, integration-testing, jest, unit-testing, vitest
- Language: JavaScript
- Homepage:
- Size: 88.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Intro in Testing
- DevOps
- CI/CD
- Testing
- Example
## DevOps
➡️ Focus on People, Processes and Tools for the benefit of business agility.1. **💡 Idea**, Userstories
2. **`>` Code**, Programming the Idea
3. **⚙️ Build**, Executables
4. **📦 Deploy**, Runtime Environment
5. **🔍 Manage**, Production (and Testing)
6. **📈 Learn**, Continuous Improvement
## CI/CD
➡️ **Build. Test. Deploy.** Continuous integration, automated testing and deployment.
- Purpose: to avoid “merge hell”.
- Typically done by a CI/CD server/pipeline.
- Benefit: always have a testable and functional build.### 1. CI – Continuous Integration
➡️ Commit code to a shared repo frequently.
- Commit, push/pull code constantly.
- Each commit triggers automated (unit) tests.
### 2. CD – Continuous Delivery/Deployment
➡️ Deploy code automatically.
- If the CI tests are successful, commits will be deployed automatically.
## Testing### Strategies
- unit test
- test individual units of code (e.g. single functions).
- tools: e.g. `JEST`
- integration test
- test multiple components & services and how they work together.
- e2e test
- test entire apps, like an end user would do.
- simulate human behavior (e.g. by clicking buttons automatically).
- tools: e.g. `CYPRESS`
- performance test
- functional test
- etc.### Order
1. Unit Tests (highest priority)
2. API Tests (high priority)
3. UI Tests (normal priority)
4. Exploratory Tests (mimic user behavior to find bugs/errors)
5. UX Tests (user experience)
6. Beta Test (5% of user base)### Mocking
➡️ Use sample data. Simulate (data) input.
## Code Example with JEST
### file
- sum.js
- sum.test.js### code in sum.js
```js
function sum( a, b ) {
return a + b
}
```### test in sum.test.js
```js
// "test suite" = collection of tests
describe( 'My Feature', () => {
// description of what is being tested
// describing the behavior of the code
it('finds the sum of a and b', () => {// run/execute code
const result = sum( 2, 2 );
// test some fixed sample data
expext( typeof result ).toBe( 'number' );
expect( result ).toEqual( 4 );
expect( result ).not.toBe( null );
} );
} );
```