web application software testing
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
By Andrew Kandels
Web Application Testing
Testing Practices
Unit TestingEngineers
Regression TestingQuality Assurance, Engineers
Load TestingSystem Administrators, Engineers
Usability TestingDesigners, Random Audience, Existing Customers
Testing Practices
Functional TestingQA, Customer Service, SalesEnvironmental TestingSystem Administrators, Engineers
Cross Browser TestingEveryone
Device / Mobile TestingEveryone
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 KandelsWeb: http://andrewkandels.com
GitHub: https://github.com/akandels
Twitter: @andrewkandels