Get in Touch

Course Outline

QA/CI

  • Understanding QA
  • Understanding CI
  • The financial impact of software development, refactoring, and error resolution
  • Project identification and comprehension
  • Organizational benefits

Domain-Driven Design (DDD)

  • Software development grounded in business requirements and DDD assumptions
  • Challenges in IT-Business communication
  • The Domain Model

Best Practices

  • The KISS and DRY principles
  • Adhering to coding standards
  • Developing reusable code via Object-Oriented Programming (OOP) and design patterns
  • Identifying and reducing cyclomatic complexity

Software Metrics

  • Weighted Methods per Class
  • Response For a Class
  • Depth of Inheritance Tree
  • Coupling Between Objects
  • Lack of Cohesion of Methods
  • Number of Children
  • Cyclomatic complexity
  • Class Metrics
  • Model Metrics
  • Usage Metrics

Software Testing

  • What, when, and how to test?
  • White-box and black-box testing methods
  • The role of testing within agile methodologies
  • Debunking the myth that Test-Driven Development (TDD) only increases project costs
  • Unit testing using JUnit (Java) and PHPUnit (PHP)
  • Behavioral testing with JBehave (Java) and Behat with Mink (PHP)
  • Functional testing

Refactoring

  • Definition of refactoring
  • Technical debt
  • Recognizing code smells
  • Refactoring patterns

Documentation

  • The importance of documentation in agile methodologies
  • Key areas for documentation
  • Types of documentation
  • Navigating documentation in agile: Prioritizing working software over comprehensive documentation
  • XMI standards
  • Automated documentation generation using Javadoc (Java) and ApiGen (PHP)

CI Tools and Environment

  • CI Tools and Environment
    • PMD (Java) and phpmd (PHP)
    • CPD (Java) and phpcpd (PHP)
    • Lines of Code Counter (Java) and phploc (PHP)
    • UCDetector (Java) and phpdcd (PHP)
    • Jdepend (Java) and phpdepend (PHP)
  • Jenkins Continuous Integration Server

Agile and CI/QA

  • Planning and incremental development
  • Embracing change
  • Short development cycles
  • Interdisciplinary teams
  • Extreme Programming and Code Review
  • Valuing individuals and interactions over processes and tools

Conclusion

  • Discussion
  • Q&A session
  • Initiating the implementation process

Requirements

Familiarity with software development processes

 14 Hours

Testimonials (4)

Upcoming Courses

Related Categories