Answer posted at the end of this post
Disclaimer
This topic might violate the general rule about how to ask questions. But I'm very sure its answers will add great value and hope the question will therefore not be closed.
Question
What resources (ideally books, because they're consistent) are there explaining about advanced test automation practices - Something like follow-up guide on auto testing after one is familiar with the basic concepts (Like if you read a programming book and now need to learn about software architecture).
Example topics that should be covered
How do you express the "functional dependency order" of tests?
I.e.test2
makes use of functionalitytest1
tests exhaustively. How do I express that in a test? Background: I'd If test1 and test2 both fail, it should be clear, that test1 is the one I should look for an error first.How do I express priorities for tests?
E.g. there istest_show_error_message
andtest_software_starts_up
.test_software_starts_up
is the the test with more priority and if anything happens should be looked at first. How do I express that?How do I express that tests take only short time or a long time to test?
How do I express that tests have external dependencies?
Unit tests, Integration Tests, System Tests, ... Do I have a completely separated test system for each of these? If yes, How do I make sure to not forget to start up each of them after a change?
How should I implement the same test with many different inputs?
E.g. I want to test anadd(a,b)
function: do I have many different tests with rather silly names liketest_test_lower_bound
and make it difficult to overview or do I use some kind of CSV table to feed in data? Pros? Cons?How do I handle database test?
Do I build up and destroy a database server everytime a test starts that needs the database? Do I use one huge test database containing all test data for all tests and use transactions and rollbacks? What I test code that finishes transaction? What I I'm working with a MySQL database?How do I maintain all of the tests?
What I've found so far
The following resources explain about these advanced topics:
Robert Nystrom touches some topics in his book Game Programming Patterns.
Justin Searls talks a bit about general test management
Background
I see many, many books explaining the basics and abstract concepts of (auto) testing (e.g. why should we automate?). However, I cannot find resources explaining how to handle/manage/structure tests.
Out of scope topics
The following are topics, that should not be covered, as they should already be familiar concepts to the reader.
- What is testing?
- Why is testing necessary?
- Psychology of testing
- Unit tests are not integration tests
- The Software development lifecycle
- White Box VS black box testing
- Test categories
Answer
(Still people here feel that answering your own question is a bad idea, so I'll post my answer here:)
It seems like there really isn't any resource like this.
For the sake of reference: I'm trying to gather information in this repository.