For rich web client applications Jeff Hemminger Object Partners, Inc.

Slides:



Advertisements
Similar presentations
Behzad Samin 0 An End-to-End Overview of a RESTful Web Service.
Advertisements

Timetracker Midterm Update Senior Project II Sarah Mercier.
1/7 ITApplications XML Module Session 8: Introduction to Programming with XML.
Selenium Tutorial. What is Selenium? Javascript framework that runs in your web- browser Works anywhere Javascript is supported Hooks for many other languages.
Pubman and Selenium tests. What is Selenium Selenium is a suite of Web application test automation tools for any browser on any operating system –Firefox,
The Developer Perspective Michelle Osmond. Design – Requirements Gathering Sales & Research projects –Prototypes/Demos User group meetings Usability workshops.
1 GWT Google Web Toolkit Build AJAX apps in the Java language
Javascript and AJAX Willem Visser RW334. Overview Javascript jQuery AngularJS AJAX.
Server-Side vs. Client-Side Scripting Languages
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
It’s always better live. MSDN Events Developing ASP.NET AJAX Controls with Silverlight.
Web based testing: Chucklist and Selenium
Definition from Wikipedia.  The Prototype JavaScript Framework  implemented as a single file of JavaScript code  named prototype.js (
Prof. James A. Landay University of Washington Spring 2008 Web Interface Design, Prototyping, and Implementation Rich Internet Applications: AJAX, Server.
Agenda What is AJAX? What is jQuery? Demonstration/Tutorial Resources Q&A.
Project Rickshaw SEARCH - FIND - GO. Project Rickshaw TEAM MEMBERS KEVIN AUGUSTINO – MATT FOX – DAVID MOORE SPONSORS KARASU TECHNOLOGIES - ERIK PAUL -
ITM352 PHP and Dynamic Web Pages: Server Side Processing.
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
JavaScript, jQuery & AJAX. What is JavaScript? An interpreted programming language with object oriented capabilities. Not Java! –Originally called LiveScript,
Server-Side JavaScript with jQuery and AOLserver jQueryCamp07 October 27, 2007 Dossy Shiobara jQueryCamp07 October 27, 2007 Dossy Shiobara.
1 Ajax. 2 What’s Ajax? AJAX is a combination of a few technologies that has come together in the past few years AJAX used to be an acronym for Asynchronous.
WaveMaker Visual AJAX Studio 4.0 Training Troubleshooting.
1 Web GIS: from Javascript to GWT Pieter De Graef – Community Manager & Lead Developer Geomajas.
XForms: A case study Rajiv Shivane & Pavitar Singh.
Yahoo! User Interface (YUI) Library Natly Mekdara.
 2008 Pearson Education, Inc. All rights reserved Ajax-Enabled Rich Internet Applications.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
McGraw-Hill/Irwin © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Dynamic Action with Macromedia Dreamweaver MX Barry Sosinsky Valda Hilley.
Selenium automated testing in Openbravo ERP Quality Assurance Webinar April 8th, 2010.
Val Kravets, Luis Sanchez, Allen Chung, Phillip Anderson, Leyla Norooz, Brian Ramnarian, Todd Watson.
Robot Framework – Basic Level. Date: Version:1.0 Page 1.
JavaScript II ECT 270 Robin Burke. Outline JavaScript review Processing Syntax Events and event handling Form validation.
Writing various AJAX forms in Drupal 7 1. Overview of Form API 2. Ctools 2.1 Ctools features 3. Ajax 3.1 Ajax Forms in Drupal 4. Putting it all together.
JavaScript is a client-side scripting language. Programs run in the web browser on the client's computer. (PHP, in contrast, is a server-side scripting.
By: Toms Linnes Mrunal Patel.  Universal  With qooxdoo you build rich, interactive applications, native-like apps for mobile devices light weight single.
Google Web Toolkit An Overview By Shauvik Roy Choudhary.
Silverlight Technology. Table of Contents 1.What is Silverlight Technology? 2.Silverlight Overview. 2.1 How it works 2.2 Silverlight development tools.
OWL Jan How Websites Work. “The Internet” vs. “The Web”?
Pubman and Selenium tests. What is Selenium Selenium is a suite of Web application test automation tools for any browser on any operating system –Firefox,
Developing ASP.NET AJAX Controls with Silverlight Barry Gervin Microsoft Regional Director John Bristowe Developer Advisor, Microsoft.
REAL WORLD AJAX MARCH TIBCO USER CONFERENCE / 2004 Enterprise Rich Internet Applications with AJAX Real World Case Studies with TIBCO General Interface™
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
Chapter 16: Ajax-Enabled Rich Internet Applications with XML and JSON TP2543 Web Programming Mohammad Faidzul Nasrudin.
Contents : What is Silverlight? Silverlight Overview Silverlight Toolkit Overview Timeline & Packaging Silverlight V1.0 & V1.1 Properties of V1.0 Properties.
Introduction Selenium IDE is a Firefox extension that allows you to record, edit, and debug tests for HTML Easy record and playback Intelligent field selection.
1 What is JQuery. jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax* interactions.
 An essential supporting structure of any thing  A Software Framework  Has layered structure ▪ What kind of functions and how they interrelate  Has.
Web-based Front End for Kraken Jing Ai Jingfei Kong Yinghua Hu.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
SHAREPOINT & JQUERY. Hi, my name and I am a product manager at lightning tools. I have been working with SharePoint for 5 years.
JavaScript II ECT 270 Robin Burke. Outline Functions Events and event handling Form validation.
Robot Framework – Basic Level. Date: Version:1.0 Page 1.
Ajax 101 for CF Programmers Randy Brown – Michigan State University
Open Solutions for a Changing World™ Eddy Kleinjan Copyright 2005, Data Access WordwideNew Techniques for Building Web Applications June 6-9, 2005 Key.
Ajax & Client-side Dynamic Web Gunwoo Park (Undergraduate)
Web Technologies Computing Science Thompson Rivers University
ITM352 PHP and Dynamic Web Pages: Server Side Processing 1.
Lecture 11. Web Standards Continued
User Interface Design and Usability jQuery, jQuery UI & jQuery Plugins
The merging of Web and Mobile APP
Microsoft Ajax Taking Ajax to the Next Level
AJAX.
Web Development Using ASP .NET
An introduction to jQuery
Choosing between Silverlight and AJAX
Web Technologies Computing Science Thompson Rivers University
An introduction to jQuery
Web Client Side Technologies Raneem Qaddoura
Presentation transcript:

For rich web client applications Jeff Hemminger Object Partners, Inc

A few of the features of rich web clients Rich, desktop-like capabilities Generate their own HTML Ajax – Asynchronous Javascript and XML Jeff Hemminger Object Partners, Inc

The Need for Testing Controller, as in MVC, is in the client (“Processes and responds to events (typically user actions) and may indirectly invoke changes on the model.” - Wikipedia) View- Events, validation, display logic, error handling is there too. “I entered FOO and I got BAR back” as a bug description doesn’t leave you with much to go on. Whack-A-Mole bug fixing results without good test tools. End to end testing is not efficient. Jeff Hemminger Object Partners, Inc

UI Testing Frameworks Vary Run exclusively in browsers Simulate browsers Unit Test Javascript (in the browser) Jeff Hemminger Object Partners, Inc

The Tools Unit testing – JSUnit, Envjs, HtmlUnit Integration/Component Testing – HtmlUnit Functional Testing - Selenium Jeff Hemminger Object Partners, Inc

Jsunit Started in 2001 Write JavaScript tests embedded in HTML. Provides a TestRunner to run in a browser. Comes with a server and ant tasks Jeff Hemminger Object Partners, Inc

Example Jeff Hemminger Object Partners, Inc // Test the date stuff function testDateGetYear() { var date = new Date(); debug("getYear() gives value ", date.getYear()); debug("getFullYear() gives value ", date.getFullYear()); assertNotEquals("ECMAScript error", date.getYear(), date.getFullYear()); }

EnvJs Goal is to deliver a DOM implementation in pure JavaScript Can be executed in Rhino Enables headless testing Easy to execute in Junit Still in development – pre alpha release Jeff Hemminger Object Partners, Inc

Example Bootstrap Jeff Hemminger Object Partners, Inc load('envjs/dist/env.js'); window.location='test/com/objectpartners/envjs/test.html'; document = window.location; var extDir = 'WebContent/js/ext-2.2/'; load(extDir + 'adapter/jquery/jquery.js'); load('test/com/objectpartners/envjs/jquery-plugins.js'); load(extDir + 'adapter/jquery/ext-jquery-adapter.js'); load(extDir + 'ext-all-debug.js');

Example Test Jeff Hemminger Object Partners, Inc load('src/com/objectpartners/testing/envjs/Validator.js'); var validators = new validators.field(); assertNotNull(validators); assertTrue(validators.dateAfterValidator('10/10/2010')); assertFalse(validators.dateAfterValidator('10/10/2001')); assertFalse(validators.dateAfterValidator(new Date())); assertTrue(validators.creditCardNumberValidator(' ')); assertFalse(validators.creditCardNumberValidator('something'));

HtmlUnit Latest January release provided best Javascript Library support for headless testing yet. Addresses some cross-browser compatibility Easy to integrate into Junit Not the best JavaScript->Java API support Well suited for Integration testing Jeff Hemminger Object Partners, Inc

//Make sure the button is there, and if it is, click it HtmlButton button = (HtmlButton) start')]"); assertNotNull(button); button.click(); // Get the start menu, and make sure the menu items are there HtmlDivision startMenuDiv = (HtmlDivision) x-border-panel ux-start-menu-apps-panel')]"); assertNotNull(startMenuDiv); HtmlElement unOrderedList = startMenuDiv.getFirstChild(); assertNotNull(unOrderedList); // get the list of submenus Iterable childElements = unOrderedList.getChildElements(); count = 0; for (HtmlElement htmlElement : childElements) { count++; } assertTrue(count == 5); Jeff Hemminger Object Partners, Inc

Selenium Runs in a browser, or as a server Firefox plugin Allows complete functional testing Jeff Hemminger Object Partners, Inc

Example command table Jeff Hemminger Object Partners, Inc search test open /musicmanager type searchfield Heavy click x-form-search-trigger')] pause 3000 click x-panel-body-noborder')] verifyTextPresent from the album

Resources Rhino - Envjs - code.google.com/p/envjs HtmlUnit - htmlunit.sourceforge.net Screw.Unit - github.com/nkallen/screw- unit/tree/master Selenium - seleniumhq.org Extjs extjs.com Jquery - jquery.com JSUnit - jsunit.net Jeff Hemminger Object Partners, Inc