Ten Tips of Web App Testing How to Test and Launch a World-Class Application
Total Page:16
File Type:pdf, Size:1020Kb
Ten Tips of Web App Testing How to test and launch a world-class application White Paper June 2011 White Paper: Web App Testing White Paper Web App Testing How to test and launch a world-class application Table of Contents • Introduction………………………………………….. 3 - New Challenges, Old Solutions…………..……… 3 - The Crowdsourcing Advantage………………….. 4 - Testing Types……………………………..……….. 4 • 10 Tips of Web App Testing………………………. 6 “Why is there never time 1. Don’t Be a Slave to Your Metrics………….. 6 2. Know Thy Third Party Apps……..…………. 7 to do it right, but always 3. The Testing Manager’s Dilemma………….. 7 time to do it over?” 4. Invest in Testers, Then Tools……………….. 8 5. Protect Users, Save Yourself……………….. 8 6. Multimedia, Multi-Problems….……………… 9 - Colonel Mike Mullane 7. Forfeit the Blame Game……………………… 9 Retired NASA Astronaut 8. Be Everywhere……………………………….. 10 9. Plugins: Proceed With Caution…………….. 10 10. Cross-Browser Testing……….……………… 10 • About uTest………………………………………….. 12 2 White Paper: Web App Testing Introduction New Challenges, Old Solutions for Testing Your Web Application Establishing procedure amidst a constant state of change may seem like an absurdity (and a losing battle), but this is what today’s software companies face when it comes to testing their web applications. Aside from an expanding matrix of new browsers, plugins, third party apps, programming languages and more, there are now thousands, if not millions, of new users from all around the globe. Of course, none of this was in the manual! “Complexity kills. It sucks the life out Thus, the purpose of this whitepaper is of developers, it makes products twofold. While our ‘10 Tips’ section will difficult to plan, build and test, it help you stay on top on of the latest introduces security challenges, and it trends in web app testing, our introduction will outline the basics of causes end-user and administrator functional, usability and load testing for frustration.” web-based applications. Along the - Ray Ozzie way, we’ll cover topics such as: Chief Software Architect, Microsoft Third Party Apps: Your product is only part of the equation - what about the satellite apps that are orbiting your web application? Cloud Computing: With opportunity comes risk. There’s a ton of upside to cloud computing, but what happens to your web app when it fails to functional properly? Multimedia: How will your web app perform for users with different versions of Flash, Acrobat, Java, etc.? Have you thought about HTML5 and the challenges of managing H.264 vs. Theora? Plugins: While the use of plugins may be slowing, the use of extensions are not. Learn why plugins and their extensions should be a testing focal point. Localization: Obviously, your application needs to work where your users reside. Discover why most software companies underestimate the importance of localization in their web testing. Deadlines: Your web application will never be perfect, so how will you know when it’s safe to launch? It’s called the “Testing Managers Dilemma” and we’ll show you how to deal with it. Metrics: As one testing expert put it, “When your car is about to go off a cliff, it’s a weird time to be thinking about gas mileage and drag coefficients.” Find out how metrics can mislead. 3 White Paper: Web App Testing The Crowdsourcing Advantage While the following material is suited for companies that rely on traditional staffing models for testing (i.e. internal QA teams or offshoring firms), this whitepaper will be especially useful for those who leverage some aspect of crowdsourced (or community- based) testing. To learn more about the growing trend of crowdsourcing - and how companies of all sizes can use it to complement their in-house efforts – check out the 8 Essentials of Crowdsourcing whitepaper. Web Applications: Testing Types “For a successful technology, Functional Testing reality must take precedence No surprises here. The most frequent and critical over public relations, for nature task that QA takes on before launch is to perform cannot be fooled comprehensive functional testing. This can .” include - but is not limited to - testing of: - Richard Feynman Renowned Scientist Web Forms: This includes sign-up, sign- in, contact and purchase forms; database queries, checking for cross-site scripting/AJAX vulnerabilities and other issues related to incorrect inputs. Links: Ensuring that all outgoing and internal links are functional and accurate. GUI: Despite back-end test automation, front end problems with web applications are almost always discovered by human testers, including issues related to browser compatibility or CSS flaws. Language: Does your web app properly support Unicode? Can it accept and handle foreign characters? This is a growing concern for developers and should be considered as an essential part of your testing efforts. Security: Security testing – including checks for open redirects, cookie tampering, SQL injections and other vulnerabilities that could harm your users (and reputation) – should also be performed prior to launch. Bottom line: Does your web application work when, where and how your users need it to work? Usability Testing Beta testing may be suitable for some large companies (mainly those with name recognition) who want to solicit user feedback, but it is NOT an effective substitute for usability testing, which should include professional analysis of: Graphics: Have you identified and addressed the major GUI bugs in your web app? Are the color schemes easy to understand (in every country of your user 4 White Paper: Web App Testing base)? Many of these flaws will not be reported by beta users, but they should be known about and fixed before launch. Feature Set: This can include the intuitiveness of shopping lists, online checkouts and other e-commerce actions; the accuracy of search results, data entry, sign-up forms and other features. Accessibility: Is your application accessible for all users, including the visually impaired? Does your app involve parental or administrator restrictions? Be aware of your legal obligations. Benchmarking: How does your web application stand up to that of your closest competitors? What about your own previous versions? What areas does it compare favorably or unfavorably? Overall Usability: Beta testers - if they report bugs at all - are likely to respond with “this-site-sucks” or “this-site-is-great” type of analysis. When launching a web application, professional, non-biased analysis is essential. Bottom line: Is your web application intuitive and highly usable for your target audience? Load Testing “The real value of tests is not How will your web application hold up when it that they detect bugs in the code, needs to most? Synthetic load tools are helpful in simulating these types of scenarios, but with the but that they detect inadequacies assistance of real testers, you can obtain a in the methods, concentration complete picture of how your application and skill of those who design and performs under stress. produce the code.” Load testing should, at the very least, involve one of the following methods: - Tony Hoare Testing Expert Live Load Testing: A team of live testers (preferably from where your users reside – whether it be North America or a global audience) will test your application simultaneously, enabling you to see how your app performs under real-world, non-simulated load. This process, as its name would indicate, requires NO automated tools. Ideal for web apps that contain Flash, streaming video or other types of multimedia that are difficult to evaluate with simulated load. Simulated Load Testing: Using the simulated load testing tool of your choice (more on this below) you can obtain a realistic snapshot of your web application's performance under peak synthetic usage. Hybrid Load Testing: A combination of the aforementioned methods, this process involves having live testers perform functional testing on your web application while under automated load. This lets you see bugs or performance issues that only show themselves under peak loads. 5 White Paper: Web App Testing Bottom line: Will your web application perform as expected under maximum pressure? Will it crash? Will the performance degrade? Web Testing Checklist: A Summary Regardless of whether you are performing functional, usability or load testing, it is imperative that each of these practices achieve maximum testing coverage that matches your user base across: Location: If you have a global user base, why would you only “When your car is about to go off a cliff, test your web application in your it’s a weird time to be thinking about office? It’s therefore critical to gas mileage and drag coefficients; extend your testing coverage better to take the right control action— beyond your borders if needed. look out the window and steer or use Language: If your application is available in multiple languages, the brake until you’re back on course.” you must verify that nothing is lost in translation (like the - Michael Bolton intuitiveness of your content, CEO, DevelopSense error messages and core features). Operating Systems: Your app needs to work seamlessly across all the different flavors and versions of Windows, Mac and Linux. Browsers: The days of Internet Explorer hegemony are over. Today’s web applications must be tested thoroughly against multiple versions of IE, Firefox, Chrome, Safari and others. And now, the Ten Tips of Web Testing…. The 10 Tips of Web Testing 1. Don’t Be a Slave to Your Metrics When testing a web application, it’s easy to become overwhelmed by the data that’s available to you. It can drag you in all sorts of directions and distract you from more important matters – if you allow it to. Don’t. Said testing expert Michael Bolton of DevelopSense: “Some people enslave numbers. They make numbers work too hard, and too often. I’ve seen organizations collect piles of data about defect escape ratios and defect detection percentages.