NomadPHP - May 18th

Earlier this month I presented at SunshinePHP on using Codeception to ensure your application is fully covered before performing a major migration. I will be presenting that topic again via NomadPHP on May 18th. The samples are in Yii framework, as this all came about as we were migrating a massive application from Yii 1 to Yii 2.

If you have any specific questions that you’d like to have addressed, I can be sure to include them in the Q/A section at the end, so please let me know.

Great! I haven’t seen previous talk or slides so maybe it’s addressed in the talk itself. I wonder what you consider full coverage: code coverage or use case coverage. 100% code coverage doesn’t necessary means 100% of use cases.

Excellent point! I go over how to ensure you’re getting 100% code coverage (the actual line by line reporting) and the need to ensure that your fixture data is handled in such a way as to cover all of your edge cases, as the results of the tests are only as good as the data you put into it.

How do you choose data for edge cases?

Our initial edge cases are decided upon by the initial use cases and trying to determine how an end user might attempt to do things differently with the options presented, or ways that requirements may differ based on the various scenarios. It’s just a lot of permutations and sanity checking.

Over time, additional cases come up from Customer Requests/Feedback and the error logs - any time an issue is reported that involves a new edge case we hadn’t considered, I set up a data point for it so that when the tests are run we’re ensuring that particular scenario never gets overlooked.

Would love to hear how other people predict such data.

There are theories about choosing test data to be be minimal amount of data with maximum case coverage. I think these are best implemented in Microsoft tools where you give a range and it gives you data back.

The NomadPHP Meet Up is today - I believe there is still time to register if anyone is interested:

How was it?

Went well, thanks! =) Hopefully a little extra exposure for Yii in the process ;)