Server-Side Scripting/Testing

This lesson introduces software testing, web testing, and using automated tools to test server-side scripts.

Objectives and Skills
Objectives and skills for this lesson include:
 * Understand software testing concepts
 * Understand web testing concepts
 * Use a software tool to test server-side scripts

Readings

 * 1)  Software testing
 * 2)  Web testing
 * 3)  Selenium (software)

Multimedia

 * 1) YouTube: Python Selenium Tutorial #1
 * 2) YouTube: Python Selenium Tutorial #2
 * 3) YouTube: Automation Testing With Selenium and Node.JS

Activities
Complete the following activities using an existing server-side scripting application or website.
 * 1) Review Selenium (software). Complete one or more of the Selenium IDE tutorials.
 * 2) Use Selenium IDE to record user interface tests for each server-side script page created for this course.
 * 3) Use Selenium IDE to record user interface tests for a web project of your choosing.

Lesson Summary

 * There are two main types of automated testing. Functional testing verifies the business application of a software solution. Non-functional testing confirms additional requirements of the software, including performance, security, and storage efficiency. Different types of tests exist to perform these main testing requirements, such as smoke tests, integration tests, regression tests, security, performance, and acceptance tests.


 * Selenium IDE is a complete integrated development environment (IDE) for Selenium tests. It is implemented as a Firefox Add-On and Chrome Extension. It allows for recording, editing and debugging of functional tests.


 * Using automated testing tools like Selenium IDE can assist with visually testing responsive web apps by running combinations of browsers, emulated devices, and viewport sizes to check against a visual grid.


 * In addition to functionality testing, Visual AI automated testing finds significant visual differences between versions of an application, as opposed to pixel-based comparisons, allowing developers to focus on customer noticeable issues.

Key Terms

 * API driven testing
 * A testing framework that uses a programming interface to the application to validate the behaviour under test. Typically API driven testing bypasses application user interface altogether.


 * bottleneck
 * The capacity to which an applications individual component slows down the whole application


 * graphical user interface testing
 * A testing framework that generates user interface events such as keystrokes and mouse clicks, and observes the changes that result in the user interface, to validate that the observable behavior of the program is correct.


 * integration testing


 * unit testing
 * A method that instantiates a small portion of an application and verifies its behavior independently from other parts.


 * Web Application Performance Tool (WAPT)
 * Conducts tests for browser compatibility, operating system compatibility, and performance metrics.