Anyone have advice on developing a testing strategy that covers realistic production scenarios? I find unit tests to be fast but not very realistic, and functional tests to be realistic but slow and brittle. Anyone have a happy medium? I'm working on a systems integration project and we're leaning on BDD with Selenium, but I'd rather know my options. Maybe a mix?
You're absolutely correct in the sense that there are certainly development costs (in terms of both development time and dollars) associated with the available testing strategies. In general, BDD with Selenium should produce outcomes of sufficient quality for you.
Depending on the purpose of the underlying system and how critical it is relative to operations, other additional techniques may be advisable (such as Test Driven Development/TDD or Unit testing) in order to assure adequate coverage of critical core components.
At FarShore, nearly 20% of our staff is tasked with QA testing exclusively, so we are tackling these exact type of questions every day. We usually advise a review the system's purpose, scale, anticipated rate of change for that system's code base, budget and based on that review, recommend a testing strategy that fits best for the parameters provided.
Happy to connect and offer additional insights or help with any guidance I can.