Boost your Architecture by Test-Driven Development

Hands-on training on how to use Test-Driven Development (TDD) to boost architecture of your projects.

Varighet: 3 dager fra kl 09:00 - 16:00

Pris: 16900

Kurskategori: Applikasjons utvikling

Kursdatoer er ikke helt avklart ennå, men kontakt kurs@bouvet.no for påmelding!

The course covers writing unit, integration, and end-to-end tests, showing how you can guard and enforce the rules of your architecture. We show the ways TDD helps with building and improving sustainable architecture. JUnit and Spock frameworks are used in the examples, however, the knowledge gained during the course is easily applicable to other testing libraries.

During the course, attendees will learn about the challenges with maintaining a huge number of tests in a project, and how to avoid usual pitfalls related to that.

Target audience: Developers, Team Leads, Architects

Day 1.

  • Introduction
    • Why do we need tests?
    • Unit, integration, contract, and end-to-end tests
    • Inverted test pyramid
    • TDD/BDD
  • JUnit
    • Features and examples
    • When to use JUnit 
  • Spock
    • Features and examples
    • Comparison to other Java testing libraries
    • Killer features
    • Parameterized tests
  • Properly written (unit) tests
    • Good unit tests
    • Code smells in unit tests
    • Patterns

Day 2.

  • Integration tests (with examples in Spring Boot)
    • Why do we need integration tests?
    • Different flavours of integration tests
    • Setup for integration tests
      • Testing integration with database
      • Testing application services
      • Testing REST
      • Testing communication with external services

Day 3. 

  • Tests Maintenance
    • Challenges with maintaining a big number of tests
    • Readable and maintainable big suites of tests
    • Keeping test code base clean
  • Property-based testing
  • Mutation testing 
    • How to ensure your tests are good
    • Pitest and mutation tests
  • Other Testing tools

Format: 60% workshop / 40% lecture

Prerequisites

  • Some experience in Java that allows you to understand and write Java code
  • Experience in Spring Boot can be a plus because part of the course is dedicated to integration tests based on Spring Boot
  • Basic knowledge of Git/Intellij IDEA

Kursdatoer er ikke helt avklart ennå, men kontakt kurs@bouvet.no for påmelding!

 

Kursinstruktør

Vadzim Prudnikau is a senior Java Developer, Team Lead, and Architect with 17 years experience (4 years in Norwegian market) who believes that technical skills, self-education, being a good team player, and knowledge sharing are the keys to success.

Completed 10+ projects which work in production, led 5 development teams, mentored 20+ developers, interviewed over 100 developers for 10+ positions, created a Java department. An Expert in Java and has also experience with Kotlin, Scala, Groovy, JavaScript programming languages.

Marek Dominiak is a software developer and architect with 15 years of experience (10 years in Norwegian market) mainly in Java World. Has experience in mentoring developers and with leading teams. His main focus is on creating sustainable solutions, learning about software craftsmanship, domain-driven design, and code quality.

During his career, Marek has completed many smaller and bigger projects that work in production, interviewed developers, handled communication with customers, helped to design architecture for whole systems and delivered them, and introduced many technologies proven in production. Occasionally Marek is a speaker at conferences related to software development (JDD conference, Warszawskie Dni Informatyki).

Ønsker du å samle flere ansatte til et bedriftsinternt kurs?

Finner du ikke det helt optimale kurset eller kombinasjonen av kurs? Da ordner vi det - sammen. Vi kan tilrettelegge kurs slik at de inneholder akkurat det dere har behov for. Vi kan sette opp et helt nytt kurs, eller tilpasse eksisterende kurs og materiell. Flere medarbeidere kan selvfølgelig også samles til et eget felles kurs, for maksimal effektivitet. Ta kontakt med meg for et forslag til gjennomføring og et tilbud basert på deres behov.

Henrik Buzzi