I have always been an independent thinker on automated software testing. (Unit tests, integration tests, UI tests) I am passionate about ensuring code is tested. However, I have never really cared if I needed to test something whether ivory tower theorists called a particular test an integration test or a unit test. I used the logic that says "How do I test that this specific piece of code works as intended?" and wrote tests to accomplish that without caring about ivory tower concepts. My primary goal is to make sure to test what needs to be tested without wasting time writing "Mary had a little lamb" tests that provide no value.
I'm currently in charge of a major new project and making sure it is getting proper automated tests. This is the biggest project I've been in charge of and I'm trying to hold myself to high standards. I'll need to make good choices on testing standards that other developers will follow. I probably am not going to go fully ivory-tower, but I think I should go through ivory-tower principles to confirm that I'm following the best of them and have solid reasoning specific to this project behind any deviations from those principles.
Details, if you care:
The project is a business-critical Blazor app (interactive auto mode. .NET.8, C#) being written by a team of 6 (2 Sr developers, a UX expert, a tester, a BA and a PM) It has a SQL Server back-end. The tester and the UX expert will write some of the automated UI tests because they are interested in building those skills. We will need basic tests that run against every build, and some tests that run every few days at most (long-running tests and tests that involve per-usage costs of 3rd party systems) We'll use XUnit for testing. The initial coding of the app will take about 18 months, and the back-end will be expected to be maintained for 15-20 years after release. At least 1 new client UI (a modernization in a few years, maybe a mobile app, etc.) will be written eventually against the back-end. We don't have any corporate edicts and the testing policy for this app will not be mindlessly applied to other projects in the company.
The question then becomes: What is a modern authoritative source for what automated testing should be in the ivory tower? Is there a book or website that I could consider as a basis to compare my decisions to?
NOTE: I'm not asking if there is a PERFECT authoritative source, just a source that has a comprehensive philosophy worth comparing and contrasting my testing to.
I'm currently in charge of a major new project and making sure it is getting proper automated tests. This is the biggest project I've been in charge of and I'm trying to hold myself to high standards. I'll need to make good choices on testing standards that other developers will follow. I probably am not going to go fully ivory-tower, but I think I should go through ivory-tower principles to confirm that I'm following the best of them and have solid reasoning specific to this project behind any deviations from those principles.
Details, if you care:
The project is a business-critical Blazor app (interactive auto mode. .NET.8, C#) being written by a team of 6 (2 Sr developers, a UX expert, a tester, a BA and a PM) It has a SQL Server back-end. The tester and the UX expert will write some of the automated UI tests because they are interested in building those skills. We will need basic tests that run against every build, and some tests that run every few days at most (long-running tests and tests that involve per-usage costs of 3rd party systems) We'll use XUnit for testing. The initial coding of the app will take about 18 months, and the back-end will be expected to be maintained for 15-20 years after release. At least 1 new client UI (a modernization in a few years, maybe a mobile app, etc.) will be written eventually against the back-end. We don't have any corporate edicts and the testing policy for this app will not be mindlessly applied to other projects in the company.
The question then becomes: What is a modern authoritative source for what automated testing should be in the ivory tower? Is there a book or website that I could consider as a basis to compare my decisions to?
NOTE: I'm not asking if there is a PERFECT authoritative source, just a source that has a comprehensive philosophy worth comparing and contrasting my testing to.