web application software testing

29
By Andrew Kandels Web Application Testing

Upload: andrew-kandels

Post on 22-Apr-2015

3.121 views

Category:

Technology


2 download

DESCRIPTION

Building websites like applications means bringing more attention to testing. From unit tests early on to load and regression testing later in the game, the primary purpose of testing is to detect software failures so that defects are discovered and corrected before they make it to the customer. Depending on your size, different testing strategies and things like automation may or may not be necessary. I'll cover some great free tools, some simple command line scripts as well as some commercial choices for the various types of testing.

TRANSCRIPT

Page 1: Web Application Software Testing

By Andrew Kandels

Web Application Testing

Page 2: Web Application Software Testing

Testing Practices

Unit TestingEngineers

Regression TestingQuality Assurance, Engineers

Load TestingSystem Administrators, Engineers

Usability TestingDesigners, Random Audience, Existing Customers

Page 3: Web Application Software Testing

Testing Practices

Functional TestingQA, Customer Service, SalesEnvironmental TestingSystem Administrators, Engineers

Cross Browser TestingEveryone

Device / Mobile TestingEveryone

Page 4: Web Application Software Testing

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

Page 5: Web Application Software Testing

The Code

Page 6: Web Application Software Testing

The Test

Page 7: Web Application Software Testing

Behavior Modification

Page 8: Web Application Software Testing

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

Page 9: Web Application Software Testing

Benefits

Write tests for failing code.• Problem is replicated and clearly described

• Fix is proven by demonstration

Page 10: Web Application Software Testing

Code Coverage

Describes the degree in which a product is tested:

Page 11: Web Application Software Testing

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

Page 12: Web Application Software Testing

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

Page 13: Web Application Software Testing

Selenium

seleniumhq.org

Open Source

• Clicks links

• Fills out forms

• Scans for content

• Runs in-browser

• Interacts as a user would

• WebDriver Compatible

Page 14: Web Application Software Testing

Selenium in Action

Page 15: Web Application Software Testing

Watir

watir.com

Open Source

• Test with Ruby

• Multi-browser (WebDriver)

• Headless Mode

• Connects to Databases

• Measure Performance

Page 16: Web Application Software Testing

Watir in Action

Page 17: Web Application Software Testing

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

Page 18: Web Application Software Testing

wget

Page 19: Web Application Software Testing

Neustar

Page 20: Web Application Software Testing

Usability Testing

Evaluate your product using real users to:

• Discover errors

• Identify areas for improvement

• Efficiency

• Accuracy

• Recall

• Emotional Response

Page 21: Web Application Software Testing

Hallway Testing

Participants chosen from a random pool.

Can be cost prohibitive for smaller companies.

Page 22: Web Application Software Testing

Click Tracking

labsmedia.com

Price: Free

ClickHeat is a visual heatmap of clicks on a web page.

Page 23: Web Application Software Testing

Crowd Sourcing

conceptfeedback.com

Price: Free

Submit your ideas, designs, products to an expert community for feedback.

Page 24: Web Application Software Testing

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.

Page 25: Web Application Software Testing

Cross Browser Testing

browserling.com

Free Version (5 minute sessions)

• Driven by HTML5 Canvas

• Multiple Browser Support

• Reverse Proxy Support

• Automated Regression Support

Page 26: Web Application Software Testing

Device / Mobile Testing

Emulators and simulators are your best bet.

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

Page 27: Web Application Software Testing

Lower Environments

turnkeylinux.org

Free• Rapidly deploy applications

• Download or on the cloud

• Latest versions

Page 28: Web Application Software Testing

Test / Sample Data

Page 29: Web Application Software Testing

The End

Andrew KandelsWeb: http://andrewkandels.com

GitHub: https://github.com/akandels

Twitter: @andrewkandels