RepositoryPHPPLPoland
IN

infection/infection

PHP Mutation Testing library

2.3kstars
196forks
165issues
2views

Thành tựu nổi bật

Những danh hiệu mới nhất của dự án

1
TINIX TRENDING·Chủ đề: mutation

#1 Repository Của Tuần

1
TINIX TRENDING·Chủ đề: infection

#1 Repository Của Tuần

1
TINIX TRENDING·Chủ đề: mutation-analysis

#1 Repository Của Tuần

🧬 Infection - Mutation Testing cho PHP

Kiểm thử đột biến (mutation testing) giúp bạn biết liệu bộ test của mình thực sự "chết được không" khi code thay đổi.

Infection là một framework mutation testing mạnh mẽ dành cho PHP. Thay vì chỉ đếm độ phủ test (coverage), Infection sẽ cố tình sửa đổi mã nguồn — ví dụ như thay đổi toán tử so sánh, xóa một dòng lệnh — và sau đó chạy lại toàn bộ bộ test. Nếu bất kỳ bản đột biến nào "sống sót" (tức là test vẫn vượt qua), điều đó nghĩa là bộ test của bạn chưa thực sự bảo vệ được logic đó.

Dự án được viết bằng PHP 8.3+, sử dụng AST (Abstract Syntax Tree) để phân tích và biến đổi mã nguồn một cách chính xác. Infection hỗ trợ nhiều loại đột biến khác nhau như thay đổi toán tử, xóa câu lệnh, thay đổi hằng số logic, v.v. Kết quả được báo cáo rõ ràng với MSI (Mutation Score Indicator) để bạn dễ dàng đánh giá mức độ tin cậy của bộ test.

✨ Điểm nổi bật

  • Mutation testing: Tạo ra các bản đột biến mã nguồn để kiểm tra sức mạnh thực sự của bộ test.
  • Dựa trên AST: Phân tích mã nguồn qua cú pháp cây (AST) để biến đổi chính xác và an toàn.
  • Hỗ trợ nhiều kiểu đột biến: Bao gồm toán tử, câu lệnh, hằng số, logic điều kiện và nhiều hơn nữa.
  • Báo cáo chi tiết: Cung cấp MSI (Mutation Score Indicator) và liệt kê từng bản đột biến thành công hoặc thất bại.
  • Tích hợp CI/CD: Dễ dàng chạy trong pipeline CI như GitHub Actions để liên tục kiểm tra chất lượng test.
  • Cấu hình linh hoạt: Tùy chỉnh phạm vi đột biến, loại bỏ các file/khu vực không cần kiểm tra.
  • Mã nguồn mở: Phát triển cộng đồng, miễn phí sử dụng cho dự án PHP.

💡 Vì sao đáng chú ý

Không phải bộ test nào cũng thực sự kiểm chứng được logic nghiệp vụ — một số chỉ đi qua mớm lời gọi hàm hoặc kiểm tra biên. Infection giúp bạn phát hiện những lỗ hổng ấy bằng cách "tấn công" mã nguồn một cách có hệ thống. Điều này đặc biệt quan trọng trong các dự án PHP lớn nơi logic nghiệp vụ phức tạp và việc duy trì chất lượng test là then chốt.


#MutationTesting #PHP #Testing #CodeQuality #Infection #TiniX }

Similar Projects

Discover other similar projects and AI models.

RepositoryPHP
humbug/humbug

Humbug is a Mutation Testing framework for PHP to measure the real effectiveness of your test suites and assist in their improvement. It eats Code Coverage for breakfast.

1.1k
Dec 31, 2017
RepositoryRuby
mbj/mutant

Mutation testing for Ruby. AI writes your code. AI writes your tests. But who tests the tests?

2.2k
Oct 21, 2026
RepositoryJava
hcoles/pitest

State of the art mutation testing system for the JVM

1.9k
Oct 14, 2026
RepositoryPHP
nikic/PHP-Parser

A PHP parser written in PHP

17.5k
Oct 5, 2026
RepositoryPHP
phpstan/phpstan

PHP Static Analysis Tool - discover bugs in your code without running it!

14.1k
Oct 20, 2026
RepositoryC++
catchorg/Catch2

A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)

21.5k
Oct 8, 2026
Repository
theofidry/awesome-mutation-testing

Mutation testing resources: how to make better code by introducing bugs

479
Oct 21, 2026
RepositoryPython
agroce/universalmutator

Regexp based tool for mutating generic source code across numerous languages

169
May 20, 2026
RepositoryJava
STAMP-project/pitest-descartes

Descartes supports developers to improve their test suites by reporting weak spots in covered code

127
Sep 29, 2026