Course Taxonomy: Software Development

User Experience (UX) Design & Responsive Design for Experienced Web Developers

Day 1: Introduction to UX and Responsive Design 

 Part 1: Understanding User Experience  

  • What is UX? 
  • Importance of UX in web development 
  • UX principles and best practices 
  • User-centered design process 

Part 2: Responsive Web Design Basics (1 hour) 

  • What is Responsive Web Design? 
  • Importance of Responsive Design in modern web development 
  • Fluid grid layout, flexible images, and media queries 
  • Hands-on Activity: Creating a Responsive Layout 
  • Designing a simple responsive layout using HTML, CSS, and media queries 
  • Breakdown and explanation of the code 
  • Testing responsiveness across different devices 

Part 3: Mobile-first vs. Desktop-first Approaches  

  • Pros and cons of each approach 
  • Deciding which approach to use 

Part 4: Designing for Different Devices and Screen Sizes  

  • Common breakpoints and device considerations 
  • Accessibility and usability across devices 
  • Typography, color, and other design elements in responsive design 
  • Hands-on Activity: Designing for Different Devices 
  • Modifying the previously created responsive layout to optimize for various devices 
  • Discussion and feedback on designs 

 Day 2: Advanced UX and Responsive Design Techniques 

Part 5: UX Research and Testing  

  • Importance of UX research 
  • Usability testing and user feedback 
  • A/B testing and heatmaps 

Part 6: Navigation and Information Architecture  

  • Designing effective and user-friendly navigation 
  • Organizing content and information 
  • Common navigation patterns in responsive design 
  • Hands-on Activity: Designing Navigation for Responsive Websites  
  • Adding navigation elements to the previously created responsive layout 
  • Testing navigation on different devices and screen sizes 
  • Discussion and feedback on navigation designs 

