{"id":16086231,"url":"https://github.com/gabriel-darbord/phaultloc","last_synced_at":"2026-06-17T16:34:00.546Z","repository":{"id":237944768,"uuid":"795510505","full_name":"Gabriel-Darbord/PhaultLoc","owner":"Gabriel-Darbord","description":"Coverage-Based Fault Localization for Pharo","archived":false,"fork":false,"pushed_at":"2024-05-16T23:10:01.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-26T11:36:12.040Z","etag":null,"topics":["fault-localization","pharo"],"latest_commit_sha":null,"homepage":"","language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gabriel-Darbord.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-03T12:47:10.000Z","updated_at":"2024-09-18T13:55:34.000Z","dependencies_parsed_at":"2024-05-06T17:57:21.846Z","dependency_job_id":"1fec2b16-31a0-412a-b46c-fe03e5ad45b4","html_url":"https://github.com/Gabriel-Darbord/PhaultLoc","commit_stats":null,"previous_names":["gabriel-darbord/phaultloc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Gabriel-Darbord/PhaultLoc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gabriel-Darbord%2FPhaultLoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gabriel-Darbord%2FPhaultLoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gabriel-Darbord%2FPhaultLoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gabriel-Darbord%2FPhaultLoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gabriel-Darbord","download_url":"https://codeload.github.com/Gabriel-Darbord/PhaultLoc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gabriel-Darbord%2FPhaultLoc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34454815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fault-localization","pharo"],"created_at":"2024-10-09T13:11:29.607Z","updated_at":"2026-06-17T16:34:00.528Z","avatar_url":"https://github.com/Gabriel-Darbord.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PhaultLoc\nCoverage-Based Fault Localization for Pharo.  \nGiven methods and tests, PhaultLoc determines for each method statement whether it was executed by each test, and whether the test passed or failed.\nEach method statement is thus associated with each test in one of four categories:\n- Executing Passed Tests\n- Executing Failed Tests\n- Non-Executing Passed Tests\n- Non-Executing Failed Tests\n\nThis categorization helps identify which statements are potentially faulty based on their execution patterns and test results. \nThis enables the calculation of statement coverage metrics such as [Ochiai](https://doi.org/10.1109/TAIC.PART.2007.13) and [Tarantula](https://doi.org/10.1145/581396.581397), which assign a *suspiciousness* score to a statement.\nThe more suspicious a statement is, the more likely it is to be the cause of a failed test.\n\n```st\ncoverage := PLStatementCoverage\n               statementCoverageOfMethods: MyClass methods\n               withTests: MyClassTest suite tests.\nochiai := PLStatementCoverage sortByTarantulaScore: coverage.\ntarantula := PLStatementCoverage sortByOchiaiScore: coverage.\n```\n\n\u003e [!NOTE]\n\u003e The tests are expected to be given as a list of `TestCase` instances.\n\n\u003e [!WARNING]\n\u003e All tests are executed as many times as there are methods.\n\u003e This is due to the current implementation of statement coverage, which only informs whether a statement has been executed or not.\n\n## Installing\n```st\nMetacello new\n  githubUser: 'Gabriel-Darbord' project: 'PhaultLoc' commitish: 'main' path: 'src';\n  baseline: 'PhaultLoc';\n  load\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabriel-darbord%2Fphaultloc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabriel-darbord%2Fphaultloc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabriel-darbord%2Fphaultloc/lists"}