Introduction To Software Testing
Software Testing is a method to check whether the actual software product matches expected requirements and to ensure that software product is Defect free. It involves execution of software/system components using manual or automated tools to evaluate one or more properties of interest. The purpose of software testing is to identify errors, gaps or missing requirements in contrast to actual requirements.
Software Testing (Combo Pack)
Manual Testing
Bug Tracking Tool: Jira & Trello
SQL Queries
JAVA for Selenium
Automation (Selenium)
J meter
API Testing
Manual Software Testing Course Syllabus
Course Title: Manual Software Testing
Course Description: This course provides a thorough introduction to manual software testing. Students will learn the fundamental principles, techniques, and tools used in manual testing to ensure the quality of software applications.
Course Objectives:
- Understand the importance and fundamentals of software testing.
- Learn various testing techniques and methodologies.
- Develop skills in test planning, test case design, and test execution.
- Gain proficiency in defect management and reporting.
- Understand the different types and levels of testing.
Week 1: Introduction to Software Testing
- Overview of software testing and its significance
- Software Development Life Cycle (SDLC)
- Software Testing Life Cycle (STLC)
- Key concepts: quality assurance (QA), quality control (QC), and testing
Week 2: Testing Fundamentals
- Types of testing: functional, non-functional, regression, acceptance
- Levels of testing: unit, integration, system, and acceptance testing
- Static vs. dynamic testing
- Verification vs. validation
Week 3: Test Planning and Documentation
- Test planning process
- Writing a test plan document
- Risk analysis and mitigation
- Test metrics and reporting
Week 4: Test Case Design Techniques
- Importance of test case design
- Techniques: boundary value analysis, equivalence partitioning, decision table testing, state transition testing
- Writing effective test cases
- Test data preparation
Week 5: Test Execution and Reporting
- Test execution process
- Logging defects and tracking them
- Defect life cycle
- Test summary reports and metrics
Week 6: Functional Testing
- Understanding functional requirements
- Creating and executing functional test cases
- Exploratory testing
- Usability testing
Week 7: Non-Functional Testing
- Performance testing: load, stress, and endurance testing
- Security testing: identifying and mitigating vulnerabilities
- Compatibility testing: cross-browser and cross-platform
- Accessibility testing
Week 8: Regression Testing
- Importance of regression testing
- Creating and maintaining a regression test suite
- Automated vs. manual regression testing
- Techniques for effective regression testing
Week 9: User Acceptance Testing (UAT)
- Understanding UAT and its significance
- Planning and executing UAT
- Writing UAT test cases
- Conducting UAT sessions and reporting
Week 10: Agile Testing
- Introduction to Agile methodologies
- Role of testers in Agile teams
- Agile testing practices and tools
- Continuous integration and testing in Agile
Week 11: Test Management Tools
- Overview of test management tools (JIRA, TestRail, etc.)
- Creating and managing test cases in test management tools
- Defect tracking and reporting using tools
- Practical exercises with selected test management tools
Week 12: Final Project and Review
- Comprehensive project covering all aspects of manual testing
- Application of testing techniques learned
- Peer review and feedback sessions
- Final project presentations and critique
- Course review and Q&A
Assessment:
- Weekly assignments and quizzes (40%)
- Midterm project (20%)
- Final project (30%)
- Class participation and attendance (10%)
Selenium Course Syllabus
Course Title: Automated Testing with Selenium
Course Description: This course provides an in-depth introduction to automated testing using Selenium. Students will learn how to create, manage, and execute automated tests for web applications. The course covers Selenium WebDriver, Selenium Grid, and integration with test frameworks.
Course Objectives:
- Understand the fundamentals of automated testing and Selenium.
- Learn to set up and configure Selenium WebDriver.
- Develop skills to create and execute automated test scripts.
- Integrate Selenium with testing frameworks like TestNG and JUnit.
- Utilize Selenium Grid for parallel test execution.
Week 1: Introduction to Automated Testing and Selenium
- Overview of automated testing
- Introduction to Selenium and its components
- Installing and configuring Selenium WebDriver
- Setting up the development environment (Eclipse, IntelliJ IDEA)
Week 2: Selenium WebDriver Basics
- Understanding WebDriver architecture
- Navigating web pages
- Locating elements using different strategies (ID, Name, XPath, CSS Selector)
- Basic actions (click, sendKeys, getText)
Week 3: Advanced WebDriver Concepts
- Handling dropdowns, checkboxes, and radio buttons
- Working with alerts, pop-ups, and iframes
- Managing multiple windows and tabs
- Handling browser cookies and capturing screenshots
Week 4: Synchronization in Selenium
- Implicit and explicit waits
- Fluent wait and WebDriverWait
- Handling asynchronous web pages
Week 5: Test Frameworks and Selenium
- Introduction to TestNG and JUnit
- Setting up TestNG and JUnit with Selenium
- Writing test cases and test suites
- Data-driven testing using TestNG/JUnit
Week 6: Page Object Model (POM)
- Introduction to Page Object Model
- Creating and managing page objects
- Implementing POM in test scripts
- Advantages of POM in test maintenance
Week 7: Selenium Grid
- Introduction to Selenium Grid
- Setting up Selenium Grid hub and nodes
- Configuring and running tests on Selenium Grid
- Parallel test execution
Week 8: Advanced Topics in Selenium
- Integrating Selenium with Maven and Jenkins
- Continuous Integration and Continuous Testing
- Cross-browser testing with Selenium
- Best practices for Selenium test automation
Week 9: Introduction to Selenium IDE and RC
- Overview of Selenium IDE
- Creating and running tests using Selenium IDE
- Introduction to Selenium RC (Remote Control)
- Differences between Selenium RC and WebDriver
Week 10: Final Project Work
- Comprehensive project integrating all concepts learned
- Creating a robust test suite for a web application
- Peer review and feedback sessions
- Final project presentations and critique
Assessment:
- Weekly assignments and quizzes (40%)
- Midterm project (20%)
- Final project (30%)
- Class participation and attendance (10%)