4 ms·
One approach I've been thinking about is focusing on enhancing the Behaviour-Driven Development (BDD) workflows. I was was really into cucumber and its tooling
by jacobr1 4y ago
One approach I've been thinking about is focusing on enhancing the Behaviour-Driven Development (BDD) workflows. I was was really into cucumber and its tooling ecosystem a decade or so ago. One of the challenges is maintaining these "user story" like specifications and then creating boilerplate mapping/translation between the concepts in the specification and unit tests and sometimes also the implementation. Keeping that updated as a project grows in complexity (and bringing on team members that might be less dedicated to BDD purity and related practices like rigorous refactoring) becomes a burden. But if you used an ai-code-gen augment to help maintain the environment, and autogenerate both the code and tests, really all you would be doing is clarifying mistakes in intent, or insufficient specificity. So the question would be how do you build tooling to optimize for highlighting and reviewing the changes to the system (diffs - but maybe semantically enriched in some way? Maybe start with smarter comments?) Maybe generating synthetically workloads and reviewing how that changes the system (sorta like fuzz-testing but with a smart-agent that understands how the system works without you needing to specify all the details). Importantly you could also work backgrounds if you change the code directly, you could have it update the spec, and then review that (does my change do what I think it should do, at least a higher-order domain level?)