An Accessibility Validation and Repair Plug-in Tool for Java Based Performance Tools based on Jython Christopher Boyd SE690 Research Seminar Fall 2004 Web-Application Testing Overview The increase of Web applications increases the importance of Quality Assurance. The complexity of the technologies involved in Web-Applications involves great challenges in the testing of Web-Applications. The need for automated testing tools are essential. Defining Testing Methodologies Load/Stress Testing - testing an application with multiple users to evaluate the applications response time. Functional Testing- Testing the functional aspects of the application according to the software requirements. Unit-Testing- Testing particular code modules individually to assure performance. Regression Testing- re-testing after modifications have been made. Security Testing-testing how well the system protects against unauthorized access attempts. Defining Testing Methodologies Continued Here I have mentioned just a few testing procedures. There are several other types of testing. For more information on Software Testing please visit the following: www.softwareqatest.com/qatfaq1.html Performance Tools Apache JMeter - A 100% pure Java desktop application designed to load test functional behavior and measure performance. Originally designed for testing Web Applications but has since expanded to other test functions; may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). Can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types; can make a graphical analysis of performance or test server/script/object behavior under heavy concurrent load. Performance Tools Continued Embarcadero Extreme Test- Performance test tool from Embarcadero Technologies. Capabilities include capture/playback/scripting and test probes/agents that work with a wide variety of applications. Load can be generated against HTTP and JDBC, allowing testing of Web sites, Web-based applications, and relational database systems. Project OpenLoad- Open source load testing tool from SourceForge.net/Open Source Development Network, distributed under GNU General Public License (GPL). Command-line tool; runs on Linux and Win32 systems. Performance Tools Continued Avalanche- Load testing hardware + software appliance from Spirent Communications. Includes scenario recorder and integrates with Mercury's Loadrunner for more sophisticated user scripts. Supports all major protocols, SSL, forms, dynamic URL's, unique IP addresses, cookies, session ID's and more. Can simulate distributed DOS attacks, concurrent media streams, large numbers of realistic e-mail users, configurable link speed emulation and packet loss rates, HTTP aborts, and more. Performance Tools Continued TestMaker- Free open source utility maintained by PushToTest.com and Frank Cohen, for performance, scalability, and functional testing of Web application. A framework and utility to build and run intelligent test agents that implement user behaviors and drive the system as users would. Features an XML-based scripting language and library of test objects to create test agents. Includes capability to check and monitor email systems using SMTP, POP3, IMAP protocols. Java-based tool - runs on any platform. Performance Tools Continued jblitz- Affordable load testing tool from Clan Productions aimed at small web site developers. Each part of a site's functionality can be tested apart or together with up to 500 threads to simulate many users. Can request anything normally addressable through browser, including regular web pages, ASP scripts, JSP scripts, Servlets, CGI scripts etc. Performance Tools Continued Several other testing tools exist that have features applicable to one’s testing needs. For additional information concerning these and other Web Testing Tools please visit: http://www.webtestingtools.com Testing Tool Limitations What are the deficiencies of the previous mentioned tools? Answer While the previously mentioned are great as far as several Web-Site performance tools, they fail to include accessibility compliance testing for visually impaired, or unsited users! Visually Impaired Internet Users People with disabilities access the internet differently than sighted users. Many use text to speech translators to retrieve the information presented on Web-Sites. Without conforming to Accessibility standards this information is often non-accessible. This could potentially reduce popularity or profit for your organization. The Law and Accessibility Website accessibility is more than just good practice. For many organizations, it’s the law. Governments worldwide have mandated that their federal agencies have accessible websites, and private firms should pay attention. A few have found themselves the target of lawsuits under the Americans with Disability Act alleging their sites denied access to people with disabilities1 The Law and Accessibility Continued W3C’s Web Content Accessibility Guidelines (WCAG) www.w3c.gov US Government section 508 www.usgov.508 UK’s Disability Act www.ukd.uk Accessibility Validation Tools Bobby - an automated accessibility checker: www.cast.org/bobby A-Prompt - An evaluation and repair tool: http://aprompt.snow.utoronto.ca W3C’s HTML Validation Service: http://validator.w3.org The WAVE helps sighted developers see ALT text and the order in which talking browsers and screen reader receive input http://www.temple.edu/inst-disabilities/piat/wave/ The Problem Many developers of Web-Applications are unaware of accessibility. Web-Testing tools often omit this feature. Companies that encourage web-testing often have to use a combination of tools. No single tools seems to be a resolve. A Proposed Solution Since it is imperative to test functionality, load performance, scalability, as well as accessibility, then an accessibility feature added to a tool that test other aspects as previously mentioned would reduce the tools needed to meet all testing features. My goal is to add an accessibility feature to an existing tool that checks for overall accessibility compliance standards. My Approach Html Syntax tag extraction- The web pages will be parsed for certain tags then checked for accessibility compliance standards such as alternate text for images, table headers, etc. Based on the outcome of parsing, the users will be prompted for compliance concerns. The software tester should not have to be directly knowledgeable with compliance definitions, an intelligent tool should step the individual through the process with input dialog and tool-tip example correction descriptions. This will also aid in turn around time for adherence to accessibility standards My Approach Continued What is Jython ? To answer this question I must first a brief explanation of Python. Python is a high-level object-oriented programming language written in C. Do to the popularity of Java developed by Sun Microsystems. The need for a Java implementation of Python emerged. The result was the birth of Jython. More information can be found at www.jython.org My Approach Continued Jython ( Based on Python) is a scripting language that allows test scripts to be written in Java or Python to develop what are known as test agents. This conjunction of programming languages becomes a powerful asset to developers comfortable with the aspects of Java that need to develop scripts. Estimated Project Time Line Initial SE 690 Presentation: Nov 12th, 2004 Final SE690 Presentation Jan 14th, 2005 Initial SE696 Presentation April 8th, 2005 Final SE696 Presentation/Demo June 04th, 2005 Project Limitations This is a Java based plug-in that will not be compatible with tools that are not implemented in Java utilizing Swing’s Jmenu. You may still have to run the application through a screen reader to see the overall performance. References 1. “Maximum Accessibility Making Your Web Site More Usable for Everyone”, by John M. Slatin and Sharron Rush. 2. “Building Accessible WebSites”, by Joe Clark. 3. “Java Testing and Design From Unit Testing to Automated Web Test” by Frank Cohen. 4. “E-Business & e-Commerce How To Program”, by Deitel, Deitel & Nieto. Questions ?