JAVA-301
Enterprise Java Best Practices and Enterprise Test Automation
Download as PDF
Customize your Training
Register Now
Course Overview
Addresses more advanced techniques for common concerns in Java enterprise development:
- Integration Testing: efficiency, reliability, repeatability
- Performance & Data Consistency: especially in high-concurrency systems
- Migrating Production Versions Safely
- Architecting for Multiple Teams
- Web & Database Optimization & Maintainability
Learning Outcomes
- Domain Driven Design
- Mock Testing
- Integration Testing
- TestContainers
- POST-GET-Redirect (PRG) Pattern
- REST
- Transactions & Concurrency
- Database Optimization
- Database Migration
- Load Testing w/ JMeter
- Command Query Responsibility Separation (CQRS)
- UI Testing w/ Selenium
Course Outline
Domain Driven Design (DDD)
- Ubiquitous Language
- Layered vs. Hexagonal Architecture
- Domain Classes
- Entities
- Value Objects
- Services
- Service Anti-Patterns
- DDD Package Structure
- Aggregates
- Bounded Context
- Event Storming
Mock Testing
- Test-Driven Development (TDD) using Mockito
Integration Testing
- TDD using Spring MockMvc
- Testcontainers
- Separating unit tests from integration tests
Testcontainers
- The Testcontainers library provides lightweight throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container, in support of JUnit tests.
- Best practices for integration testing using Testcontainers
POST-GET-Redirect (PRG) Pattern
- The POST-GET-Redirect (PRG) architectural pattern helps prevent users from making duplicate submissions.
RESTful Architecture
- What does REST mean?
- Common conventions
Transactions & Concurrency
- Testing for race conditions
- How to avoiding them
Database Optimization
- Profiling & Replication
- Indexing best practices
- Optimizing Queries
- Optimizing Schemas
- Avoiding Deadlocks
- Optimization with the Application
- Archiving & Partitioning
- Reclaming Storage & Gathering Statistics
Database Schema Migration
- Using Liquibase to manage changes to database structure
Load Testing with JMeter
- Performance testing overview
- HTTP Protocol overview
- Simulating requests
- Simulating concurrent users
- Managing cookies
- Generating reports
- Interpreting results
- Record & playback
- Using variables & functions
- Scaling-up tests using master-slave configuration
- Tips & best practices
Command Query Responsibility Separation (CQRS) Pattern
- Using different models to handle different requests and responses
User Interface Testing with Selenium
- Overview of UI Testing
- Selenium IDE (record & playback)
- Review of CSS Locators
- Review of XPath
- Selenium Web Driver API: Setting Up
- Navigation
- Referencing web elements using Id and Name Locators
- CSS
- XPath
- Handling text boxes
- Handling dropdown/select elements
- Handling multiple select elements
- Handling checkboxes and radio buttons
- Explicit and implicit wait
- Handling keyboard & mouse events
- Using actions and action
- Handling web tables
- Handling upload and download
Introduction to MongoDB (NoSQL)
- Overview – history, advantages & disadvantages
- Using the mongo console
- Connecting to a database
- Querying
- Filters
- Embedded documents in filters
- Comparison Operators
- Pagination
- Aggregation Framework
- Creating a Database
- Creating Collections
- Inserting Documents
- Updating
- Replacing
- Deleting
- Analyzing performance of queries Indexing
- Unique constraint
- Document validation
- Java library for MongoDB
Skill Level
Advanced
Suitable For
Java developers who want to write high quality, robust, scalable code for Enterprise or other mission-critical applications. Should have prior experience with HTML, SQL, JUnit, Spring or Java EE, and JPA.
Prerequisites
- Gain expertise in developing scalable enterprise applications using Java EE technologies.
- Learn advanced concepts such as JPA for data persistence and EJB for component-based architecture.
- Explore techniques for building secure, transactional, and high-performance Java applications for enterprise environments.
Duration
5
day
s
Related Topics
Customize your Training
JAVA-301
Enterprise Java Best Practices and Enterprise Test Automation
Download as PDF
Customize your Training
Register Now
Skill Level
Advanced
Suitable For
Java developers who want to write high quality, robust, scalable code for Enterprise or other mission-critical applications. Should have prior experience with HTML, SQL, JUnit, Spring or Java EE, and JPA.
Duration
5
day
s
Related Topics
Course Overview
Addresses more advanced techniques for common concerns in Java enterprise development:
- Integration Testing: efficiency, reliability, repeatability
- Performance & Data Consistency: especially in high-concurrency systems
- Migrating Production Versions Safely
- Architecting for Multiple Teams
- Web & Database Optimization & Maintainability
Learning Outcomes
- Domain Driven Design
- Mock Testing
- Integration Testing
- TestContainers
- POST-GET-Redirect (PRG) Pattern
- REST
- Transactions & Concurrency
- Database Optimization
- Database Migration
- Load Testing w/ JMeter
- Command Query Responsibility Separation (CQRS)
- UI Testing w/ Selenium
Course Outline
Domain Driven Design (DDD)
- Ubiquitous Language
- Layered vs. Hexagonal Architecture
- Domain Classes
- Entities
- Value Objects
- Services
- Service Anti-Patterns
- DDD Package Structure
- Aggregates
- Bounded Context
- Event Storming
Mock Testing
- Test-Driven Development (TDD) using Mockito
Integration Testing
- TDD using Spring MockMvc
- Testcontainers
- Separating unit tests from integration tests
Testcontainers
- The Testcontainers library provides lightweight throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container, in support of JUnit tests.
- Best practices for integration testing using Testcontainers
POST-GET-Redirect (PRG) Pattern
- The POST-GET-Redirect (PRG) architectural pattern helps prevent users from making duplicate submissions.
RESTful Architecture
- What does REST mean?
- Common conventions
Transactions & Concurrency
- Testing for race conditions
- How to avoiding them
Database Optimization
- Profiling & Replication
- Indexing best practices
- Optimizing Queries
- Optimizing Schemas
- Avoiding Deadlocks
- Optimization with the Application
- Archiving & Partitioning
- Reclaming Storage & Gathering Statistics
Database Schema Migration
- Using Liquibase to manage changes to database structure
Load Testing with JMeter
- Performance testing overview
- HTTP Protocol overview
- Simulating requests
- Simulating concurrent users
- Managing cookies
- Generating reports
- Interpreting results
- Record & playback
- Using variables & functions
- Scaling-up tests using master-slave configuration
- Tips & best practices
Command Query Responsibility Separation (CQRS) Pattern
- Using different models to handle different requests and responses
User Interface Testing with Selenium
- Overview of UI Testing
- Selenium IDE (record & playback)
- Review of CSS Locators
- Review of XPath
- Selenium Web Driver API: Setting Up
- Navigation
- Referencing web elements using Id and Name Locators
- CSS
- XPath
- Handling text boxes
- Handling dropdown/select elements
- Handling multiple select elements
- Handling checkboxes and radio buttons
- Explicit and implicit wait
- Handling keyboard & mouse events
- Using actions and action
- Handling web tables
- Handling upload and download
Introduction to MongoDB (NoSQL)
- Overview – history, advantages & disadvantages
- Using the mongo console
- Connecting to a database
- Querying
- Filters
- Embedded documents in filters
- Comparison Operators
- Pagination
- Aggregation Framework
- Creating a Database
- Creating Collections
- Inserting Documents
- Updating
- Replacing
- Deleting
- Analyzing performance of queries Indexing
- Unique constraint
- Document validation
- Java library for MongoDB