Part 7: Responsive Web Design Frameworks and Tools 

  • Overview of popular frameworks (Bootstrap, Foundation, etc.) 
  • Pros and cons of using frameworks 
  • Introduction to design tools (Sketch for Mac, Figma for PC, Canva and a few othersAdobe XD
  • Hands-on Activity: Exploring Frameworks and Tools  
  • Experimenting with a chosen framework or design tool 
  • Redesigning the responsive layout using the selected framework/tool 
  • Sharing experiences and discussing the benefits and drawbacks 

Day 3: UX and Responsive Design Best Practices 

 Part 8: Design Patterns and UI Components  

  • Common design patterns in responsive web design 
  • Designing reusable UI components 
  • Consistency and usability in UI components 

Part 9: Performance Optimization  

  • Importance of performance in responsive design 
  • Image optimization and responsive images 
  • Minification and concatenation of assets 
  • Hands-on Activity: Optimizing Performance (1.5 hours) 
  • Applying performance optimization techniques to the responsive layout 
  • Testing the improvements in performance 
  • Sharing results and discussing best practices 

 Part 10: Accessibility in UX and Responsive Design  

  • Importance of accessibility in web design 
  • Accessibility principles (WCAG) 
  • Accessible design patterns and techniques 
  • Hands-on Activity: Evaluating and Improving Accessibility Assessing the accessibility of the responsive layout 
  • Implementing accessibility improvements 
  • Testing and discussing the results 

 Part 11: Design Collaboration and Handoff  

  • Collaborating with designers, developers, and stakeholders 
  • Effective communication and documentation 
  • Design handoff tools and techniques 
  • Hands-on Activity: Simulating Design Handoff  
  • Participants will work in pairs to simulate a design handoff 
  • Reviewing, discussing, and providing feedback on each other's responsive layouts 
  • Sharing experiences and lessons learned 

Introduction to User Experience (UX) Design Basics for Non-Developers

Part 1: Understanding Users and Their Interactions 

  • How users think 
  • Mental models and expectations 
  • Common UX situations and best practices 

 

Part 2: The Role of UX in an Organization  

  • Importance of UX in projects 
  • Collaborating with UX professionals 
  • When to engage UX experts in projects 
  • Hands-on Activity: User Journey Mapping  
  • Creating user personas 
  • Mapping user journeys for a sample website 
  • Identifying pain points and opportunities for improvement 

 

Part 3: Organizing Content and Designing for Ease of Use 

  • Content organization strategies 
  • Information architecture principles 
  • Designing an intuitive site layout 
  • Hands-on Activity: Creating a Site Structure  
  • Brainstorming and organizing content for a sample website 
  • Developing a site structure and information architecture 
  • Presenting and discussing the results 

 

Part 4: Enhancing Navigation 

  • Signposting, wayfinding, and navigation patterns 
  • Improving navigation through design 
  • Usability and accessibility considerations 
  • Hands-on Activity: Designing Navigation 
  • Creating navigation elements for a sample website 
  • Testing and refining the navigation design 
  • Sharing and discussing the results 

 

Part 5: Laying Out Pages for Ease of Use 

  • Principles of page layout and design 
  • Visual hierarchy and consistency 
  • Designing for different devices and screen sizes 
  • Hands-on Activity: Creating a Wireframe  
  • Designing a wireframe for a sample website 
  • Incorporating navigation, content organization, and layout principles 
  • Presenting and discussing the results 

 

Part 6: Collecting User Input and Feedback 

  • Designing intuitive forms and input methods 
  • Collecting and analyzing user feedback 
  • Incorporating user feedback into design iterations 

 

Part 7: Course Wrap-up and Q&A  

AI for Software Testing

Part 1: Introducing Generative AI for Software Testing

Part 2: Let’s Test with AI

  • Use AI agents to generate and run tests

Part 3: Modelling for Testing

  • Apply different ways to structure a problem and organize the testing process

Part 4: Test Planning with AI

  • Use AI to help create an overall test strategy, using a Test Strategy Canvas and, Testing Quadrants

Part 5: Testing Single Functions

  • Learn how AI can assist with equivalence partitioning, boundary value analysis, state and preconditions when defining tests

Part 6: Evaluate Tests

  • Identifying missing and redundant tests as well as the level of test coverage

Part 7: Activities and Processes

  • Use AI to generate use cases in several forms (traditional, Given-When-Then, and graphical) and generate detailed test cases

Part 8: Planning the End Game

  • Create AI-generated test plans for UAT, alpha, beta, and usability testing

Part 9: Stories and Scenarios

  • Use AI to present a user story in terms of a set of scenarios that need to pass

Part 10: Automation

  • Use AI to generate automated test cases

Part 11: Quality Attributes & Non-functional Requirements

Part 12: Evaluating AI Readiness

  • Ethical considerations and emerging trends

Mastering GitHub Copilot

Day 1: Understanding GitHub Copilot

Part 1: Introduction to GitHub Copilot

  • Overview of GitHub Copilot and its role in modern software development
  • Understanding the underlying AI technology and its capabilities
  • Exploring the benefits of using GitHub Copilot in various development scenarios 
  • Exercise: Participants will install and set up GitHub Copilot in their preferred code editor and explore its basic functionalities.

Part 2: Setting Up GitHub Copilot

  • Installation and configuration of GitHub Copilot in different development environments
  • Integration with popular code editors and IDEs
  • Configuring preferences and customizing Copilot for personal coding style 
  • Exercise: Participants will configure and customize GitHub Copilot in their development environment according to their preferences.

Part 3: Leveraging GitHub Copilot for Code Generation

  • Exploring Copilot's code generation capabilities for different programming languages
  • Utilizing Copilot to automate repetitive code snippets and boilerplate code
  • Techniques for leveraging Copilot to speed up coding tasks and reduce manual effort 
  • Exercise: Participants will work on a coding exercise where they utilize GitHub Copilot to generate code for a specific task or functionality.

Part 4: Understanding Copilot's Contextual Assistance

  • Working with Copilot to get intelligent suggestions and context-aware code completions
  • Leveraging Copilot to improve code quality and adhere to best practices
  • Understanding how Copilot can help with debugging and error handling 
  • Exercise: Participants will work on a coding exercise where they leverage Copilot's contextual assistance to enhance code quality and address common coding issues.

Day 2: Advanced Techniques and Integration

Part 5: Advanced Code Generation with Copilot

  • Harnessing Copilot's advanced capabilities to generate complex code structures
  • Exploring techniques for code refactoring and optimization using Copilot
  • Generating code patterns for specific software design patterns and architectural styles 
  • Exercise: Participants will tackle a coding exercise that involves using Copilot to generate advanced code structures or refactor existing code for optimization.

Part 6: Collaboration and Version Control with Copilot

  • Using Copilot in a collaborative coding environment
  • Best practices for integrating Copilot with version control systems like Git
  • Leveraging Copilot for seamless code reviews and pull request workflows 
  • Exercise: Participants will work in pairs and collaborate on a coding exercise using Copilot, practicing code reviews and version control integration.

Part 7: Extending Copilot with Custom Models

  • Overview of custom model creation for GitHub Copilot
  • Building and training custom models to enhance Copilot's suggestions
  • Integrating custom models into Copilot and leveraging them for specific coding tasks 
  • Exercise: Participants will explore the process of creating and training custom models for Copilot, and then utilize them in a coding exercise to see the enhanced suggestions.

Part 8: Real-World Applications and Case Studies

  • Exploring real-world examples of how GitHub Copilot is transforming software development
  • Case studies showcasing the benefits and challenges of using Copilot in different scenarios
  • Best practices and recommendations for incorporating Copilot into existing development workflows 
  • Exercise: Participants will analyze real-world case studies and discuss the potential applications and challenges faced in each scenario. They will also brainstorm and present their ideas on how Copilot can be integrated into their own development workflows.

Certified Scrum Developer® (CSD®)

The coursework and dedication needed to achieve a CSD® sharpens your skills to help you become a better

practitioner of Scrum and agile development.

By earning a Certified Scrum Developer® certification, you:

• Learn the foundations of Scrum and the scope of the Certified Scrum Developer’s role from the best minds in development agility

• Demonstrate to employers and peers your understanding of core Scrum knowledge

• Expand your career opportunities by staying relevant and marketable across all industry sectors adopting agile practices

• Engage with a community of recognized Scrum experts who are committed to continuous improvement

DevSecOps Boot Camp

Part 1: DevOps, Security, and DevSecOps: Definitions

1. DevOps

2. Security

3. Risk

4. Culture

5. Agility

6. Testing

7. Continuous Integration

8. Continuous Delivery

Part 2: Where do we start with security?

1. Risk review

2. Policy

3. Roles

4. Compliance, regulatory and GRC

5. The Pipeline Model

6. Exercise A: Value Stream Mapping

Part 3: Security as a DevOps practice

1. Traditional vs. “DevOps” security

2. Tools vs. processes

3. Security, not compliance

4. Prioritizing testing for risk

5. Reducing source code footprint

6. Static analysis for secure code

7. Feature toggles for security

  • Toggle points
  • Toggle router
  • Toggle configuration

8. DevSecOps and technical debt management

Part 4: DevSecOps and “requirements”

1. Designing for security

2. Assessing risk appetite

3. Modeling threats

4. Product architecture

5. Use cases, antipatterns, and abuse cases

6. Dataflows and trust boundaries

7. Exercise B: Threat Modeling

Part 5: Secure development patterns

1. Secure code overview

2. OWASP review

3. Tools for automating OWASP

  • OWASP dependency checkers
  • OWASP Zap during regular functional tests

4. Developer guidelines & checklists

5. Tools to use

6. Coding Standards (top 5 languages)

7. Common pitfalls

8. Identifying Unsafe Code

Part 6: Security Testing in the Pipeline

1. Testing before commit

2. Scanning for secrets

3. Hook examples

4. Application security testing

  • Static
  • Dynamic

5. Testing dependencies

6. How to treat manual testing

7. Performance Testing

  • Testing for load
  • Testing for stress
  • Soak tests
  • Spike testing

8. Testing in parallel

9. Staging

10. Mutation testing and tools for performing it

11. User role testing

Part 7: Identity and Access Management (IAM)

1. IAM overview

2. Identity profiles

3. Using IAM for automation

4. IAM practices in the cloud

5. IAM as an application building block

6. IAM antipatterns

7. Guided discussion: IAM in a Microservices use case

Part 8: Deployment patterns for security

1. Canary candidates

2. Dark launches

3. Streamlining libraries and dependencies

4. Keeping packages up to date

5. Keeping deploys repeatable and reliable

6. OpenSCAP for scanning baselines before and after deployments

7. Scanning web server configuration

8. Database exploitation through applications

9. Infrastructure scanning

  • OpenVAS
  • NMAP

10. Scanning web applications

  • W3AF
  • Wapiti

Part 9: DevSecOps and Operations

1. Where does Ops security begin and end?

2. Infrastructure as Secure Code

3. Incident response planning and emergency drills

4. Release Archives

5. OS Protections:

  • Address Space Layout Randomization
  • Non-Executable Stacks
  • W^X
  • Data Execution Prevention
  • SELinux

7. Monitoring, logging and intelligent alerts

  • Splunk mini-tour: A transformative tool for analyzing machine data, operational risk, and application health

8. Log management

9. Penetration Testing

10. Exercise C: Profiling a DevSecOps Hybrid model

Part 10: Policy, Governance, and Audit

1. GRC review

2. Coding for compliance

3. DevOps and the “segregation of duties”

4. Tooling example: Chef InSpec

5. Change management and policy

6. Exercise D: Automated vs. Manual, to comply with Audit requirements

Part 11: Change management and DevSecOps

1. Three types of “change”

2. When and why to use CAB boards

3. Peer review vs. change management

4. Automating change management

ITIL in 2020

Part 12: Measurement and metrics

1. The core toolkit of metrics

2. The best way to institute alerts

3. Managing alerts

4. Proactive vs. reactive metrics

5. Measurement antipatterns

Part 13: More advice on the cultural factors

1. Security fails and breakdowns

2. Incentive, fear, and reward

3. Getting outside IT

4. How to shift left

5. Building security in

6. Cost and the business case for proactive security

7. Overcoming conventions of the past

8. Bridging silos – why and how

9. Exercise E: Rearranging incentives

Part 14: Putting it all together

1. Class recap and final questions

2. What will you do differently when you return to work?

Fundamentals of Software Testing

Part 1: Introduction and Overview

Establishes a foundation for the course, provides a workable definition of software quality and shows how testing fits into the overall quality process.

Part 2: What to Test and How to Test it — The Universal Testing Method

Testers follow the same basic process that scientists use; we follow the principles of experimentation and measurement. In this course, we map your testing method back to those principles and show how, at each step in your testing, you’re making complex decisions about what to test and how to test it. Utilizing a combination of skills, tactics, practices, and tools – this section helps build a base that testers in any context (of any skill level) can apply to solve testing problems.

  1. Model the Testing Space. Compose, describe and work with visual models of the software to identify relevant dimensions, variables, and dynamics so you can develop an effective test strategy.
  2. Determine Test Coverage. Understand a variety of common measures of test coverage and choose the most appropriate ones for each project; determine the scope of testing; establish a structure to track test coverage
  3. Determine Test Oracles. Identify the sources of truth to determine whether the application has passed or failed tests; review common formal and heuristic oracles 
  4. Determine Test Procedures. Define what test procedures and test cases are; identify common test procedure types; learn how to document test procedures in a practical, efficient manner
  5. Configure the Test System. See how to ensure you have everything needed to support testing; discuss common challenges to test configuration; consider test lab requirements and realities
  6. Operate the Test System. Learn how to manage tester contact with the application under test (AUT); discuss different methods of interaction with the system to address different testing objectives; identify common artifacts and practices related to test operation
  7. Observe the Test System. Learn what empirical data to capture about the application under test and how to preserve testing interactions for review and reproducibility; consider common tools used to assist with test observation; identify common problems and human tendencies related to observation
  8. Evaluate Test Results. Discuss possibilities and probabilities related to test results (not every test failure is a bug!); identify typical test result evaluation tasks; consider performance test results interpretation; learn key factors related to defect communications
  9. Report Test Results. Learn how to make credible, professional reports of testing results and testing progress that address the varied needs of your target audiences; identify guiding principles for report design; review best practices and examples for defect reporting, progress status reporting, and quality statistics reporting

Part 3: Test Case Strategies

The heart of good testing is coming up with good test cases.  In this section, we will define what makes test cases “good”, and discuss these strategies for identifying test cases in specific contexts:

  1. White Box strategies
  2. Black Box strategies
  3. Input and data-based strategies
  4. User interface oriented strategies
  5. Business Process flow strategies
  6. Strategies based on your personal and organizational experiences

Part 4: Common Phases of Testing

Different testing activities take place as the software progresses through its life cycle. (Agile testers perform these same testing activities, even though they are not project phases.) This section explains the common phases of software testing, including the purpose of each, who normally performs it, and the typical types of tests that are done.

Test phases or types discussed:

  1. Unit and Software
  2. Integration
  3. System and System Integration
  4. Product Readiness
  5. Regression
  6. User Acceptance

Part 5: Approaches to Testing

Different approaches to testing are used to address different testing objectives and different project conditions. Some approaches are more formal, lengthy, traceable, and reproducible. Others are more free-form, quicker, less traceable, and less reproducible. The range of such approaches forms a continuum from which testers select the optimal combination for a given project. The best selection of approaches addresses the needs for both positive and negative testing.

  1. The Testing Approach Continuum
  2. Scripted Testing
  3. Freestyle Testing
  4. Middle-Ground (Charters, Checklists, Scenarios)

Part 6: Non-Functional Testing

Without question, functional testing is a must-have for software quality. However, there’s more to the picture than that. This section describes several key types of non-functional testing and identifies, what their scope is, and what techniques or best practices apply. 

  1. Performance
  2. Usability
  3. Accessibility
  4. Security
  5. Portability
  6. Localization

Part 7: Platform Specialization

Software is not just on the desktop—it runs on numerous platforms, and it all needs to be tested. This section takes multiple platforms into consideration and identifies each platform’s unique challenges, and the best testing approaches for each given platform.

  1. Web-Based
  2. Mobile
  3. SOA (Service-Oriented Architecture)
  4. Telephony and Voice
  5. DW/BI (Data Warehouse and Business Intelligence)
  6. COTS/MOTS – Package Implementations (COTS)

Part 8: Test Automation — Bonus Section

There have been many organizations that have set out to implement automation testing in their projects, and many of them have failed. This section identifies the different types of tools and practices that fall into the “automation” category and helps set realistic expectations and goals for automated testing. Learn how to optimize your automation testing investment and plan properly for long-term success. This is a bonus section that is discussed as time permits.

  1. Automated Test Tools
  2. System Monitor Tools
  3. File/Database Comparison Tools
  4. Static Analysis Tools

Part 9: Behavior Driven Development (BDD) & Test Driven Development (TDD) — Bonus Section

BDD and TDD are related approaches to software development that came out of the Agile movement and have proven to have a significant positive impact on software quality. This section provides an introduction to the concepts so testers can be prepared to adopt them together with developers and other project members using iterative development methods. This is a bonus section that is discussed as time permits.

  1. Test-Driven Development activities
  2. Behavior-Driven Development activities
  3. Tools for Different Languages

Part 10: Managing Testing Projects

Whether you lead a team of testers or work as the lone tester on a project, effectively managing the testing work is key to your ability to successfully test the software on time with the resources at hand.  In this section, we will address the basics of managing your work in a way that is relevant to individual contributors and lead leads alike.

  1. Planning for Testing (Universal Testing Method Steps 1-4)
  2. Requirements Traceability
  3. Test Resource Needs
  4. Testing Risks and Issues
  5. Testing Entry and Exit Criteria
  6. Measuring Testing Progress

Fundamentals of Secure Application Development

Part 1: Secure Software Development

  1. Assets, Threats & Vulnerabilities
  2. Security Risk Analysis (Bus & Tech)
  3. Secure Dev Processes (MS, BSI…)
  4. Defense in Depth
  5. Approach for this course

Introductory Case Study

Part 2: The Context for Secure Development

  1. Assets to be protected
  2. Threats Expected
  3. Security Imperatives (int&external)
  4. Organization's Risk Appetite
  5. Security Terminology
  6. Organizational Security Policy
  7. Security Roles and Responsibilities
  8. Security Training for Roles
  9. Generic Security Goals & Requirements

Exercise: Our Own Security Context

Part 3: Security Requirements

  1. Project-Specific Security Terms
  2. Project-Related Assets & Security Goals
  3. Product Architecture Analysis
  4. Use Cases & MisUse/Abuse Cases
  5. Dataflows with Trust Boundaries
  6. Product Security Risk Analysis
  7. Elicit, Categorize, Prioritize SecRqts
  8. Validate Security Requirements

Exercise: Managing Security Requirements

Part 4: Designing Secure Software

  1. High-Level Design
    1. Architectural Risk Analysis
    2. Design Requirements
    3. Analyze Attack Surface
    4. Threat Modeling
    5. Trust Boundaries
    6. Eliminate Race Objects
  2. Detail-Level Design
    1. Secure Design Principles
    2. Use of Security Wrappers
    3. Input Validation
    4. Design Pitfalls
    5. Validating Design Security
    6. Pairing Mem Mgmt Functions
    7. Exclude User Input from format strings
    8. Canonicalization
    9. TOCTOU
    10. Close Race Windows
    11. Taint Analysis

Exercise: A Secure Software Design, Instructor Q and A

Part 5: Writing Secure Code

  1. Coding
    1. Developer guidelines & checklists
    2. Compiler Security Settings (per)
    3. Tools to use
    4. Coding Standards (per language)
    5. Common pitfalls (per language)
    6. Secure/Safe functions/methods
      1. Stack Canaries
      2. Encrypted Pointers
      3. Memory Initialization
      4. Function Return Checking (e.e. malloc)
      5. Dereferencing Pointers
    7. Integer type selection
      1. Range Checking
      2. Pre/post checking
    8. Synchronization Primitives
  2. Early Verification
    1. Static Analysis (Code Review w/tools)
    2. Unit & Dev Team Testing
    3. Risk-Based Security Testing
    4. Taint Analysis

Exercise: Secure Coding Q and A

Part 6: Testing for Software Security

  1. Assets to be protected
  2. Threats Expected
  3. Security Imperatives (int&external)
  4. Organization's Risk Appetite
  5. Static Analysis
  6. Dynamic Analysis
  7. Risk-Based Security testing
  8. Fuzz Testing (Whitebox vs Blackbox)
  9. Penetration Testing (Whitebox vs Blackbox)
  10. Attack Surface Review
  11. Code audits
  12. Independent Security Review

Exercise: Testing Software for Security

Part 7: Releasing & Operating Secure Software

  1. Incident Response Planning
  2. Final Security Review
  3. Release Archive
  4. OS Protections:
    1. Address Space Layout Randomization
    2. Non-Executable Stacks
    3. W^X
    4. Data Execution Prevention
  5. Monitoring
  6. Incident Response
  7. Penetration Testing

Exercise: A Secure Software Release

Part 8: Making Software Development More Secure

  1. Process Review
  2. Getting Started
  3. Priorities

Exercise: Your Secure Software Plan

DevOps Implementation Boot Camp (ICP-FDO)

Part 1: Introduction

1.      DevOps Defined

  • DevOps (Then and Now)
  • CI/CD
  • Infrastructure as Code
  • BizDevOps
  • DevSecOps
  • AIOps
  • DataOps

2.     High-Performance IT Organizations

  • Elite Performers
  • Use of the Cloud
  • Work-Life Balance
  • Optimized Change Review

3.     Origins and History of DevOps

  • The Quality Movement and W Edwards Deming
  • The Lean Movement and the Toyota Production System
  • The Agile Movement – Mindset, Value, Principles & Practices
  • The Continuous Delivery Movement

4.     Argument for DevOps

  • Business Value of DevOps
  • Net Effect of DevOps
  • Exercise: Argue for the value of DevOps in your organization

Part 2: Maturing a DevOps Practice in the Enterprise

1.      CALMS – The 5 DevOps Principles

2.     The 5 Cultural Challenges

3.     5 Cultural Dimensions

4.     Value Stream Mapping

  • Value Stream Definition and Examples
  • Exercise: Choose and Map a Case Study Value Stream
  • Analyze: Value Stream Lead Time, Quality, Involvement
  • Exercise: Analyze a Value Stream

Part 3: Your DevOps Journy – Optimize Flow

1.      Principles of Flow

  • 6 Principles of Flow from the DevOps Handbook
  • 8 Principles of Continuous Delivery from the Continuous Delivery book
  • Exercise: Apply Principles to your Case Study Value Stream

2.     Infrastructure as Code

3.     Infrastructure & Application Configuration Management

  • Configuration Management Tools
  • Exercise: Configuration Management in your Case Study Value Stream

4.     Deployment Pipeline

  • Deployment Pipeline Stages and Tools
  • Deployment Orchestration Tools
  • Deployment Pipeline: Everything in Version Control
  • Exercise: Deployment Pipeline in your Case Study Value Stream

5.     DevOps Quality Management

  • Quality Foundations
  • Quality Principles
  • Quality Practices
  • Test Automation Architecture
  • Test Automation Pyramid
  • Strategies for Managing Test Data
  • Code Analysis Tools
  • Automated Testing Tools
  • Exercise: DevOps Quality Management in your Case Study Value Stream

6.     CI/CD

  • Continuous Integration
  • Continuous Delivery
  • Exercise: CI/CD in your Case Study Value Stream

7.     Database Continuous Integration (DBCI)

  • Exercise: DBCI in your Case Study Value Stream

8.     Application Management Strategies

9.     Application Architecture – SOA, Microservices, Strangler Pattern

10.  Infrastructure Architecture – Virtualization & The Cloud

11.    Containerization

12.  Exercise: Optimize Flow in Your Case Study Value Stream

Part 4: Your DevOps Journey – Amplify Feedback

1.      Objective & Principles of Feedback

2.     Telemetry Definitions & Concepts

  • Telemetry Principles
  • Exercise: Telemetry Principles in your Case Study Value Stream
  • Integrating Security into Production Telemetry
  • Telemetry Layers & Levels
  • Ensuring Effective Alerts
  • System Monitoring, Log Agregation, and Alerting Tools
  • DevOps Metrics

3.     Advanced uses of Telemetry

  • Using Telemetry to Anticipate Problems
  • Feedback for Safe Deployment of Code
  • Developers Follow Their Apps Downstream
  • Hypothesis-Driven Development and A/B Testing
  • Exercise: Telemetry in your Case Study Value Stream

4.     Change Review and Coordination

5.     Exercise: Amplify Feedback in Your Case Study Value Stream

Part 5: Your DevOps Journey – Continual Learning & Experimentation

1.      Learning Culture

  • Blameless Postmortems
  • Responses to Failure
  • Blameless Postmortems

2.     Knowledge Sharing

3.     Innovation Culture

  • Institutionalize the Improvement of Daily Work
  • Encouraging Experimentation
  • Holding Learning and Improvement Events (Hackathons, Kaizen Blitzes, Rehearsing Large-Scale Failures, Fault Injection)

4.     Role of Leadership

5.     Exercise: Learning & Innovation Culture in your organization

Part 6: Planning Your DevOps Journey

1.      Cultural challenges

2.     Organizational challenges

3.     Transformation Patterns You Can Follow

  • Lean Startup Teams
  • Collaboration Tools
  • Automate Everything You Can
  • Reserve Time for Improvement

4.     Planning DevOps Transformation

5. Exercise: Your DevOps Action Plan

Software Tester Certification Boot Camp

Part 1: Course and Exam Overview

  1. ISTQB and ASTQB overview
  2. Exam format
  3. Study and exam-taking tips
  4. Course flow and agenda topics
  5. Outline of the daily schedule (varies on day 3)
  6. Explanation of supplementary material

Part 2: Fundamentals of Testing

  1. Testing overview and key terminology
  2. Common testing principles
  3. Basic test process
  4. Psychology of testing
  5. Code of ethics
  • Interactive Session: Testing missions and test objectives
  • Pop Quiz: Seven testing principles
  • Interactive Session: Context drivers for testing

Part 3: Testing throughout the Software Life Cycle

  1. Software development models
  2. Test levels and test types
  3. Maintenance testing
  • Interactive Session: Understanding test impacts of software development models
  • Interactive Session: Illustrating verification and validation for better understanding
  • Interactive Session: Linking test levels with entry and exit criteria
  • Interactive Session: Compare and contrast black box and white box testing
  • Interactive Session: Understanding goals, targets, and issues within test levels
  • Interactive Session: Compare and contrast test types using examples

Part 4: Test Management

  1. Test organization
  2. Planning and estimation
  3. Progress monitoring and control
  4. Configuration management
  5. Risk and testing
  • Incident management
  • Pop Quiz: Understanding project constraints
  • Pop Quiz: Test team organizational structures
  • Pop Quiz: Driving more accurate test estimates
  • Pop Quiz: Choosing a test approach
  • Interactive Session and Pop Quiz: Performing risk assessment
  • Pop Quiz: Identifying incidents
  • Hands-on Exercise: Write an incident report
  • Hands-on Exercise: Perform a review session
  • Interactive Session: Developing oracles

Part 5: Test Design Techniques

  1. The test development process
  2. Specification-based techniques
  3. Structure-based techniques
  4. Experience-based techniques
  5. Selecting test techniques
  • Pop Quiz: Using specification-based techniques
  • Interactive Session: Review tests designed with equivalence partitioning
  • Hands-on Exercise: Use equivalence partitioning as a test design method
  • Hands-on Exercise: Use boundary value analysis to create tests
  • Interactive Session: Analyze and map out complex logic in requirements
  • Hands-on Exercise: Use a decision table to develop tests
  • Interactive Session: Walk through a state model
  • Hands-on Exercise: Use a state model to build tests
  • Pop Quiz: Use case basics
  • Interactive Session: Generate tests from use cases
  • Interactive Session: Analyze code flow with control flow diagrams
  • Hands-on Exercise: Develop structural tests for code and analyze coverage
  • Pop Quiz: Differentiate experience-based techniques
  • Pop Quiz: Choose a test technique

Part 6: Static Techniques

  1. Static testing techniques
  2. The review process
  3. Static analysis by tools
  • Review test sets to evaluate test design*
  • Perform a peer review and feedback session (these practice sessions are embedded elsewhere to perform reviews on real targets)

Part 7: Tool Support for Testing

  1. Types of tools
  2. Effective use of tools
  3. Introducing tools into an organization
  • Pop Quiz: Test frameworks
  • Pop Quiz: Understanding probe effect
  • Pop Quiz: Pros and cons of tools
  • Pop Quiz: Piloting a tool

Part 8: Course Wrap-up

  1. Exam tips, procedures, and guidelines
  2. Exam cram
  • Open review session
  • Practice exam review

At the conclusion of the software testing training course, you will have the opportunity to take the ISTQB™ Certified Tester —Foundation Level exam. The exam is held at 3:30 p.m. on the third day of the course. The ISTQB™ Certified Tester —Foundation Level certification exam is independently administered by the American Software Testing Qualifications Board, Inc. (ASTQB).