Booking options
£88.99
£88.99
On-Demand course
13 hours 30 minutes
All levels
Learn BDD with SpecFlow (based on Gherkin) and Selenium WebDriver with C# alongwith an Intro to UnitTesting and TDD with TestStack.White
SpecFlow is a framework that brings Behavior-Driven Development (BDD) into life. It is all about filling the gap between technical people and domain experts. SpecFlow is based on the Gherkin language. So, non-technical people can write executable documentation on their own. Selenium is a framework that drives browsers (Chrome, Firefox, Opera, and more). In other words, with the power of Selenium, you can write a program that automatically interacts with elements on a web page. TestStack.White (sometimes, written called teststack white) is a framework drives WinForms and WPF applications. This course covers: •Theoretical background behind different types of testing (unit, integration, and acceptance testing)
•SpecFlow: generating steps, running and debugging tests, passing parameters, scenario outlines, data tables, converting parameters, converting data tables, custom conversions, sharing data, categorizing tests, scoped execution, hooks, and other features
•Selenium WebDriver: Locators, XPath locators, CSS locators, interacting with all element types, timeouts (explicit and implicit), locator priorities, picking scenarios to Test, the Page Object design pattern, the Page Object factory, uploading files, and more
•Scraping a live website with Selenium WebDriver
•Selenium Extras: managing a web browser
•TestStack.White and building a WPF app by TDD (with MVVM)
•Appendices: intro to unit testing and test-driven development All the codes and supporting files for this course are available at - https://github.com/PacktPublishing/Automate-Application-with-Specflow-and-Selenium-WebDriver-C-
Build end-to-end tests to grow reliable software
TestStack.White and building a WPF app by TDD (with MVVM)
Appendices: intro to unit testing and Test-Driven Development
Automate WPF applications
This course is for middle-level developers who require a proficiency in C#
A highly practical course that covers all features in a hands-on way and in which we automate a website which is not under our control
Automate websites and write reliable automation code with Selenium * Learn to write business-readable automated tests and maintainable tests with SpecFlow and apply a test-driven approach to grow software * A practical course designed for middle-level developers who require a proficiency in C#
https://github.com/packtpublishing/automate-application-with-specflow-and-selenium-webdriver-c-
Ilya Fofanov began his career as a postgraduate student participating in the Microsoft ImagineCup contest. He's been working with the .NET platform since 2003 and has been professionally architecting and implementing software for nearly 7 years, primarily based on the .NET platform. He is passionate about building rich and powerful applications using modern technologies. Ilya is a Microsoft-certified specialist in Windows Applications and Service Communication Applications and one of the coordinators of the MskDotNet User Group in Moscow.
1. Introduction to Integration and Acceptance Testing
1. Outline Introduction to Integration and Acceptance Testing: Outline |
2. Types of Tests and TDD Introduction to Integration and Acceptance Testing: Types of Tests and TDD |
3. Integration and UI Testing Introduction to Integration and Acceptance Testing: Integration and UI Testing |
4. Are Integration Tests Pure Evil? Introduction to Integration and Acceptance Testing: Are Integration Tests Pure Evil? |
5. Why Write Automated UI-Tests? Introduction to Integration and Acceptance Testing: Why Write Automated UI-Tests? |
6. What is Acceptance Testing? Introduction to Integration and Acceptance Testing: What is Acceptance Testing? |
7. Acceptance and UI-Automation Testing Frameworks Introduction to Integration and Acceptance Testing: Acceptance and UI-Automation Testing Frameworks |
8. Conclusion Introduction to Integration and Acceptance Testing: Conclusion |
2. Introduction to SpecFlow
1. Outline Introduction to SpecFlow: Outline |
2. Why Use SpecFlow Introduction to SpecFlow: Why Use SpecFlow |
3. BDD vs ATDD Introduction to SpecFlow: BDD vs ATDD |
4. SpecFlow Workflow Introduction to SpecFlow: SpecFlow Workflow |
5. Overview of SpecFlow Introduction to SpecFlow: Overview of SpecFlow |
6. Gherkin. Features and Scenarios Introduction to SpecFlow: Gherkin. Features and Scenarios |
7. Basics of SpecFlow Introduction to SpecFlow: Basics of SpecFlow |
8. Two Approaches to Implementation of Acceptance Tests Introduction to SpecFlow: Two Approaches to Implementation of Acceptance Tests |
9. Conclusion Introduction to SpecFlow: Conclusion |
3. SpecFlow in Details
1. Outline SpecFlow in Details: Outline |
2. Generating Steps in Details SpecFlow in Details: Generating Steps in Details |
3. Overview of Example SpecFlow in Details: Overview of Example |
4. Writing the First Test SpecFlow in Details: Writing the First Test |
5. Running and Debugging Tests SpecFlow in Details: Running and Debugging Tests |
6. Adding New Cases SpecFlow in Details: Adding New Cases |
7. Passing Parameters SpecFlow in Details: Passing Parameters |
8. Scenario Outline SpecFlow in Details: Scenario Outline |
9. Passing Data Table SpecFlow in Details: Passing Data Table |
10. Scenario Background SpecFlow in Details: Scenario Background |
11. Converting Parameter Types SpecFlow in Details: Converting Parameter Types |
12. Converting Tables into Plain Data Structures SpecFlow in Details: Converting Tables into Plain Data Structures |
13. Converting Tables into Sets SpecFlow in Details: Converting Tables into Sets |
14. Custom Conversions SpecFlow in Details: Custom Conversions |
15. Sharing Data Between Steps SpecFlow in Details: Sharing Data Between Steps |
16. Categorizing Tests by Tags SpecFlow in Details: Categorizing Tests by Tags |
17. Scoped Execution SpecFlow in Details: Scoped Execution |
18. Scoped Binding and Workflow SpecFlow in Details: Scoped Binding and Workflow |
19. Hooks Overview SpecFlow in Details: Hooks Overview |
20. Applying a Hook SpecFlow in Details: Applying a Hook |
21. Conclusion SpecFlow in Details: Conclusion |
4. Introduction to Selenium
1. Selenium Overview Introduction to Selenium: Selenium Overview |
2. Demo Web Site Introduction to Selenium: Demo Web Site |
3. Writing the First Automation Example Introduction to Selenium: Writing the First Automation Example |
4. Locator Types Introduction to Selenium: Locator Types |
5. XPath Selectors Introduction to Selenium: XPath Selectors |
6. CSS Selectors Introduction to Selenium: CSS Selectors |
7. Input, CheckBox, RadioButton, DropDown Introduction to Selenium: Input, CheckBox, RadioButton, DropDown |
8. Dynamic Nature of Modern Web Sites Introduction to Selenium: Dynamic Nature of Modern Web Sites |
9. Timeouts: Implicit and Explicit Introduction to Selenium: Timeouts: Implicit and Explicit |
10. Locators Priority Introduction to Selenium: Locators Priority |
11. Which Scenario to Test Introduction to Selenium: Which Scenario to Test |
12. SpecFlow and UI-Testing Frameworks Introduction to Selenium: SpecFlow and UI-Testing Frameworks |
13. Conclusion Introduction to Selenium: Conclusion |
5. Selenium: Scraping a Live Web Site
1. Outline Selenium: Scraping a Live Web Site: Outline |
2. Web Site Overview Selenium: Scraping a Live Web Site: Web Site Overview |
3. Setting Up a Project Selenium: Scraping a Live Web Site: Setting Up a Project |
4. Sign-In Page Selenium: Scraping a Live Web Site: Sign-In Page |
5. "Page Object" Design Pattern Selenium: Scraping a Live Web Site: "Page Object" Design Pattern |
6. Enhancing "Page Object" Design Pattern Selenium: Scraping a Live Web Site: Enhancing "Page Object" Design Pattern |
7. Refactoring with "Page Object" Selenium: Scraping a Live Web Site: Refactoring with "Page Object" |
8. Uploading Files - Preparation Selenium: Scraping a Live Web Site: Uploading Files - Preparation |
9. Uploading Files - Coding Selenium: Scraping a Live Web Site: Uploading Files - Coding |
10. Conclusion Selenium: Scraping a Live Web Site: Conclusion |
6. Selenium Extras
1. Outline Selenium Extras: Outline |
2. Writing Tests for Different Browsers Selenium Extras: Writing Tests for Different Browsers |
3. Location and Size Selenium Extras: Location and Size |
4. Opening Tabs and Windows Selenium Extras: Opening Tabs and Windows |
5. Switching and Closing Tabs and Windows Selenium Extras: Switching and Closing Tabs and Windows |
6. Conclusion Selenium Extras: Conclusion |
7. TestStack.White and WPF App by TDD
1. Outline TestStack.White and WPF App by TDD: Outline |
2. Application Overview TestStack.White and WPF App by TDD: Application Overview |
3. TestStack.White Overview TestStack.White and WPF App by TDD: TestStack.White Overview |
4. Writing Acceptance Tests TestStack.White and WPF App by TDD: Writing Acceptance Tests |
5. Building a Bridge to User Interface Applying "Page Object" Design Pattern TestStack.White and WPF App by TDD: Building a Bridge to User Interface Applying "Page Object" Design Pattern |
6. Implementing Acceptance Tests TestStack.White and WPF App by TDD: Implementing Acceptance Tests |
7. Implementing ViewModels using TDD. Part 1 TestStack.White and WPF App by TDD: Implementing ViewModels using TDD. Part 1 |
8. Implementing ViewModels using TDD. Part 2 TestStack.White and WPF App by TDD: Implementing ViewModels using TDD. Part 2 |
9. Conclusion TestStack.White and WPF App by TDD: Conclusion |
8. Appendix A. Introduction to Unit Testing. Getting Started
1. Outline Appendix A. Introduction to Unit Testing. Getting Started: Outline |
2. What is a Unit Test? Appendix A. Introduction to Unit Testing. Getting Started: What is a Unit Test? |
3. Unit-Testing Frameworks Appendix A. Introduction to Unit Testing. Getting Started: Unit-Testing Frameworks |
4. First Unit Test Appendix A. Introduction to Unit Testing. Getting Started: First Unit Test |
5. Naming Conventions Appendix A. Introduction to Unit Testing. Getting Started: Naming Conventions |
6. Running and Debugging Tests in Visual Studio Appendix A. Introduction to Unit Testing. Getting Started: Running and Debugging Tests in Visual Studio |
7. Benefits of Unit Testing Appendix A. Introduction to Unit Testing. Getting Started: Benefits of Unit Testing |
8. Who should write Unit Tests and When? Appendix A. Introduction to Unit Testing. Getting Started: Who should write Unit Tests and When? |
9. Programmer's Oath Appendix A. Introduction to Unit Testing. Getting Started: Programmer's Oath |
10. Exercise: Stack Appendix A. Introduction to Unit Testing. Getting Started: Exercise: Stack |
11. Solution: Stack Appendix A. Introduction to Unit Testing. Getting Started: Solution: Stack |
12. Conclusion Appendix A. Introduction to Unit Testing. Getting Started: Conclusion |
9. Appendix A. Introduction to Unit Testing. NUnit Framework
1. Outline Appendix A. Introduction to Unit Testing. NUnit Framework: Outline |
2. Assert. Introduction Appendix A. Introduction to Unit Testing. NUnit Framework: Assert. Introduction |
3. Assert. Demo Appendix A. Introduction to Unit Testing. NUnit Framework: Assert. Demo |
4. Arrange-Act-Assert Appendix A. Introduction to Unit Testing. NUnit Framework: Arrange-Act-Assert |
5. Running a Test from the Console Appendix A. Introduction to Unit Testing. NUnit Framework: Running a Test from the Console |
6. SetUp and TearDown Appendix A. Introduction to Unit Testing. NUnit Framework: SetUp and TearDown |
7. SetUp and TearDown on Higher Levels Appendix A. Introduction to Unit Testing. NUnit Framework: SetUp and TearDown on Higher Levels |
8. Parameterized Tests Appendix A. Introduction to Unit Testing. NUnit Framework: Parameterized Tests |
9. Grouping and Ignoring Appendix A. Introduction to Unit Testing. NUnit Framework: Grouping and Ignoring |
10. Code Coverage Appendix A. Introduction to Unit Testing. NUnit Framework: Code Coverage |
11. Exercise: FizzBuzz Appendix A. Introduction to Unit Testing. NUnit Framework: Exercise: FizzBuzz |
12. Solution: FizzBuzz Appendix A. Introduction to Unit Testing. NUnit Framework: Solution: FizzBuzz |
13. Exercise: Roman Numerals Appendix A. Introduction to Unit Testing. NUnit Framework: Exercise: Roman Numerals |
14. Solution: Roman Numerals Appendix A. Introduction to Unit Testing. NUnit Framework: Solution: Roman Numerals |
15. Conclusion Appendix A. Introduction to Unit Testing. NUnit Framework: Conclusion |
10. Appendix B. Introduction to TDD. Part 1
1. Outline Appendix B. Introduction to TDD. Part 1: Outline |
2. Why we need TDD? Appendix B. Introduction to TDD. Part 1: Why we need TDD? |
3. What is TDD? Appendix B. Introduction to TDD. Part 1: What is TDD? |
4. Red / Green / Refactor Appendix B. Introduction to TDD. Part 1: Red / Green / Refactor |
5. Three Laws of TDD Appendix B. Introduction to TDD. Part 1: Three Laws of TDD |
6. Changing Requirements and the Safety Net Appendix B. Introduction to TDD. Part 1: Changing Requirements and the Safety Net |
7. F.I.R.S.T. Appendix B. Introduction to TDD. Part 1: F.I.R.S.T. |
8. Testing Frameworks and Tools Appendix B. Introduction to TDD. Part 1: Testing Frameworks and Tools |
9. When TDD Fails? Appendix B. Introduction to TDD. Part 1: When TDD Fails? |
10. Conclusion Appendix B. Introduction to TDD. Part 1: Conclusion |
11. Appendix B. Introduction to TDD. Part 2
1. Outline Appendix B. Introduction to TDD. Part 2: Outline |
2. Regular Agile Process in 200 Words Appendix B. Introduction to TDD. Part 2: Regular Agile Process in 200 Words |
3. VS and R# Shortcuts Appendix B. Introduction to TDD. Part 2: VS and R# Shortcuts |
4. Fibonacci Numbers Appendix B. Introduction to TDD. Part 2: Fibonacci Numbers |
5. Three Main TDD Techniques Appendix B. Introduction to TDD. Part 2: Three Main TDD Techniques |
6. Grabbing the Gold Appendix B. Introduction to TDD. Part 2: Grabbing the Gold |
7. FizzBuzz Appendix B. Introduction to TDD. Part 2: FizzBuzz |
8. Reading Roman Numerals Appendix B. Introduction to TDD. Part 2: Reading Roman Numerals |
9. UpdateableSpin Appendix B. Introduction to TDD. Part 2: UpdateableSpin |
10. Continuous Testing Appendix B. Introduction to TDD. Part 2: Continuous Testing |
11. Tic-Tac-Toe (Crosses and Noughts) Appendix B. Introduction to TDD. Part 2: Tic-Tac-Toe (Crosses and Noughts) |
12. Assert First Appendix B. Introduction to TDD. Part 2: Assert First |
13. Demo - Sticks Appendix B. Introduction to TDD. Part 2: Demo - Sticks |
14. Conclusion Appendix B. Introduction to TDD. Part 2: Conclusion |