Training is open to both developers, Scrum Masters, Product Owner and also some aspects of the business department. The purpose of training is to introduce topics Quality Assurance and Continuous Integration and their place in projects conducted agile methodologies. Participants will gain a broad perspective on the issues discussed as well as practical knowledge of the tools and processes of software development in line with the QA / CI. Representatives of business, will be able to know the benefits of implementing those tools and processes and translate into both the time and cost of software development. The issues presented are based on PHP or Java, depending on customer requirements.
What is QA?
What is CI?
The costs of software development, refactoring and fix errors
Identifying and understanding the project
Profit for the organization
Software development based on business requirements, assumptions DDD
Problems in communication IT-Business
KISS principle and DRY
Creating reusable code through OOP and design patterns
Identifying and reducing cyclomatic complexity
Weight Method per Class
Response For a Class
Depth of Inheritance Tree
Coupling Between Objects
Lack of Cohesion of Methods
Number of Children
Metrics for use
What, when and how to test?
The method of "white-box" and "black box"
The role of testing in agile methodologies
TDD only a potential increase in the cost of the project
Unit testing with JUnit (Java), PHPUnit (PHP)
Behavioral tests of JBehave (Java), Behat and Mink (PHP)
What is refactoring?
The role of documentation in agile methodologies
What to document?
Types of documentation
Documentation and agile methodologies, or you can call (Working software over comprehensive documentation)?
Automatic generation of documentation from the Javadoc (Java), ApiGen (PHP)
Tools and Environment CI
Tools and Environment CI
PMD (Java), phpmd (PHP)
CPD (Java), phpcpd (PHP)
Lines Of Code Counter (Java), phploc (PHP)
UCDetector (Java), phpdcd (PHP)
Jdepend (Java), phpdepend (PHP)
Jenkins Continuous Integration Server
Agile and CI/QA
Planning and incremental development
Extreme Programming, Code Review
Individuals and interactions over processes and tools
How do you begin the process of implementation?
What Is Domain-Driven Design
Building Domain Knowledge
The Ubiquitous Language
The Need for a Common Language
Creating the Ubiquitous Language
The Building Blocks Of A Model-Driven Design
Refactoring Toward Deeper Insight
Bring Key Concepts Into Light
Preserving Model Integrity
Open Host Service