*changes may apply

Syllabus Software Testing and Automation

Module I: Introduction, with focus on manual testing

The objective of the first module is to reinforce the basic concepts of testing, covering methodologies, development models, testing levels, testing techniques, types of testing, test planning, risk analysis, tools, and systems. The module includes practice of each topic through group exercises, thinking teams, and feedback. We will review real testing documents, testing techniques, do's and don'ts cases.

Basic Concepts and Methodologies
  • Introduction 
  • Understanding the need for testing – What is the meaning of quality? 
  • Real-world examples of software bugs that caused disasters 
  • Human error and how defects are introduced 
  • Difference between error, defect, and failure 
  • Software testing – Definitions and basic testing concepts 
  • Debugging Vs. Testing 
  • Testing goals 
  • Seven key principles of testing 
  • Overview of the testing life cycle (at a glance) 
  • Test planning 
  • Test design 
  • Writing test scenarios and execution 
  • Test status reporting and exit criteria evaluation 
  • Test summary 
Types of Testing and Development Methodologies
  • Psychology in the testing world 
  • Independence of testing (overview of different levels) 
  • Integration of testing in an organization (how testers fit in the project) 
  • Dealing with conflicts (testers vs. developers) 
  • Overview of common development models 
  • Waterfall model 
  • V model 
  • Spiral and iterative models 
  • Agile development models, Scrum method 
  • Testing levels 
  • Unit Testing 
  • Integration Testing 
  • System Testing 
  • Acceptance Testing 
  • Maintainability Testing 

Types of Testing, Demonstration, and Comprehensive Overview
  • Intro
  • Types of testing 
  • Functional, installation, and Integration testing 
  • Information security testing (permissions, identity verification, and penetration testing) 
  • Performance, load, and extreme condition (stress)  testing 
  • Usability testing 
  • Compatibility testing 
  • Reliability and fault recovery testing 
  • Change-based testing – Regression and re-testing 
  • User experience testing 
Black Box Testing and Experience-based Testing
  • Black Box Testing 
  • Boundary testing 
  • Equivalence class testing 
  • Decision table testing 
  • State transition testing 
  • Use case-based testing 
  • Practical exercises of black box testing 
  • Experience-based Testing 
  • Error Guessing technique 
  • Exploratory Testing technique 
  • Practical exercises in exploratory testing 
Testing Techniques for White Box Testing
  • White Box Testing 
  • Declaration of tests, their meaning, and how to perform them 
  • Decision testing, execution methods, and code analysis 
  • Branching tests (minimal and multiple) 
  • Practical analysis exercises of white box testing on code 
  • Working with flowcharts 
  • Grey Box Testing, using pseudocode 
  • Overview of additional testing methods – TDD / BDD 

Test Planning and Design, STP, STD Documents
  • Efficient test planning 
  • How to plan and estimate the scope of testing 
  • Purpose and content of the test plan 
  • Testing strategy and approaches 
  • What is the entry and exit criterion 
  • Overview of writing the Software Test Plan (STP) document 
  • Extracting a functional test tree from specification 
  • Designing tests, working with test management tools 
  • What a classic test scenario includes 
  • Writing efficient tests 
  • Dos and Don’ts in writing test scenarios 
  • Practical exercise in writing tests based on a technical specification provided 
  • Familiarity with test management tools TESTRAIL or QASE 
Test Execution, Tracking Reports, and Summary Documents (STR)
  • Test execution 
  • How to document tests efficiently 
  • Risk-Based Testing 
  • Metrics using testing to determine progress 
  • Testing reports – Goals, content, and objectives 
  • Summary test documents, points to consider 
  • Statistics in STR and tools for analysis 
  • Reporting and monitoring defects, working with defect management tools 
  • Proper defect reporting 
  • Working with a bug tracking system (JIRA and MONDAY software) 
  • Monitoring progress and defect management meetings 
  • Using Postman for testing, Development tools of Edge & Chrome 
  • Practical simulation of a weekly bug management meeting 
  • Practice in interface testing, API testing with POSTMAN 
Introduction to Server-Side SQL Testing
  • Introduction to databases 
  • What is a database and how to test it 
  • SQL language – Basic commands 
  • (Insert/Update/Delete/Create) 
  • (Count, Sum, Max, Min, Avg) 
  • (Join tables) Variety of union commands 
  • SQL language – Using additional advanced commands 
  • GROUP BY / HAVING commands 
  • Using subqueries 
  • Familiarity with BIG DATA, working with MONGO DB 
  • SQL exercises and exam 
Testing Project
  • Implementation of tests on a module in the system 
  • Definition of requirements and resources for the project 
  • Test planning for an ERP system 
  • Building a checklist for the system, test cycles, and version management 
  • Writing scenarios in the TESTRAIL system 
  • Running tests based on risk-driven prioritization 
  • Documentation of defects in the system provided in advance 
