WA1072 Testing Web Applications This 2-day course details testing best practices and specifically focuses on web application testing. Topics Understand where functional, stress, load and regression testing fits into the development cycle Bug states and Bug tracking systems Web application architecture How web testing is unique Sample test cases Understanding how to prioritize the testing matrix across application features IEEE test plan and test case template Test coverage models UI, functional, database and help testing Installation, configuration, security and load testing Test reporting Discussions of web testing tools
Audience Testers, test engineers, development managers, test managers and project managers who will be designing, managing, and performing the testing of web applications. Prerequisites Some experience with testing software applications. Duration Two days.
WA1072 Testing Web Applications Training and Courseware Course Outline
1. Testing Fundamentals Part I
Objectives Let s walk through a scenario to understand what is involved Basic Tests The common tests you should perform on this build Basic differences between Web and Thick Client Applications The next cycle of functional testing if the previous tests worked Wait for responses from the development group Some best practices A program cannot be completely tested The goal The development team Development Process The Rational Unified Process Inception Phase Testing during this phase Elaboration Phase Example of a Use Case Diagram Construction Phase Software Development Life Cycle with the RUP Testing during coding Testing after integration Performance Testing Regression Test A typical sequence Typical FVT and SVT tests Summary
2. Testing Fundamentals Part II
Objectives What is a bug? Common types of bugs Sample bug report - Simple Sample bug report - complex Best practices in bug reporting Characteristics of a good problem report Typical states that a bug goes through The goals Best Practices Best practices Best Practices Sample bug state chart Summary
3. Web Testing
Objectives Web-based software Java Web Application Architecture (Thin Client) Java Web Application Architecture (Rich Client) Java EE 5 Architecture Web Application Programming Model MVC An Example - The IBM WebSphere Platform Web Applications Browser as a client Bugs may originate from the SW stack Introduction Key Characteristics Instructor Demo RIA Platforms What is AJAX? Ajax Example Yahoo Maps Ajax Example Yahoo Maps Ajax Example Yahoo Maps RIA Architecture RIA Architecture Details RIA Benefits RIA Drawbacks There are many layers involved Many unique issues are encountered in this environment Browsers are platform independent clients Browser variations need to be accounted for Cookies are commonly needed Back button of the browser Refresh button of the browser Bookmarks Client Side validation should be performed Only JavaScript validation though is not enough! More client side validations If your application functionality depends on JavaScript Clicking the submit button multiple times Sudden client exit instead of explicit logoff won't be detected You may have to test a fat client Summary
4. Test Plan and Test Case Design
Objectives The requirements of a system Document one - Use Case Document UC01 Add a new appointment UC01 Add a new appointment UC01 Add a new appointment UC01 Add a new appointment Document 2 - Supplementary specifications Knowing the testing priority The Severity Scale
The priority scale The likelihood scale Priority of Coverage An example The test plan The sections of the IEEE test plan The sections of the IEEE test plan The sections of the IEEE test plan The sections of the IEEE test plan The sections of the IEEE test plan Typical test team activities The four types of tests Beware of test escapes Test Coverage Models Test Coverage Models contd. Test Coverage Models contd. Summary
template template template template template
-
continued continued continued continued
5. Testing Web Applications Part I
Objectives UI testing UI testing - continued Common problems with error messages Common UI Errors Functional Testing Types of testing Types of testing - continued Most web applications are database centric Java Database Connectivity JDBC Architecture Prepared Statements Stored Procedures Transactions Connection Pooling Database Testing the steps Database Testing the steps Database Testing the steps What we are testing? Summary
6. Testing Web Applications Part II
Objectives Things to test Configurations to test What to test? Configuration variations Miscellaneous Topics Types of test run on high priority configurations Types of test run on lower priority configurations Load Throughput
Throughput Curve Saturation The Significance of Throughput Response Time Response Time Curve Response time at system saturation Response time past the buckle point Think Time Performance Acceptance Criteria Test environment is a scaled down version of production Common problems - Symptoms of underutilization What causes underutilization? Common problem - over utilization Summary
7. Common Security Threats
Overview Input Data Validation Data Ownership Validation SQL Injection Problem SQL Injection Solution Malicious File Execution Problem Malicious File Execution Solution Web Authentication Mechanism Insecure Authentication Mechanism Failure to Restrict URL Access Problem Failure to Restrict URL Access Solution Cross Site Scripting (XSS) Problem Cross Site Scripting (XSS) Solution Cross Site Scripting (XSS) Solution Cross Site Request Forgery (CSRF) Problem Cross Site Request Forgery (CSRF) Solution Information Leakage and Improper Error Handling Problem Information Leakage and Improper Error Handling Solution Buffer Overflow Buffer Overflow Example More Buffer Overflows Buffer Overflow Solution Insecure Communications Insecure Cryptographic Storage Problem Insecure Cryptographic Storage Solution Insecure Direct Object Reference Message Replay Attack Problem Message Replay Attack Solution Summary References
8. Test Reporting
Objectives Weekly Reports Weekly Reports - continued
Testing cycle complete report Test Tracking Spreadsheet Tracking test coverage spreadsheet Opened/closed chart Summary
9. Web Application Testing Tools
Objectives Purpose What They Do How They Work Example: Mercury QuickTest Pro Record User Scripts Tech and "Non-Tech" Views Functionality Checks Parameterized Input Data Test Results Purpose What They Do Example: Parasoft Jtest Analyze Code Generate and Execute Tests Expose Potential Errors Expose Memory Leaks Suggest Fixes Retest Modified Code Design by Contract (DbC) Suggest DbC Fixes Enforce Coding Standards Suggest Fixes Purpose What They Do Basic Steps Create User Scripts Define Txns and Measurements Define the Workload Run the Test Analyze the Results Answer the Questions Example: Mercury LoadRunner Record User Scripts What Recording Looks Like Modify the Script Advanced Scripting Simulate Real Users Create the Test Scenario Define the Workload Run the Test Analyze the Results What's the Deal? [with all these Mercury tools] Purpose What They Do
Example: Mercury SiteScope SiteScope's Three Engines Live Demo Live Demo SiteScope Console Purpose Benefits of Test Management Example: Mercury TestDirector Components of TestDirector Requirements Manager Requirements Tree - Illustrated Test Plan Test Plan Tree - Illustrated Test Lab Test Lab - Illustrated Defects Manager Defects Manager - Illustrated Summary
A. Appendix A Architecture
Architecture Tiered Architectures Presentation Layer Middle Tier Model View Controller Extensible Markup Language XML
B. Appendix B - Project Requirements C. Appendix C Miscellaneous Topics
Objectives Waterfall model implications Iterative model implications Doing a ROI model Scheduling Tips Great tester qualities Great tester qualities (cont.) ISO 9000-3 Summary