PhpMetrics is yet another tool in the ever growing list of the static code analyzers for PHP. Compared to the rest, I think this one is the easiest to install and run. And it produces the most eye candy reports ever. The generated report is in the HTML format, with fancy charts and graphs, and makes it really easy to spot and fix the issues.
composer-plugin-qa is a Composer plugin which adds all the most popular PHP quality assurance tools as composer scripts, so that you don’t have to install and set them up one by one. The list of tools includes the following:
- PHPUnit: Testing Framework
- PHPCOV: CLI frontend for the PHP_CodeCoverage
- Paratest: Parallel testing for PHPUnit
- DbUnit: Puts your database into a known state between test runs
- PHPLOC: A tool for quickly measuring the size of a PHP project
- PHPCPD: Copy/Paste Detector
- PHP_Depend: Quality of your design in the terms of extensibility, reusability and maintainability
- PHPMD: User friendly frontend application for the raw metrics stream measured by PHP Depend
- PhpMetrics: Static analysis tool, gives metrics about PHP project and classes
- PHP_CodeSniffer: Detects violations of a defined set of coding standards
- PHP-CS-Fixer: A tool to automatically fix coding standards issues
- Security-Checker: Checks if your application uses dependencies with known security vulnerabilities
This list is very similar to the one in my other recent post.
Mailtrap is a handy service for any developer or team that needs to test outgoing emails from test and staging environments, without spamming real users. It’s basically a fake SMTP server with some controls of where and how to forward messages, and ways of analyzing, sharing, and testing of HTML rendering.
“Unit Testing – The Big Picture” is a super useful for those of us who need a refresher or an overview of what software testing is in general, and how unit testing relates to other types of testing in particular. It covers a bit of history of testing, different approaches, terminology, and more.
“Code quality tools in PHP to check and improve your code” is a list of both some very well known tools and some new kids on the block. The article covers the following:
- Psalm by Vimeo. The cool thing about this static analyzer is that it supports both PHP 5.6 and PHP 7, unlike PHPStan which requires PHP 7. (Yeah, I know PHP 5.6 has reached the end of its active support a while back, but there are still quite a few projects around using it.) Additionally, Psalm is easy to control via the XML configuration file, much like PHPUnit and PHP CodeSniffer.
- Phan. This one is a bit trickier to install, as it requires some PHP extensions that I’ve never heard about (like PHP AST).
Quality Assurance is an important part of the software development. There are many tools available that help with a variety of problems in this domain. At work, we have already been using quite a few of them – mostly those that deal with automated testing – PHPUnit, PHP CodeSniffer, Nightwatch.js, TravisCI, BitBucket Pipelines, and more.
But the above tools are mostly for software developers. With the expansion of our quality assurance efforts, I am looking at some more tools and this time around, those that are aimed more towards QA engineers and testers. One particular area that I am currently very interested in is the tool for test (and requirements) management.
My experience in this area is very limited. I just know that such tools do exist. Most of them are propitiatory and expensive, and are used by large organizations. We are not a large company. Our needs are simpler. And our budget for this is not great yet.
So, here is what I’m looking for:
- A web-based tool to manage test cases, test plans, test runs, and test results.
- This tool should support git version control.
- This tool should integrate well with GitHub and BitBucket.
- This tool should integrate well with TravisCI and BitBucket Pipelines.
- This tool should integrate well with Redmine.
- This tool should integrate well with HipChat.
- This tool must support multiple projects.
- This tool must support both manual and automated tests.
- Preferably, the tool should be Open Source software.
- Preferably, the tool should be free (as in money).
- Preferably, the tool should be written in PHP, as that’s what where we have a lot of in-house expertise.
If you know of a tool that matches all or most of the above, please let me know.
With all the hype around the quality assurance and testing tools for PHP, I wonder how did I miss atoum. Atoum is a modern, simple and intuitive unit testing framework for PHP. From a quick look around, it seems to be a lot simpler than PHPUnit and I definitely need to find some time to give it a go.
Also, here’s a blog post that describes how Automattic moved from PHPUnit to atoum, which makes a lot of sense (you know what I’m talking about if you ever tried to write PHPUnit tests for WordPress projects).
Kitab is a handy tool for PHP developers that helps with two things:
- Render static HTML (with added search) from the doc-blocks in source code.
- Unit test the examples that are in the doc-blocks.
GitHub is one of the greatest tools for developers ever. And it keeps getting better. Most of the new features that GitHub introduces are usually generic and apply to all developers universally. Today, however, they have a special present for the PHP developers – Quickly review changed functions in your PHP pull requests. This is mighty useful, especially on the larger pull requests.