1 © 2004 Jeffrey Feldstein. All rights reserved. Drive Testing for Web-Based and Java Applications with Models Jeffrey Feldstein Cisco Systems

Slides:



Advertisements
Similar presentations
Chapter 4 Loops Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved
Advertisements

Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
Usage of the memoQ web service API by LSP – a case study
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
ONYX RIP Version Technical Training General. Overview General Messaging and What’s New in X10 High Level Print and Cut & Profiling Overviews In Depth.
Benchmark and Java Applet Test Scenario Presentation Outline Introduction to Benchmark Testing Procedure to create the test Benchmark Playback Results.
Automating with Open Source Testing Tools Corey McGarrahan rSmart 01-July-08.
Test Automation An Approach to Automated Software Regression Testing Presented by Adnet, Inc Feb 2015.
Automation Testing Presentation Phil Hunter Phil Hunter - Automation Presentation 1.
© by Pearson Education, Inc. All Rights Reserved.
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Visual Basic 2010 How to Program Reference: Instructor: Maysoon Bin Duwais slides Visual Basic 2010 how to program by Deitel © by Pearson Education,
Building New SOA and AJAX- Based Business Applications Mark Barnard R&D Manager – Natural Business Services Software AG (Canada) Inc.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 16 Applets.
An Overview of Database Access on the Web An Overview of Database Access on the Web Using ASP and Microsoft Database Technology Sheffield Hallam University.
Department of Computer Science University of Maryland, College Park
Understanding the Mainline Logical Flow Through a Program (continued)
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Computer Science - I Course Introduction Computer Science Department Boston College Hao Jiang.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved L05 (Chapter 16) Applets.
Introduction - The Need for Data Structures Data structures organize data –This gives more efficient programs. More powerful computers encourage more complex.
Test Automation Best Practices
Software testing techniques Automated software testing Presentation on the seminar Kaunas University of Technology.
NYC Technology Forum Introduction to Test Automation 11/2/07 All rights reserved Not to be reproduced without permission Bill Rinko-Gay Solutions Director,
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009.
Struts 2.0 an Overview ( )
UNIT-V The MVC architecture and Struts Framework.
Week 4-5 Java Programming. Loops What is a loop? Loop is code that repeats itself a certain number of times There are two types of loops: For loop Used.
Programming Logic Program Design. Objectives Steps in program development Algorithms and Pseudocode Data Activity: Alice program.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
WorkPlace Pro Utilities.
1 Guide to Novell NetWare 6.0 Network Administration Chapter 12.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Mobile search engine for a smart phone / navigation system can be used to search and compare hundreds of stores and their products in seconds. © 2001 –
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
Automatic Subject Classification and Topic Specific Search Engines -- Research at KnowLib Anders Ardö and Koraljka Golub DELOS Workshop, Lund, 23 June.
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
Computer Security and Penetration Testing
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 1 – Car Payment Calculator and Guess the Number.
1 A Static Analysis Approach for Automatically Generating Test Cases for Web Applications Presented by: Beverly Leung Fahim Rahman.
CMPD 434 MULTIMEDIA AUTHORING Chapter 06 Multimedia Authoring Process IV.
Programming in C#. I. Introduction C# (or C-Sharp) is a programming language. C# is used to write software that runs on the.NET Framework. Although C#
What is software testing? 1 What are the problems of software testing? 2 Time is limited Applications are complex Requirements are fluid.
Introduction of Geoprocessing Topic 7a 4/10/2007.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Chapter 4 Loops.
Generic API Test tool By Moshe Sapir Almog Masika.
MD – Object Model Domain eSales Checker Presentation Régis Elling 26 th October 2005.
AutoTester & UAT Automation Framework By SSTZ-UAT.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
SilkTest 2008 R2 SP1: Silk4J Introduction. ConfidentialCopyright © 2008 Borland Software Corporation. 2 What is Silk4J? Silk4J enables you to create functional.
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.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Proposal for an Open Source Flash Failure Analysis Platform (FLAP) By Michael Tomer, Cory Shirts, SzeHsiang Harper, Jake Johns
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Sponsored by the National Science Foundation Today’s Exercise.
A Portrait of the Semantic Web in Action Jeff Heflin and James Hendler IEEE Intelligent Systems December 6, 2010 Hyewon Lim.
Introduction of Geoprocessing Lecture 9 3/24/2008.
Test Automation Using Selenium Presented by: Shambo Ghosh Ankit Sachan Samapti Sinhamahapatra Akshay Kotawala.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Flag Quiz Game App Android How to Program © by Pearson Education, Inc. All Rights Reserved.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Maitrayee Mukerji. INPUT MEMORY PROCESS OUTPUT DATA INFO.
Designing For Testability
Developing Applications
Introduction to Data Structure
Computer Systems An Introducton.
Presentation transcript:

