-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement All XPath Patterns Described in the Referenced Journal Paper #6
Comments
So far I think I have found a few of the xpath patterns in the journal, but I have some questions on which xpath pattern we want to use. |
Things TODO -Find examples, to test our xpaths expressions on. |
I have finished finding most of the patterns from the pdf, but they need testing. Chatgpt sometimes gives me two different answers. |
More descriptive TODO
|
@MilesF25 hey miles can you send the command to access the xml document of subject data? |
@VitalJoseph it's pyastdump filename |
@MilesF25 thanks |
We don't need to add count to the XPATH patterns, Chasten already does the counting. We also don't need the function name for now. So instead of doing count(//FunctionDef[@name='my_function']//If/descendant::If). You can do something like this instead //FunctionDef//If/descendant::If). (This is not a proper XPATH) |
I was able to get one XPATH pattern to work. '//FunctionDef//If/following-sibling::If'. This looks for nested if statements. |
@VitalJoseph @Finley8 @MilesF25 Was this completed in a merged PR? |
@VitalJoseph @MilesF25 just confirmed that work is actively happening on this issue, but in a Google doc rather than in a branch. The plan is to get this documented on our GitHub wiki by 2023-11-05. If this is not done in time, we will set this issue to the side. |
Google doc to hopefully working xpaths. https://docs.google.com/document/d/12OVwJkJBG0KB90UbGjfpXwtau2iXV_cV_7-KlGkPfKo/edit |
@MilesF25 here is the xpath pattern for the (assertion_density) check that i have tried. Im having trouble with this one if ypu want to take a look at it. "count(//FunctionDef[@type='str']/body/Asserts) idiv count(//FunctionDef[@type='str']/body/*)" |
Also having trouble with the (direct_test_no) check. Here is the pattern I used. //FunctionDef[@type='str' and starts-with(@name, 'test_')]/body//Call/Name[@id='test_function'] |
@VitalJoseph The following are some solutions that do not immediately break the program when run.
|
@VitalJoseph does PR #125 close this issue? @gkapfham was asking if it implements all of the checks. |
@simojo yes |
The following paper:
https://www.researchgate.net/publication/347335615_How_to_kill_them_all_An_exploratory_study_on_the_impact_of_code_observability_on_mutation_testing
describes a number of "mutation score anti-patterns" that limit the achievement
of a high mutation score for a test suite.
This project should come with XPath expressions that can scan a Python project
for all of the anti-patterns mentioned in this paper. The project should also:
thereby supporting the study of the correlation between anti-patterns and
mutation score
per-test coverage information with
pytest-cov
andcoverage.py
to supportthe study of the correlation between anti-patterns and coverage score
for statistical analysis and/or machine learning prediction
The text was updated successfully, but these errors were encountered: