THE "SOFTWARE TESTING" SELF-STUDY PROGRAM
Courses included in the program are:
- Introduction to Testing
- Testing of Web applications
- Mobile App Testing
- Automated Testing
COURSE "INTRODUCTION TO TESTING"
WHAT WILL THE COURSE TEACH YOU?
In just 6 weeks of independent training, you will receive systematized basic theoretical knowledge and practical skills necessary to start working as a junior tester and/or continue in-depth training. Prerequisites:
- Basic computer literacy.
LESSON 1: TESTING AND TESTERS
- Profession tester (QA)
- What to study to understand the basics of testing
- What is testing?
- Testing goals.
- Testing principles
- Software Quality
- Validation and verification
- The concept of errors, defects and failures, what is a Bug
- Meaning and classification of software errors
- Causes of bugs
LESSON 2: SOFTWARE DEVELOPMENT AND TESTING LIFE CYCLE
- What is an IT project?
- IT Project Management
- Software Development Lifecycle:
- Basic software development models
- Flexible Agile development methodology
- Software Testing Life Cycle
- Scrum Project Management Methodology
- Kanban Project Management Methodology
- Project management using Agile Agile methodology
- What is Jira?
LESSON 3: REQUIREMENTS AND DOCUMENTATION
- What is a "requirement"
- Classification of requirements
- Software documentation
- Test documentation test plan, test case, checklist, bug report
- Basics of Software Testing
- Planning the testing process
LESSON 4: SOFTWARE TESTING
- Basic concepts and definitions
- Types of software testing
- Software Testing Levels
- Test design
- Testing process
- Automated software testing
LESSON 5: METRICS OF THE TESTING PROCESS
- Evaluation of test results
- Testing metrics and evaluation of labor costs.
LESSON 6: TOOLS YOU NEED TO MASTER
- Java consistently ranks first in the tiobe programming languages popularity index. You can use it to write auto-tests and in the future to develop for any platform. Java is a good language to start learning programming.
- Visual Studio Code is a source code editor developed by Microsoft for Windows, Linux and macOS.
- Git is the most popular version control system used by most developers, including the creators of Android and Linux operating systems. The version control system allows you to work on the project code together without worrying about data loss or version conflict.
- PostgreSQL is a free object-relational database management system. It exists in implementations for many UNIX-like platforms, including AIX, various BSD systems, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, as well as for Microsoft Windows.
- Selenium is a framework (software library) for automating web browser actions. The most popular tool for testing web applications, providing auto-tests with access to the browser.
- JSON is a text data exchange format based on JavaScript.
- IntelliJ IDEA is a smart and convenient development environment for Java, including support for the latest technologies and frameworks. It provides tools for productive work and is suitable for creating commercial, mobile and web applications.
- Swagger is an open source software environment based on an extensive ecosystem of tools that helps developers design, create, document, and use RESTful web services.
- Postman is an HTTP client for testing websites. You can use it to compose and edit simple or complex HTTP requests.
- JIRA is a system that is suitable for bug tracking and project management in a company of any size.
- Apache Maven is a framework for automating the assembly of projects based on the description of their structure in files in the POM language, which is a subset of XML.
THE COURSE "TESTING WEB APPLICATIONS"
WHAT WILL THE COURSE TEACH YOU?
Understanding the principles of web applications and knowledge of the technologies used. Knowledge of the features of testing web applications compared to desktop applications. Knowledge for designing tests and test scenarios taking into account the features of web applications and evaluating the coverage of application functionality by tests. Be able to perform tests, if necessary using tools to overcome the limitations imposed by the browser and issue bug reports. Understanding the basics of web layout, web application architecture, protocols. Possession of tools to perform specific checks specific to web applications:
- link integrity analysis,
- analysis of compliance with web standards, Understanding the causes of vulnerabilities in web applications and the ability to detect the most critical vulnerabilities in web applications, - understanding the principles of evaluating the performance of web applications and being able to analyze the server and client performance of web applications.
Prerequisites:
- Basic computer literacy. Client and server architecture.
- Knowledge of any programming language at a basic level (Java, Python, Ruby or PHP), the basics of SQL.
LESSON 1: BASICS OF WEB APPLICATIONS
- Basic concepts in web development. General theory of testing
- Quality Characteristics: what should I test?
- Interfaces of the tested program, stimuli and reactions
- Common browser device
- Hypertext, HTML markup language
- Testing the text content of pages
- Testing text fields
- Testing text, numbers, and dates using boundary values
- Testing registration forms
- Testing authorization forms and password recovery
- Testing additional interface elements
- Testing navigation (transitions between pages)
LESSON 2: CLIENT AND SERVER ARCHITECTURE
- Client-server architecture of web applications
- HTTP Protocol
- User Agent, browsers and bots
- Browser engines and cross-browser testing
- Analysis of web server logs
- Developer Tools / Network, query and response analysis
- Interception of traffic between the browser and the server
- Sending custom requests
- Domain Name Services (DNS)
- IPv4 and IPv6 protocols
- Firewalls and proxies
LESSON 3: DYNAMIC PAGE GENERATION
- Application server, programming languages
- Three-link and four-link architecture
- Database Server
- SQL Query Language
- Server-side caching
- Authentication and authorization
- Cookies
- External Authentication (OAuth)
- Access rights testing
- Performance testing
LESSON 4: GETTING DATA FROM THE USER
- Forms, request parameters
- Implicit parameters
- GET and POST
- Logic Testing (functional testing)
- Test automation
- Performance testing
- Reliability testing
- Security testing
LESSON 5: PAGE LAYOUT
- Basics of HTML Document Markup Language
- Basics of the CSS document style Design language
- Developer Tools / DOM, analysis of element properties
- Basic layout tags, Pseudo-classes and pseudo-elements
- Simple layout
- Adaptive layout
- Adaptability. Desktop and tablet.
- Adaptability. Mobile devices.
- Semantic layout
- Browser compatibility
- Compliance with standards
LESSON 6: PICTURES AND OTHER DECORATIONS
- Size, quantity, performance
- Client-side caching
- Content Delivery Network (CDN)
- Sprites, inline images, fonts
- Adaptive layout
- Typography
- Scalable Vector Graphics (SVG)
- Canvas
- Audio and video
LESSON 7: INTERACTIVITY
- JavaScript: a programming language built into the browser
- CSS Transform: Animation without JavaScript
- Dynamic modification of pages
- Document Object Model (DOM)
- Developer Tools / Console
- JavaScript Debugger
- Asynchronous requests to the server (AJAX) REST
- REST API
- SOAP API
- WebSocket
- Data validation
- Dynamic data loading
- Single Page Applications (SPA)
LESSON 8: REPEATING THE BASICS
- Functional testing
- Automation of functional testing
- Performance testing, including the client part
- Security testing
- Reliability testing
- Usability testing
- Automation of layout testing
- Accessibility Testing
- Advanced testing techniques
- Test scenarios. Positive and negative tests
- Cross-platform and cross-browser testing
- Additional testing tools
LESSON 9: NON-FUNCTIONAL TESTING
- Requirements testing.
- Testing UI, UX.
- Acceptance testing.
- Security testing. Server vulnerabilities.
- Security testing. Client vulnerabilities.
MOBILE APP TESTING COURSE
WHAT WILL THE COURSE TEACH YOU?
Knowledge and ability to organize testing of mobile applications, which device to choose for testing, get an idea of building test strategies.
Prerequisites:
- Basic computer literacy. It is necessary to be able to work with connecting phones with different operating systems to different computers, command line, graphical and console interfaces, environment variables, various file systems, logs, IDE, client-server architecture, screenshots and videos.
- Knowledge of any programming language at a basic level (Java, Python, Ruby or PHP)
LESSON 1: FEATURES OF MOBILE TESTING
- Basic concepts
- Types of Android devices. Resolution and screen sizes.
- Architecture of processors of Android devices.
- Android OS Versions
- Types of iOS devices. Screen Resolutions
- Architecture of processors of iOS devices
LESSON 2: FEATURES OF MOBILE TESTING
- Communication test (Wifi/2G/3G/LTE)
- Interrupt testing
- Interaction with position and touch sensors
- Geolocation and GPS testing
- Resource consumption testing
- Working with client-server applications
- Тестирование установки
- Роль тестировщика в администрировании мобильных устройств
- Test case lists: checklists and mnemonics
- Firewalls and proxies
LESSON 3: EMULATORS AND SIMULATORS
- Difference between iOS simulator and Android emulator
- Features of device testing and emulator / simulator
- Mobile device farms
- Advantages and Disadvantages of Using Farms
- An example of using a mobile farm
LESSON 4: TESTING ANDROID APPLICATIONS
- Installing and configuring Android Studio
- Creating and Configuring an Emulator in Android Studio
- Emulator functionality
- Configuring Android Device Bridge
- Installing applications on an emulator and a real device
- Analysis of logs and taking screenshots
- Operation life cycle
- Traffic interception
- Working with GPS
LESSON 5: TESTING IOS APPLICATIONS
- Installing and configuring Xcode
- Module 2: Simulator Functionality
- Запуск приложения на симуляторе
- Launching an application on a mobile device
- Artifacts testing
- Traffic interception
- Working with GPX paths
LESSON 6: ORGANIZING THE TESTING PROCESS
- Choosing a testing strategy
- Module 3: Guidelines for Android and iOS
- Module 4: Development
- Module 5: Monkey testing
- Module 6: Display
- Monitoring and support
- A/B testing
AUTOMATED TESTING COURSE
WHAT WILL THE COURSE TEACH YOU?
- Ability to work with both platforms - iOS and Android;
- Choose the right tools that are right for your tasks;
- Configure the system from scratch on various systems;
- Write quality tests that are easy to maintain and extend;
- Get all the knowledge you need to get started in your project.
Prerequisites:
- Basic computer literacy. It is necessary to be able to work with connecting phones with different operating systems to different computers, command line, graphical and console interfaces, environment variables, various file systems, logs, IDE, client-server architecture, screenshots and videos.
- Knowledge of any programming language at a basic level (Java, Python, Ruby or PHP)
- Understanding the basics of OOP. You need to understand what a class, a class method and a class field are.
- Java basics. You need to know the basic data types: int, char. You need to know what String and List are.
- You need to know what a locator is and how to create a simple XPath locator.
LESSON 1: INTRODUCTION TO JAVA AND JUNIT
- Installing IDE Development Tools
- Creating a project in IntelliJ IDEA
- Java basics - variables and data types, functions
- Java Fundamentals - Classes, Class Methods, and Objects
- Object oriented programming - inheritance, encapsulation, polymorphism
- Access modifiers in Java - public, private, protected
- Class fields - variables within classes
- Static fields and methods - what are they for and how to use them
- The basics of working with the JUnit test framework
- Writing Simple JUnit Tests
- Test statuses - success, skip, failed, error
- Test annotations and descriptions
- Assertions in tests - assertTrue / assertFalse, assertEquals and so on
- Git and Github - uploading our tests to your repository
LESSON 2: INSTALLING AND CONFIGURING TOOL
- Overview of mobile automation tools
- Training software
- Installing Tools (Windows)
- Installing tools (macOS)
- UIAutomatorViewer and Appium Viewer
- Tincture of the test application
- Packages and Capabilities
- Creating a new project in the IDE, connecting libraries
- Running the first test on Android
SESSION 3: FIRST TESTS ON ANDROID
- The types of swipes and the organization of convenient methods for them are
- Assertions - we write our own methods to check the state of the application
- Screen rotations and proper preparation of the emulator before the start of tests
- Preparing the environment for tests - TestBase and TestCore class
ЗLESSON 4: ADVANCED TESTS ON ANDROID
- The types of swipes and the organization of convenient methods for them are
- Assertions - we write our own methods to check the state of the application
- Screen rotations and proper preparation of the emulator before the start of tests
- Preparing the environment for tests - TestBase and TestCore class
LESSON 5: PAGEOBJECT, PAGEFACTORY AND OTHER PATTERNS
- Page object models for organizing tests
- Creating a PageObject factory for cross-platform tests
- Taking apart other patterns for developing tests
- Preparing environment for tests - TestBase and TestCore classes
LESSON 6: SIMPLE TESTS FOR IOS
- Installing XCode and iOS Simulators
- Launching the app on the iOS simulator
- Appium Viewer for iOS - search for locators
- Connecting the iOS platform to tests
- Basic Tests for iOS app
LESSON 7: COMPLEX TESTS FOR IOS
- Development of cross-platform tests for iOS and Android
- Working with environment variables
- Creating a Platform config class
- Universal methods for swipe
- Skip tests for platforms
LESSON 8: MAVEN AND CI SYSTEMS USING THE EXAMPLE OF JENKINS
- Running the emulator from the command line
- Launching Appium Server from the command line
- Installing Maven
- Importing a project into IDEA
- Installing Jenkins
- Development of bash scripts for Jenkins
- Running tests on iOS in Jenkins
- Running tests on Android in Jenkins
- Adding tests to suite
LESSON 9: SELENIUM AND TESTS FOR THE WEB ON THE EXAMPLE OF A MOBILE WEB APPLICATION
- Launching Selenium and Chrome Driver
- Preparing capabilities for the Mobile Web
- Creating base classes for a Mobile Web Application
- Working with the Chrome DevTools Inspector
- Preparing tests for launch in Jenkins