Web Application Testing




                          By Andrew Kandels
Testing Practices
Unit Testing
Engineers
Regression Testing
Quality Assurance, Engineers
Load Testing
System Administrators, Engineers
Usability Testing
Designers, Random Audience, Existing Customers
Testing Practices
Functional Testing
QA, Customer Service, Sales
Environmental Testing
System Administrators, Engineers
Cross Browser Testing
Everyone
Device / Mobile Testing
Everyone
Unit Testing
Test driven development (TDD) encourages
simple designs and inspires confidence.

Tests define:

• The expected behavior
• What you want to achieve
• What your program should do
The Code
The Test
Behavior Modification
Benefits

There are numerous advantages:
• You have an execution environment for running
  your code
• You have a place to document business rules
• Dramatically simplifies refactoring
• Forces you to write smaller, less complex functions
  and methods
Benefits

Write tests for failing code.
• Problem is replicated and clearly described
• Fix is proven by demonstration
Code Coverage
Describes the degree in which a product is tested:
Tools
Unit testing frameworks are available in almost any
language:

• PHP’s PHPUnit
• Java’s JUnit
• Ruby’s Test::Unit
• iOS / Objective C (native)
• Python’s unittest
• .NET’s xUnit
Regression Testing
Automated scripts or playback of recordings.

• Verify changes don’t introduce unexpected faults

• Monitor performance changes

• Checks correctness of the program and its output

• Interacts with the program as a user would
Selenium
           seleniumhq.org

           Open Source
           • Clicks links
           • Fills out forms
           • Scans for content
           • Runs in-browser
           • Interacts as a user would
           • WebDriver Compatible
Selenium in Action
Watir

        watir.com
        Open Source
        • Test with Ruby
        • Multi-browser (WebDriver)
        • Headless Mode
        • Connects to Databases
        • Measure Performance
Watir in Action
Load Testing

Measure response times after simulating real traffic.

• Ensure changes don’t impact performance
• Determine hardware/network requirements
• Expose bugs (race conditions)
• Simulate customer behavior at scale
wget
Neustar
Usability Testing

Evaluate your product using real users to:

• Discover errors
• Identify areas for improvement
• Efficiency
• Accuracy
• Recall
• Emotional Response
Hallway Testing
                  Participants chosen
                  from a random pool.

                  Can be cost prohibitive
                  for smaller companies.
Click Tracking
                 labsmedia.com

                 Price: Free

                 ClickHeat is a visual
                 heatmap of clicks on a
                 web page.
Crowd Sourcing
                 conceptfeedback.com

                 Price: Free

                 Submit your ideas,
                 designs, products to an
                 expert community for
                 feedback.
Five Second Test
                   fivesecondtest.com

                   Price: Free

                   Helps you fine tune
                   your landing pages and
                   calls to action by
                   analyzing the most
                   prominent elements of
                   your design.
Cross Browser Testing
                  browserling.com
                  Free Version (5 minute sessions)

                  • Driven by HTML5 Canvas

                  • Multiple Browser Support

                  • Reverse Proxy Support

                  • Automated Regression Support
Device / Mobile Testing
Emulators and simulators are your best bet.




Opera mini, blackberry, Android, iPhone, simulate headers, etc.
Lower Environments

                turnkeylinux.org

                Free
                • Rapidly deploy applications

                • Download or on the cloud

                • Latest versions
Test / Sample Data
The End

Andrew Kandels
Web: http://andrewkandels.com

GitHub: https://github.com/akandels

Twitter: @andrewkandels

Web Application Software Testing

  • 1.
    Web Application Testing By Andrew Kandels
  • 2.
    Testing Practices Unit Testing Engineers RegressionTesting Quality Assurance, Engineers Load Testing System Administrators, Engineers Usability Testing Designers, Random Audience, Existing Customers
  • 3.
    Testing Practices Functional Testing QA,Customer Service, Sales Environmental Testing System Administrators, Engineers Cross Browser Testing Everyone Device / Mobile Testing Everyone
  • 4.
    Unit Testing Test drivendevelopment (TDD) encourages simple designs and inspires confidence. Tests define: • The expected behavior • What you want to achieve • What your program should do
  • 5.
  • 6.
  • 7.
  • 8.
    Benefits There are numerousadvantages: • You have an execution environment for running your code • You have a place to document business rules • Dramatically simplifies refactoring • Forces you to write smaller, less complex functions and methods
  • 9.
    Benefits Write tests forfailing code. • Problem is replicated and clearly described • Fix is proven by demonstration
  • 10.
    Code Coverage Describes thedegree in which a product is tested:
  • 11.
    Tools Unit testing frameworksare available in almost any language: • PHP’s PHPUnit • Java’s JUnit • Ruby’s Test::Unit • iOS / Objective C (native) • Python’s unittest • .NET’s xUnit
  • 12.
    Regression Testing Automated scriptsor playback of recordings. • Verify changes don’t introduce unexpected faults • Monitor performance changes • Checks correctness of the program and its output • Interacts with the program as a user would
  • 13.
    Selenium seleniumhq.org Open Source • Clicks links • Fills out forms • Scans for content • Runs in-browser • Interacts as a user would • WebDriver Compatible
  • 14.
  • 15.
    Watir watir.com Open Source • Test with Ruby • Multi-browser (WebDriver) • Headless Mode • Connects to Databases • Measure Performance
  • 16.
  • 17.
    Load Testing Measure responsetimes after simulating real traffic. • Ensure changes don’t impact performance • Determine hardware/network requirements • Expose bugs (race conditions) • Simulate customer behavior at scale
  • 18.
  • 19.
  • 20.
    Usability Testing Evaluate yourproduct using real users to: • Discover errors • Identify areas for improvement • Efficiency • Accuracy • Recall • Emotional Response
  • 21.
    Hallway Testing Participants chosen from a random pool. Can be cost prohibitive for smaller companies.
  • 22.
    Click Tracking labsmedia.com Price: Free ClickHeat is a visual heatmap of clicks on a web page.
  • 23.
    Crowd Sourcing conceptfeedback.com Price: Free Submit your ideas, designs, products to an expert community for feedback.
  • 24.
    Five Second Test fivesecondtest.com Price: Free Helps you fine tune your landing pages and calls to action by analyzing the most prominent elements of your design.
  • 25.
    Cross Browser Testing browserling.com Free Version (5 minute sessions) • Driven by HTML5 Canvas • Multiple Browser Support • Reverse Proxy Support • Automated Regression Support
  • 26.
    Device / MobileTesting Emulators and simulators are your best bet. Opera mini, blackberry, Android, iPhone, simulate headers, etc.
  • 27.
    Lower Environments turnkeylinux.org Free • Rapidly deploy applications • Download or on the cloud • Latest versions
  • 28.
  • 29.
    The End Andrew Kandels Web:http://andrewkandels.com GitHub: https://github.com/akandels Twitter: @andrewkandels