It provides an equal and open platform allowing PHP developers to pick the best tools from the best PHP frameworks PPI bootstraps framework components for you from the top frameworks such as ZendFramework2, Symfony2, Laravel4, Doctrine2
integration testing) A unit is the smallest testable part of an application, i.e: as class or a method Tests contain assertions that are either true or false. The tests pass when the behaviour of the code is correct.
make mistakes! Allows a project to move in baby-steps from one completely tested working version to the next with complete confidence. The amount of confidence is proportional to the quality of the automated testing.
and behavioural changes > Facilitate refactoring (check if you broke something?) > Find problems early > Encourages use of Dependency Injection > Encourages Single Responsibility Principle (S of SOLID) > Increases the quality of OOD/OOP > Changes how you think when developing
inserts so you can run database queries and check the results. Good for SQL-level logic and checking that your queries or stored procedures work properly.
technologies: Selenium, Behat, phpspec, Mink, PhantomJS BDD Test cases: Useful customer communication because they’re human readable. Focuses on business requirements and their behaviour
the process for putting source code together and verifying that the source works as a cohesive unit -- “Paul M. Duvall” What is build automation? “Build automation is the act of scripting a wide variety of tasks that developers do in their day-to-day activities. Such as: Compiling, Running Tests, Deployment to Production -- Wikipedia
as possible. Merge early, merge often > less conflicts the better Write tests that run fast > don’t want to be waiting 10 minutes for a hotfix to build Automate the entire QA process (one click action)
QA Tools Tasks using Apache Ant Automated Test suite Code Analysis / Coding Standards Documentation Generation Software metrics in one central place Packaging / Deployment
coding style violations > Best Practises: Comes with PSR-1 and PSR-2 PHP-CPD (Copy Paste Detector) PHPMD (Mess detector) > Warns you on complex code Clover PHP (code coverage output)
VCS (git) contents Performs tasks on the codebase > db migrations > asset minification 1) SSH into your target server 2) rsync’s the code to the target dir 3) updates the ‘current’ symlink to the latest release 4) if errors, runs cap:rollback
and including a deploy.rb file config/deploy.rb This file contains your application’s deployment config config/deploy/environment_name.rb Specific configurations for the specific environment.