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 template
  • The sections of the IEEE test plan template - continued
  • The sections of the IEEE test plan template - continued
  • The sections of the IEEE test plan template - continued
  • The sections of the IEEE test plan template - continued
  • 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
 

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