{"id":22446791,"url":"https://github.com/rcmartins/blinky","last_synced_at":"2025-08-01T21:32:15.485Z","repository":{"id":38375347,"uuid":"186307521","full_name":"RCMartins/blinky","owner":"RCMartins","description":"Semantic mutation testing for Scala","archived":false,"fork":false,"pushed_at":"2024-08-15T18:19:20.000Z","size":880,"stargazers_count":3,"open_issues_count":17,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-12-06T04:10:39.874Z","etag":null,"topics":["mutation-testing","scala","testing-tools"],"latest_commit_sha":null,"homepage":"https://rcmartins.github.io/blinky/","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RCMartins.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":"2019-05-12T21:46:53.000Z","updated_at":"2024-07-11T09:45:28.000Z","dependencies_parsed_at":"2023-02-14T11:17:08.713Z","dependency_job_id":"4c8bf9c2-f371-42ec-958e-0ee77f14fc0c","html_url":"https://github.com/RCMartins/blinky","commit_stats":null,"previous_names":["rcmartins/scalamutation"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RCMartins%2Fblinky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RCMartins%2Fblinky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RCMartins%2Fblinky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RCMartins%2Fblinky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RCMartins","download_url":"https://codeload.github.com/RCMartins/blinky/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228407894,"owners_count":17915083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["mutation-testing","scala","testing-tools"],"created_at":"2024-12-06T04:11:24.653Z","updated_at":"2024-12-06T04:11:25.993Z","avatar_url":"https://github.com/RCMartins.png","language":"Scala","readme":"# Blinky\n\n[![Build Status][badge-github-actions]][link-github-actions]\n[![Coverage Status][badge-codecov]][link-codecov]\n[![Sonatype Nexus (Releases)][badge-release]][link-release]\n[![Sonatype Nexus (Snapshots)][badge-snapshot]][link-snapshot]\n[![Scala Steward Badge][badge-scalasteward]][link-scalasteward]\n\nMutation testing is a type of software testing where we mutate (change) certain expressions in the source code \nand check if the test cases are able to find the errors.\nIt is a type of White Box Testing which is mainly used for Unit Testing.\n\n_Blinky_ has 3 main steps:\n* Copy the git project to a temporary folder (where the source code can be safely modified)\n* Run the scalafix tool with the _Blinky_ rule (on the copy project)\n* Run the project tests on the mutated code (usually with only 1 mutant active each time)\n\nWe use _Blinky_ to test this repository, improving the test code quality.\n\nSimilar projects:\n* [scalamu](https://github.com/sugakandrey/scalamu)\n* [stryker4s](https://github.com/stryker-mutator/stryker4s)\n\nThe main difference is that in _Blinky_ the mutations are semantic instead of just syntactic.\nMeaning when using a rule like `ScalaOptions.filter` we only mutate calls to\nthe method `filter` of objects of type `scala.Option`.\nIn order to have this semantic information about the types _Blinky_ \nneeds the [semanticdb](https://scalameta.org/docs/semanticdb/guide.html)\ndata of all files that we want to mutate.\n\n### [User documentation][docs]\nHead over to [the user docs][docs] for instructions on how to install blinky.\n\n[badge-github-actions]: https://github.com/RCMartins/blinky/actions/workflows/ci.yml/badge.svg?branch=main \"build\"\n[badge-codecov]: https://codecov.io/gh/RCMartins/blinky/branch/main/graph/badge.svg?token=o3yIhzL932 \"covecov\"\n[badge-release]: https://img.shields.io/nexus/r/com.github.rcmartins/blinky_2.13?server=https%3A%2F%2Foss.sonatype.org%2F \"release\"\n[badge-snapshot]: https://img.shields.io/nexus/s/com.github.rcmartins/blinky-cli_2.13?server=https%3A%2F%2Foss.sonatype.org \"snapshot\"\n[badge-scalasteward]: https://img.shields.io/badge/Scala_Steward-helping-blue.svg?style=flat\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAMAAAARSr4IAAAAVFBMVEUAAACHjojlOy5NWlrKzcYRKjGFjIbp293YycuLa3pYY2LSqql4f3pCUFTgSjNodYRmcXUsPD/NTTbjRS+2jomhgnzNc223cGvZS0HaSD0XLjbaSjElhIr+AAAAAXRSTlMAQObYZgAAAHlJREFUCNdNyosOwyAIhWHAQS1Vt7a77/3fcxxdmv0xwmckutAR1nkm4ggbyEcg/wWmlGLDAA3oL50xi6fk5ffZ3E2E3QfZDCcCN2YtbEWZt+Drc6u6rlqv7Uk0LdKqqr5rk2UCRXOk0vmQKGfc94nOJyQjouF9H/wCc9gECEYfONoAAAAASUVORK5CYII= \"scala steward\"\n\n[link-github-actions]: https://github.com/RCMartins/blinky/actions \"build\"\n[link-codecov]: https://codecov.io/gh/RCMartins/blinky \"covecov\"\n[link-release]: https://mvnrepository.com/artifact/com.github.rcmartins/blinky-cli_2.13 \"release\"\n[link-snapshot]: https://oss.sonatype.org/content/repositories/snapshots/com/github/rcmartins/blinky-cli_2.13/ \"snapshot\"\n[link-scalasteward]: https://scala-steward.org \"scala steward\"\n\n[docs]: https://rcmartins.github.io/blinky/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcmartins%2Fblinky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcmartins%2Fblinky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcmartins%2Fblinky/lists"}