1 © 2004 Jeffrey Feldstein. All rights reserved. Drive Testing for Web-Based and Java Applications with Models Jeffrey Feldstein Cisco Systems Source Code:

222 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com 222 © 2004 Cisco Systems, Inc. All rights reserved. Presentation_ID

333 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Introduce myself Model Based Testing Introduction Obstacles to Model Based Testing Introduction to IBM Functional Tester Model Based Test demonstration Code walk-through How to obtain and run the source Next Steps Agenda

444 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Introduce Myself Software Career: 24 years Software Test: 6 years Test Automation: 5 years Married: 2 1/2 years Current position at Cisco: Manage a group of 40 test engineers testing a next generation Network Management Operating System

555 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com What is a Model? An abstract representation of your application, stored in memory, that enables a test program to navigate your application.

666 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Vocabulary: States & Transitions A State is a screen or other place where an application waits for further input A transition is a screen object, keyboard input or other stimulus that causes the application to move to a new state

777 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Model Based Testing Introduction The FSM contains application states and all possible transitions Test Case flow is not predetermined Can more closely emulate the customer’s use New Test Cases are generated on the fly Application represented as a Model Model is stored as a finite-state- machine (FSM) or tree

888 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Model vs. Classic Automation Classic automation is 100% repetitive Nothing changes from one run to the next Data-Driven Automation: Data might change but flow through the program stays the same Model-based testing introduces randomization of test flow Can find bugs you aren’t looking for

999 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Model Based Testing Introduction (con’t) Best introduction: Google: “Harry-Robinson Intelligent” Model is stored as a finite-state-machine The finite-state-machine is then navigated by a choice of algorithms Each state usually corresponds to an application screen Normal automation scripts can be run for each state Transitions can be weighted with a probability to ensure a node is visited more (or less often)

10 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com A simple Model Web Page Tabs Each tab is a state User can navigate from any state to any other state

11 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com A simple Model: With transitions News Home Images Home News Images Home

12 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com A simple Model: With transitions News Home Images Home News Images Home

13 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Model Based Testing Advantages Introduces a sense of randomness to testing Can form the basis of a “soak” test Interesting software development for testers Navigation through the states can be predetermined, randomized or both: Random Shuffle Directed (Breath or Depth first) Can run indefinitely, until every node is visited, or for a set amount of time

14 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Model Based Testing Obstacles Requires complex data structures to store and manipulate the model Full-powered programming language required for implementation Can not easily be implemented in many of XDE Tester’s competition Relatively high level of software engineering knowledge is required (for a test department) Without careful logging and playback ability, problems can be difficult to reproduce Business logic to verify function needs to be modular

15 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com IBM Rational Functional Test For Java & Web Formally Known as XDE Tester AKA “robotj” Java is the scripting Language Eclipse is the IDE GUI Map stored as an XML file ScriptAssure: Manages GUI Changes In Production use by Cisco for 18 months

16

17 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Directed Transitions The Model contains all possible transitions Business logic must still be verified In cases where the data entered determines which transition to choose, it’s the job of the business logic verification to determine if the behavior of the program was correct. Example: Login New User Dialog Exiting User Screen

18 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Main Java objects Array of states Transition list Transition properties Verification procedures to call

19 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Java objects: State Details class State { public int m_state; public transitionList m_transitions; public String m_stateName; public boolean bVisited; public int distToDest; public int transitionToDest; // Method VerifyMethod; String VerifyMethod; State(int s) { bVisited = false; m_state = s; m_transitions = new transitionList(); } }

20 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Java objects: Transition Details public class transitionList { private java.util.List list = new ArrayList(); public void add(transition m) { list.add(m); } public transition get(int index) { return (transition)list.get(index); } public int size() { return list.size(); } } public class transition { public GuiTestObject m_trigger; public State m_destination; public transition(GuiTestObject o, State s){ m_trigger = o; m_destination = s; } }

21 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Sample Code Features Implements a Model Based test for a simple application Can scale to much larger applications Navigation: Random All Paths Timed Execution HTML log for test status XML Log for replay

22 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Conclusions A Model of an application contains states and all possible transitions into and out of those state Model Based Testing will find more bugs because of the random nature of the navigation Model Based Testing, like classic automation requires good back-end or business-logic verification Model Based Testing requires good software engineering skills

23 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Obtaining & Running the Sample Code 1.Obtain a copy of Functional Test for Java Click on “Trials and Betas” on the right 3.This page is the test application and contains directions for downloading and running the code”

24 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com MBT - Further Reading IBM Developer Works Software Test & Performance Magazine (Feb 2005)

25 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com Learning Java Data Structures and Algorithms in Java by Robert Lafore Thinking In Java by Bruce Eckel

26 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com 26 sherpas.com/mbt

27 © 2004 Jeffrey Feldstein. All rights reserved. sherpas.com 27 © 2004 Cisco Systems, Inc. All rights reserved. Presentation_ID