BDD/TDD – example for modern, distributed systems
Thank you for inspiring materials.
I try to learn BDD/TDD practices. I have read your last blog post https://specflow.org/bdd/a-bdd-journey-with-specflow/ and Ken Pugh series of articles on Specflow site about testing matrix, differences between TDD, BDD.
What is missing in almost all tutorials or examples about BDD/TDD is link between acceptance tests and technical tests, for modern, distributed systems.
Almost all materials show only how to write separately hight level acceptance test, and integration/unit tests on component/class level, usually for systems created in classical mvc design (server side rendered ui).
I would like to ask, is there preferable development process for modern, distributed systems, where ui is separate app (or even many apps , one feature could be implemented by many modules (or microservices), all components could be created by different developers/teams? Do think that classical outside in development (recommended in BDD world) still have sense? I mean: creating acceptance test, creating unit/integration test for ui app view, implementing ui feature (mocking beckend), creating test for api service, implementing api service, creating test for application core(mocking another modules or externals system, maybe database), creating test for provider modules, etc.., making acceptance test pass, repeating whole process for another test scenario. During whole process, which could take many days, acceptance test in CI/CD pipeline will fail.
Is it valueable some kind of consumer driven contract testing, for example that frontend team specify tests for backend api, etc? Or writing gherkin scenarios for system as whole, and separately for different app components (frontend, backend, separate modules in monolith system, or separate microservices).
Are there another approaches?
I would be grateful if you prepare webinar, blog post, or recommend another materials, showing whole process for more complicated scenario.
Mateusz Szczeciński thanks a lot for your interesting request. I moved over your question to the General Discussions, so that more people are seeing your question and might have the chance to point you to a good learning resource. In the meantime, I also asked the SpecFlow team if we are aware of any good learning resources. We will keep you updated.1
Please sign in to leave a comment.