Getting Started

Working together

Photo by rawpixel.com.

Welcome to PHP TestFest!

PHP TestFest Is Back!

PHP TestFest seeks to create more PHP core contributors by introducing PHP programmers to the PHP language test suite, teaching them how to write phpt tests. We do this by using our relationships with PHP user groups to host PHP TestFest events around the world.

From September through December, 2017, groups worldwide will meet physically or virtually to learn how to write and contribute phpt tests. You don’t have to be a C genius—in fact, you don’t need to know C at all to contribute.1 If you can write a few lines of PHP, you can write a phpt test.

Participation through local user groups is encouraged but not required. If you don’t have a local user group and you’d like to put together a group of friends or co-workers to write and contribute phpt tests, please feel free to sign up and take part. Here’s how:

PHPC Slack

For real-time chat, join us on PHPC Slack in #phptestfest. There’s always someone there willing to help.

Google Group

Sign up for the Google Group. Ask questions, help others, and lend your ideas to make PHP TestFest better.

Twitter

Follow @phptestfest and use the hashtag #phptestfest to talk about what your group is doing.

GitHub

Contribute tools and tutorials to the phptestfest.org project on GitHub to help us have a successful PHP TestFest.

Add Your Group

If you’d like to declare your group’s participation in PHP TestFest 2017, add it to the list. Then, be sure to join the Google Group, and learn about leading an event.

Be A Mentor

If you’re interested in helping groups learn how to write and contribute tests, volunteer as a mentor. Then, join the Google Group to find groups who need your help, and learn about mentoring.

Win Prizes!

PHP TestFest wouldn’t be complete without prizes. We’re still working out the details, so we’ll announce prizes and how to win them soon. Here are a few ideas of the type of categories for which we’ll be handing out prizes (subject to change):

  • Individual with the most good test submissions.
  • User group with the most unique individual test submitters who have submitted at least one good test submission.
  • Each individual who submits at least one good test submission who has never contributed to core prior to September 2017.
  • General prize raffle including all PHP TestFest participants who have submitted at least one good test submission (each submission counts as a raffle entry).

Stay tuned for more details on prizes and a definition of what good means.

We’ll soon announce prizes, sponsors, and details on how to submit your information for inclusion in the prizes and raffle. If your organization/company is interested in offering its products, services, or swag as prizes, let us know by sending email to [email protected].

Prizes and raffle winners will be announced in January, 2018. All contributions for consideration must be made between 00:00:00 UTC on 1 September and 23:59:59 UTC on 31 December, 2017.

How It Works

If you lead a group that is interested in participating, join the Google Group, add your group to the list, and commit to hosting one or more PHP TestFest events from September through December. A good PHP TestFest event might include a kick-off meeting with information about PHP TestFest, a session on how to write and contribute phpt tests, and a mini-hackathon for writing tests. Learn more about leading a PHP TestFest event.

When you are ready to start hacking, fork the official PHP TestFest php-src repo (note: not php/php-src). Volunteers from the PHP core team will help review and accept pull-requests on this repo. Also, only pull-requests submitted against phpcommunity/phptestfest-php-src will be counted as participating in PHP TestFest 2017.

When you submit a pull-request, your group will earn Internet Points if you add a line to the pull-request in the following format: “User Group: name-of-group”. See PR 13 as an example.

We still have a lot of details to work out. We will need to develop a way to track contributions and work with the PHP core team to help review and accept tests, so that they don’t become inundated with pull requests. If you’d like to help, please join the Google Group. We’ll update this section as more details emerge.

Who’s Behind This?

PHP TestFest is not new. It has a long history, going back nearly ten years; we stand on the shoulders of giants. Many have devoted a substantial amount of time to organizing and running previous PHP TestFest events, a few of whom are Lukas Kahwe Smith, Zoë Slattery, and Sebastian Schürmann.

In 2008, a group of contributors from the PHP-QA team met at the PHP Québec conference to finalize plans for a PHP TestFest. When announced, Lukas Kahwe Smith described it as “an event that aims at improving the code coverage of the test suite for the PHP language itself.” PHP TestFest was a global success, with many user groups from around the world participating to help improve the code coverage of the PHP language. But more than that, many programmers became PHP core contributors through PHP TestFest.

Over the years, PHP TestFest has been instrumental in raising the coverage of the PHP language to almost 75%, but there are still many parts of the language left to be tested and many tests that can be improved. For the last few years, however, there has not been a globally-organized PHP TestFest event, and many newcomers to the PHP language and its community are unaware of their ability to contribute to the language core through writing tests.

In 2017, Ben Ramsey has taken up the PHP TestFest torch to introduce a new generation of PHP programmers to phpt tests and other ways of contributing to the PHP core.

  1. The PHP interpreter provided by php.net is written in the C programming language, but phpt tests are written in the PHP language.