The workload skills CAN leave gaps in what it covers in a SUT. I have been trying out various strategies to address this. The point of this issue is to record this as something we should spend time on to flesh out.
Things I tried:
- I took a report of coverage edges missed and fed it to claude, asking it "what did we miss". It found some great things and we used this to decide what workload scripts to write next. We did in fact see the number of unique edges increase. The downside is that this coverage report is not something customer can request on their own (today).
Possible actions on this item: Productize some kind of coverage report; create a skill to do something with it.
This led to something that customers COULD do:
-
I also asked claude to insert Reachable assertions into the source code of the SUT for major functions. It was aware of the coverage reports so I asked it to insert them into places we hadn't reached already. If we don't want to make this require a coverage report, we should think about providing a skill to do this. We should provide guidance on what a good guidepost assertion is. Once these were in place they became very useful -- as we expanded the workload we could see new reachable assertions being reached which provided confidence the workload was expanding in interesting ways.
-
For a different approach, I asked claude to take a bottom-up approach and look at all the operations we COULD do through the API we were using to get to the system. I asked to to make a state transition graph showing what we could do at each state based on what we did before. (E.g., for a DB, after install state the only thing you can do is create a database. Once you have a database you can create a table. When you have a table, you can add records, create a view, modify the schema. Once you have records you can add more records, delete records, etc.) The workload became traversing the state transition graph and trying to visit all nodes. This is in progress and we will see if it is effective at reaching the reachability assertions we have not yet reached. This approach would be a candidate for a skill if effective.
The workload skills CAN leave gaps in what it covers in a SUT. I have been trying out various strategies to address this. The point of this issue is to record this as something we should spend time on to flesh out.
Things I tried:
Possible actions on this item: Productize some kind of coverage report; create a skill to do something with it.
This led to something that customers COULD do:
I also asked claude to insert Reachable assertions into the source code of the SUT for major functions. It was aware of the coverage reports so I asked it to insert them into places we hadn't reached already. If we don't want to make this require a coverage report, we should think about providing a skill to do this. We should provide guidance on what a good guidepost assertion is. Once these were in place they became very useful -- as we expanded the workload we could see new reachable assertions being reached which provided confidence the workload was expanding in interesting ways.
For a different approach, I asked claude to take a bottom-up approach and look at all the operations we COULD do through the API we were using to get to the system. I asked to to make a state transition graph showing what we could do at each state based on what we did before. (E.g., for a DB, after install state the only thing you can do is create a database. Once you have a database you can create a table. When you have a table, you can add records, create a view, modify the schema. Once you have records you can add more records, delete records, etc.) The workload became traversing the state transition graph and trying to visit all nodes. This is in progress and we will see if it is effective at reaching the reachability assertions we have not yet reached. This approach would be a candidate for a skill if effective.