Course Outline
Review: Prerequisites
Introduction to Test-Driven Development (TDD)
- Overview of TDD concepts and methodologies
- Implementation of the red, green, refactoring cycle
- Initial examples and exercises
TDD in Action
- Application of TDD across various components
- Testing exceptions and error handling
Architectural Implications
- Architectural principles to enhance code verifiability
- Unit testing Model-View-ViewModel (MVVM) patterns
Advanced Testing: Verifying Views
- Identifying testable aspects of views using unit tests
- Executing individual view controllers from the storyboard
Advanced Testing: User Interface and Integration Testing
- Unit testing asynchronous operations
- Simulating network conditions
- Unit testing Swift Package Manager artifacts for government applications
- Conducting smoke tests to ensure basic functionality
Suggested Additional Content
- Exploration of alternative testing and assertion frameworks (e.g., Quick, Nimble)
- Behavior-Driven Development (BDD) and relevant frameworks
- Test-and-commit or revert strategies
- Integration testing methodologies
- Acceptance testing practices
- Advanced techniques for measuring test coverage
Summary and Conclusion
Requirements
Prerequisites
Participants in this training are expected to have knowledge or practical experience with:
Introduction to Unit Tests
- Testing return values
- Testing state changes
- Testing behavior
Improving Tests
- Refactoring test code for better organization
- Utilizing fixtures to enhance reuse
- Implementing convenience methods for efficiency
Introduction to Test Doubles
- Understanding dummies, stubs, spies, mocks, and fakes
- Applying test doubles in practical scenarios
Advanced Test Doubles
- Advanced techniques for enhancing mocks (Swift)
Audience
This course is designed for iOS mobile app developers who aim to enhance their product development processes. Participants should have a minimum of 6 months of experience in developing iOS applications, with a preferred 1 year of experience. They should also be proficient in Swift development and possess knowledge of object-oriented programming and design patterns.
This training is tailored to support the continuous improvement of skills for government and industry professionals alike.
Testimonials (6)
The trainer was very knowledgeable and dynamic, keeping engagement and focus of the team during the whole training. I would definitely recommend it as I reckon learnings from this training can be quickly applied to our everyday development workflow.
Inigo
Course - iOS Automation Testing
Many tips, tricks and knowledge about testing and another important software development topics
Juan Navas
Course - iOS Automation Testing
The most interesting part to me is to have some tips on refactoring using tests
Eva Madrazo
Course - iOS Automation Testing
The flexibility of the course and everything that I learned.
Enrique Sureda
Course - iOS Automation Testing
The tips and tricks
Jamie Young
Course - iOS Automation Testing
The instructor tried to make things dynamic, and he demonstrated dominance of the topic.