Course Description
Welcome to the cutting-edge world of Automated Software Testing! This advanced-level course, the second in a two-part series, is designed to revolutionize your approach to software testing. Gone are the days when testing was viewed as a tedious, time-consuming task. In this course, we'll show you how automated testing can be an exciting, efficient, and crucial component of software development that will elevate your skills as a developer or QA engineer.
Building upon the foundation laid in the first course, we'll dive deeper into sophisticated testing tools and techniques. You'll explore state-based and web testing, combinatorial testing, mutation testing, and property-based testing. Our hands-on approach ensures that you'll not only understand these concepts theoretically but also apply them practically to various programs.
By the end of this course, you'll be equipped with the knowledge to select the most appropriate testing strategies for different projects, making you an invaluable asset in any software development team. Get ready to transform your perception of testing and become a five-star software professional!
Syllabus
Topic 1: Model-based testing and decision tables
- Creating decision tables for complex software decisions
- Applying various coverage criteria to generate test cases
Topic 2: Model-Based testing and state machines
- Devising state machines to represent software systems
- Generating test cases using different coverage criteria for path testing
Topic 3: Self-testing
- Understanding and designing pre-conditions, post-conditions, and invariants
- Implementing "inside out" testing using software contracts
- Writing properties for property-based testing frameworks
Topic 4: Mutation testing
- Comprehending the fundamental concepts of mutation testing
- Applying mutation testing to identify undertested software components