From 'Continuous delivery and continuous deployment': https://youtu.be/bTGj4PeRPjs
- Source Control Management
- CI - Continuous Integration
- Integration tests
- Unit tests
- System Integration Tests (SIT)
- Operational Acceptance Tests (OAT)
- Security Tests (Pen)
- Compliance Tests
- Deploy
- Delivery
Azure Pipelines see: https://github.com/boeschenstein/AzureDevOps/blob/main/README.md
From: https://www.guru99.com/software-testing-seven-principles.html
- Principle 1 Testing shows presence of defects
- Principle 2 Exhaustive testing is impossible
- Principle 3 Early Testing
- Principle 4 Defect Clustering
- Principle 5 Pesticide Paradox
- Principle 6 Testing is context dependent
- Principle 7 Absence of errors - fallacy
what | why | how |
---|---|---|
unit | functional | autmated |
integration | acceptance | semi-automated |
component | smoke | manual |
service | exploratory | |
UI |
Book: Succeeding with agile
costs | Type | number of tests |
---|---|---|
++++ | Manual tests | + |
+++ | UI tests | ++ |
++ | Service tests | +++ |
+ | Unit tests | ++++ |
- Verify functionality
- Language of business
- Criteria of completeness
- Full tests are problematic
How
- Eliminate UI
- Use In-Memory DB
- Mock Infrastructure
- Mock Cross-Cutting concernes
What
- Focus on essential
- Minimize coded UI-Test
- Smoke tests instead
- Minimize manual tests
- Exploratory tests instead
https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-dotnet-test
Speak the same Language: https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-best-practices#lets-speak-the-same-language
https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-best-practices
Examples: https://github.com/boeschenstein/aspnetefcore5-specification/blob/main/README.md#unit-test-helpers
- FluentAssertions
- Moq
- AutoMoqer/AutoMoqCore
- Bogus, AutoBogus
- AutoBogus / AutoFaker
- AutoFixture
- FluentAssertions: https://fluentassertions.com/
- Moq, AutoMoq
- https://github.com/Moq
- https://github.com/thomashfr/AutoMoqCore
- .NET classic, with example: https://github.com/darrencauthon/AutoMoq
- Bogus, AutoBogus, AutoFaker
- https://github.com/nickdodd79/AutoBogus
- Links and documentation: https://github.com/bchavez/Bogus
- Other libraries: 2 different
Faker.net
:- fakes data: addresses (UK, US), boolean, companies, countries, currencies, ...
- A) https://github.com/oriches/faker-cs (based on ruby faker)
- B) https://github.com/jonwingfield/Faker.Net (based on ruby ffaker, sugar)
- AutoFixture: https://github.com/AutoFixture/AutoFixture
- Schouldly: https://docs.shouldly.org/
- Cheat Sheet Moq, xUnit, AutoFixture: https://www.jankowskimichal.pl/wp-content/uploads/downloads/2016/01/Cheatsheet_Moq_xUnit_AutoFixture.pdf
- FakeLogger, TimeProvider https://devblogs.microsoft.com/dotnet/fake-it-til-you-make-it-to-production/
- More Information on DDD testing: https://github.com/boeschenstein/clean-architecture/blob/main/README.md
- SpecFlow (todo)
- Unit testing https://docs.microsoft.com/en-us/dotnet/core/testing/
- Integration Testing https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests
- EF Core Testing: https://docs.microsoft.com/en-us/ef/core/testing/