Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Web Application Software Testing


Published on

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.

Published in: Technology
  • Be the first to comment

Web Application Software Testing

  1. 1. Web Application Testing By Andrew Kandels
  2. 2. Testing PracticesUnit TestingEngineersRegression TestingQuality Assurance, EngineersLoad TestingSystem Administrators, EngineersUsability TestingDesigners, Random Audience, Existing Customers
  3. 3. Testing PracticesFunctional TestingQA, Customer Service, SalesEnvironmental TestingSystem Administrators, EngineersCross Browser TestingEveryoneDevice / Mobile TestingEveryone
  4. 4. Unit TestingTest driven development (TDD) encouragessimple designs and inspires confidence.Tests define:• The expected behavior• What you want to achieve• What your program should do
  5. 5. The Code
  6. 6. The Test
  7. 7. Behavior Modification
  8. 8. BenefitsThere 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
  9. 9. BenefitsWrite tests for failing code.• Problem is replicated and clearly described• Fix is proven by demonstration
  10. 10. Code CoverageDescribes the degree in which a product is tested:
  11. 11. ToolsUnit testing frameworks are available in almost anylanguage:• PHP’s PHPUnit• Java’s JUnit• Ruby’s Test::Unit• iOS / Objective C (native)• Python’s unittest• .NET’s xUnit
  12. 12. Regression TestingAutomated 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
  13. 13. Selenium Open Source • Clicks links • Fills out forms • Scans for content • Runs in-browser • Interacts as a user would • WebDriver Compatible
  14. 14. Selenium in Action
  15. 15. Watir Open Source • Test with Ruby • Multi-browser (WebDriver) • Headless Mode • Connects to Databases • Measure Performance
  16. 16. Watir in Action
  17. 17. Load TestingMeasure 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
  18. 18. wget
  19. 19. Neustar
  20. 20. Usability TestingEvaluate your product using real users to:• Discover errors• Identify areas for improvement• Efficiency• Accuracy• Recall• Emotional Response
  21. 21. Hallway Testing Participants chosen from a random pool. Can be cost prohibitive for smaller companies.
  22. 22. Click Tracking Price: Free ClickHeat is a visual heatmap of clicks on a web page.
  23. 23. Crowd Sourcing Price: Free Submit your ideas, designs, products to an expert community for feedback.
  24. 24. Five Second Test Price: Free Helps you fine tune your landing pages and calls to action by analyzing the most prominent elements of your design.
  25. 25. Cross Browser Testing Free Version (5 minute sessions) • Driven by HTML5 Canvas • Multiple Browser Support • Reverse Proxy Support • Automated Regression Support
  26. 26. Device / Mobile TestingEmulators and simulators are your best bet.Opera mini, blackberry, Android, iPhone, simulate headers, etc.
  27. 27. Lower Environments Free • Rapidly deploy applications • Download or on the cloud • Latest versions
  28. 28. Test / Sample Data
  29. 29. The EndAndrew KandelsWeb: http://andrewkandels.comGitHub: @andrewkandels