Web Applications Testing, Comprehensive

The proliferation of Web-based applications presents challenges for testing and quality. Distributed software architecture, diverse and dynamic execution environments (OSes, browsers, networks, run-time code generation), multiple programming languages or models, and a large user base all make Web testing more complex. Even non-Web-based apps today typically use Web services behind the scene, ranging from simple software updates to a “desktop shell” that hosts Web applications. These apps also require Web testing. This course provides the essential knowledge and skills needed to test Web apps and services. It covers Web testing from end to end but with more focus on the client-side testing.

The course begins with an introduction to Web architecture and the basic protocols for Web services. Using an example of a feature in a large Web application, you will learn to develop a test plan and test cases that can be executed automatically. The course covers three aspects of Web testing: UI, Web services, and load/performance. The Selenium tool is used to interact with browsers and to automate UI testing. The concepts of hermetic versus deterministic testing will be explained. You will learn to use Selenium design patterns to manage large numbers of automated tests. The course covers the use of Java or JavaScript in WebDriver tests and how to perform unit level, functional and behavioral tests as well as test coverage, with common testing tools used in the trade. The course also covers setting up test environments, using open source tools for testing the performance of Web applications.

The course employs open source tools to practice the various aspects of Web testing. Students are required to bring laptops to class and install tools on their own computers. Java programming experience is strongly recommended. JavaScript knowledge is also recommended and Python can be used as an option. Students should also understand basic testing terminologies, as they will not be reviewed in this course. The techniques learned in class can be useful for Web interface automation even though this is not the focus of the course.

Topics Include:

  • Introduction to Web protocols and testing
  • Test planning
  • Test automation with Selenium
  • Selenium design patterns
  • Testing JavaScript - unit, functional, behavioral
  • Test coverage
  • Testing Web services
  • Web performance measurements

Prerequisites :

Offering code Offering title
CMPR.X412 Java Programming for Beginners
CMPR.X415 Python Programming for Beginners
IPDV.X404 Introduction to Web Programming: JavaScript and PHP