-
Notifications
You must be signed in to change notification settings - Fork 6.2k
Description
I am developing automated software tests and frameworks. An automated test is always about sending some signal to the system under test and the polling for an expected state. The way of doing this depends on technology involved. Can be via Selenium for Web apps, REST for backend, etc. I am just keeping a bunch of basic methods, aka steps, for each technology and using these to compose application level steps further using these to compose test scenarios. So for example, my basic Selenium steps are things like click, type, get_element, for an application I would have a login step composed of few types and clicks. Further, a scenario would be composed of login and few other application specific steps. Implementing a scenario becomes writing the highlevel (application) steps then implementing each step using existing steps either from the framework or from the application steps.
For this purpose, I am trying to define a BDD workflow:
/bdd.spec
/bdd.design
/bdd.implement
So an automation developer could do:
/bdd.spec I want to enter site X do Y and check Z
then the agent will analyze that site via Playright MCP and propose a BDD scenario in Gherkin format
/bdd.design
here the agent will rewrite the scenario in python using dummy steps
/bdd.implement
will implement the dummy steps using existing steps from the framework or from the application
I am trying to use speckit for this and after several experiments I have found that it is pretty much waterfall. One way. If something is discovered during a later stage it is very hard to fix it so it will propagate back to the spec and to other documents. As the development advances it becomes increasingly difficult to apply changes backwards because more and more files and text exists.
Any suggestions?