Part I - Summary and Personal Feedback
  • Presentation of the final project 
  • Introduction to advanced testing tools 
  • Trends and trends in software testing 
  • Testing in the cyber age and IOT technologies 
  • Advanced tools for testing used in the industry 
  • Class presentation of a project, conclusions, and recommendations 
  • Personal and group feedback 
  • Course summary 
Module II: Testing Automation using AI tools

This module is dedicated to mastering quality assurance through automated testing, ensuring students acquire essential skills with today's cutting-edge QA automation tools. The focus is on leveraging contemporary and widely used tools: Cypress and Java programming as part of Selenium and Appium tools.  Students will learn how to take advantage of a variety of AI tools to develop their automation test code such as Tabnine and Copilot.  

QA Automation with Cypress

Understanding Web Pages (20 hours): 

  • Introduction to HTML and CSS basics 
  • In-depth exploration of CSS selectors 
  • Practical exercises on navigating and interacting with web pages 

 

JavaScript Fundamentals (20 hours): 

  • Basics of JavaScript programming 
  • DOM manipulation using JavaScript 
  • Asynchronous JavaScript and promises 

 

Cypress Fundamentals (20 hours): 

  • Installing and configuring Cypress 
  • Writing and running basic Cypress tests 
  • navigation 
  • assertions 
  • Fixtures 
  • Iterating over elements groups 
  • Cypress Projects: implementing a series of automation tests on websites 

QA Automation with: Java, Selenium, Appium
  • Introduction to Programming and Java
    • Java Basics 
    • Variables, data types, and operators 
    • Control flow (if , for loops) 
  • Object-Oriented Programming (OOP) and Collections 
  • Classes and objects 
    • Inheritance, polymorphism, encapsulation, and abstraction 
    • Handling errors and exceptions in Java 
    • Collections Framework 
    • Lists  
  • Selenium Projects: implementing a series of automation tests on websites
  • Introduction to Appium
    • Setting up Appium for Android and iOS 
  • Automating Mobile Apps
    • Interacting with mobile elements 
    • Mobile gestures and actions 
  • Appium Advanced Concepts 
    • Handling multiple devices 
  • Appium Project: implement a set of automation tests on a mobile app 
  • Introduction to Selenium WebDriver 
    • Setting up Selenium WebDriver 
    • Interactions with web elements 
    • Locators in Selenium 
  • Handling WebDriver Waits
    • Implicit and explicit waits 
    • Expected Conditions 
Jenkins and CI/CD
  • Introduction to CI/CD and Jenkins 
  • What is CI/CD? 
    • Benefits of CI/CD in software development 
    • Introduction to Jenkins purpose 
  • Jenkins Installation and Configuration 
  • Basic Jenkins Jobs 
    • Creating and configuring Freestyle Jobs 
    • Managing build triggers and parameters 
  • Jenkins Pipelines Basics 
    • Introduction to Declarative Pipelines 
  • Syntax and structure of Jenkins files 
  • Building basic pipelines 
  • Jenkins Integrations 
  • Integrating Jenkins with Git 
  • Basic plugin management and installation. 

Introducing AI Tools for Automation
  • Overview of AI-driven automation tools.
    Note: The scope of tools discussed in this section may change based on the rapid developments of this highly active domain, and the available time.  
  • Test.ai offers AI-driven testing solutions that leverage machine learning to automatically generate and execute test cases. It can be particularly useful for mobile app testing, reducing the manual effort required in creating and maintaining test scripts. 
  • Applitools provides visual testing tools that use AI to detect visual bugs and differences in application UI across different browsers and devices. It can help ensure visual consistency and improve the accuracy of test results. 
  • Sauce Labs offers a cloud-based testing platform that incorporates AI for test analytics and optimization. It provides real-time insights into test results and helps identify patterns and trends, allowing for continuous improvement in testing strategies. 
  • Eggplant AI is an AI-driven test automation tool that uses intelligent algorithms to analyze application behavior. It can automatically generate test scenarios based on user interactions, making it a powerful tool for exploratory testing.
  • Functionize employs AI and machine learning to perform autonomous testing. It can automatically create and maintain test scripts, making it a valuable tool for reducing the time and effort required for test script development. 
  • Mabl is an intelligent test automation platform that uses machine learning to adapt and maintain tests over time. It provides insights into test performance and identifies potential issues, allowing testers to focus on critical areas. 
Personal Skills

A flexible module that provides training in interpersonal communication skills, English skills, self-study skills, time management, accepting, facing, learning from failure. The methodology is based on short workshops and weekly meetings with professionals, industry leaders, and role models.

Read More