Automated Software Testing using Open Source Testing Tools

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

IBM Software Group Practical Approaches to End-to-End Automation with STAF and STAX.
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
Company LOGO Automation Tools For Android Anshu Prasad.
Operating-System Structures
2004 Cross-Platform Automated Regression Test Framework Ramkumar Ramalingam, Rispna Jain IBM Software Labs, India.
© 2009 IBM Corporation Hands-on Automation with STAF/STAX Parts
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Requirements Analysis 5. 1 CASE b505.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis CASE Computer.
Introduction to z/OS Basics © 2006 IBM Corporation Chapter 8: Designing and developing applications for z/OS.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Chapter 9: Moving to Design
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Introduction to Software Testing
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Version Enterprise Architect Redefines Modeling in 2006 An Agile and Scalable modeling solution Provides Full Lifecycle.
Understanding and Managing WebSphere V5
Introduction to the new mainframe © Copyright IBM Corp., All rights reserved. Chapter 7: Designing and developing applications for z/OS.
Android Introduction Platform Overview.
Lesson 4 Computer Software
INTRODUCTION TO WEB DATABASE PROGRAMMING
Introduction 01_intro.ppt
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
An Introduction to Software Architecture
Advanced PI Calculation Engine Makes Complex PI Calculations Easy! Use of EDICTvb for Multi-Plant Advanced PI Calculations Dane OverfieldEXELE Information.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
CHAPTER FOUR COMPUTER SOFTWARE.
Introduction to Interactive Media Interactive Media Tools: Software.
第十四章 J2EE 入门 Introduction What is J2EE ?
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Operating.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Chapter 4 System Software. Software Programs that tell a computer what to do and how to do it. Sets of instructions telling computers to perform actions.
16 1 Installation  After development and testing, system must be put into operation  Important planning considerations Costs of operating both systems.
Testing Workflow In the Unified Process and Agile/Scrum processes.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Computer Emergency Notification System (CENS)
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Software Research, Inc. Setting the Standard for Software Testing Windows Solution.
© 2004 Mercury Computer Systems, Inc. FPGAs & Software Components Graham Bardouleau & Jim Kulp Mercury Computer Systems, Inc. High Performance Embedded.
DB2 Universal Database Confidential | July 2012 | India Software Lab Click to add text © 2012 IBM Corporation An End to End Windows Automation Framework.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
CASE Tools and their Effect on Software Quality
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
CIS 375 Bruce R. Maxim UM-Dearborn
Software Tools and Environments
Chapter 2: System Structures
Introduction to Operating System (OS)
Introduction of Week 3 Assignment Discussion
Tools of Software Development
Introduction to Software Testing
Chapter 2: System Structures
Lecture 1: Multi-tier Architecture Overview
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
An Introduction to Software Architecture
Presentation transcript:

Automated Software Testing using Open Source Testing Tools By Elfriede Dustin

Agenda Who is IDT State of Software Testing What is Automated Test and Re-test (ATRT) Approach to ATRT Advantage of open source ATRT and open source – Our IDE and solution ATRT Challenges

Who is IDT? IDT specializes in the design, development, and implementation of Automated Software Testing and Re-Test (ATRT) and Quality Assurance (QA) solutions Deliver turn key automated test suite Automated test strategy and identification of highest payoff areas to apply automation for your project Selection of best automation tools for your project Using your existing test cases or develop test cases for you Test results documented in requirements traceability matrix Training and pilot project implementation with companies

Who is IDT? IDT specializes in the design, development, and implementation of Automated Software Testing and Re-Test (ATRT) and Quality Assurance (QA) solutions Deliver turn key automated test suite Automated test strategy and identification of highest payoff areas to apply automation for your project Selection of best automation tools for your project Using your existing test cases or develop test cases for you Test results documented in requirements traceability matrix Training and pilot project implementation with companies We are currently hiring Java Developers Plus we’d like to hire 2 or 3 grad students to work for us part time ( i.e. 20 hours week ) must be US citizen 4

State of Software Testing - Why ATRT? 5

State of Software Testing - Why ATRT? 50% or More of Overall Development Cost is Typically Spent on Testing Utilize Automated Testing Strategies and Technology to Improve Productivity and Quality Spiral / Release 4 Reduction in Test Days Spiral / Release 3 Increased Test Coverage Size & Complexity of SW Baseline Test Days Spiral / Release 2 Manual Test Days Spiral / Release 1 Automated Test Days Manual vs. Automated Test Days IDT Provides Automated Software Testing Solutions 6

What is ATRT? Our definition of ATRT is: Application and implementation of software technology throughout the entire Software Testing Life Cycle (STL) and QA lifecycle; with the goal to improve STL efficiencies and effectiveness

ATRT Spans the Software Development Life Cycle – Visual Modeling Design Build Assemble Round-Trip Engineering Development Tools Components Test Use cases Modeling and test case generation

ATRT Spans the Software Development Life Cycle – Requirements Requirements Management and Process Automation Visual Modeling Development Tools Components Organizes, tracks, & controls requirements Requirements Traceability Matrix (RTM)

ATRT Spans the Software Development Life Cycle – Automated Test Tools Requirements Management and Process Automation Visual Modeling Development Tools Components Development Management Execution Automated Software Testing Automated Testing Tools Automates test cases using vendor-provided, open-source tools or in-house development

Requirements Management and ATRT Spans the Software Development Life Cycle – Integrated Suite of Tools Requirements Management and Process Automation Additionally: Middleware Infrastructure Defect Tracking Configuration Management Memory Leak Detectors Performance Testing Tools Documentation Tools others Visual Modeling Infrastructure Middleware Automated Testing Tools Development Tools Components Software Configuration Management Defect Tracking

Types of Software Test Life-cycle Support Tools Which tools are you familiar with?

Types of Automated Test Tools Life-Cycle Phase Type of Tool Tool Description Business Analysis Business Modeling Records definitions of user needs and automates rapid construction of flexible, graphical, client-server applications Configuration Management Baselines important data repositories Defect Tracking Manages system life-cycle defects Technical Review Facilitates communication, while automating the technical review/inspection process Documentation Generators Automate document generation Requirements Definition Manages and organizes requirements; allows for test procedure design and test progress reporting Verifiers Verify syntax, semantics, and testability Use Case Create use cases

Types of Tools (Cont’d) Life-Cycle Phase Type of Tool Tool Description Analysis and Design Phase Database Design Develops second generation enterprise client-server systems Structure Charts, Flowcharts, and Sequence Diagrams Manage processes Test Procedure Generators Generate test procedures from requirements, design, or data and object models Syntax Checkers/ Debuggers Perform syntax checking and have debugging capability; usually available with built-in programming language compiler Programming Phase Memory Leak and Runtime Error Detection Detects runtime errors and memory leaks Source Code Testing Verifies maintainability, portability, complexity, and standards compliance Static and Dynamic Analyzers Depict quality and structure of code Metrics Tools Code (Test) Coverage Analyzers or Code Instrumentors Identify untested code and support dynamic testing Usability Measurements Provide usability testing as conducted in usability labs

Types of Tools (Cont’d) Life-Cycle Phase Type of Tool Tool Description Other Testing Support Tools Data Extraction Tool Extract Data from various formats into various formats Test Data Generators Generate test data File Compare Utilities Find discrepancies between files that should be identical in content Simulation Simulates application to measure for scalability, among other tasks Test Management Tests management Network Testing Monitors, measures, tests, and diagnoses performance across the entire network GUI Testing (Capture/Playback) Conducts automated GUI tests; capture/playback tools record user interactions with online systems so they may be replayed automatically Load/Performance Testing Conducts load/performance and stress testing Security Testing Performs security testing and vulnerability scanning at the application or network level; plus debuggers will allow to check for security coding errors (source code checkers)

Deployment Approach – Adapted ATLM Populate Test Manager with Test Cases and Requirements Develop Test Scripts from Test Procedures Test Results: Pass/Fail by Test Case Pass/Fail Summary Test Time Required Identify or Develop & Pilot Test Manager Test Scripts Data Comparators Performance Test Tools GUI Record/Playback Storing/Retrieving Results Collect/Create: Requirements Test Cases Test Procedures Expected Results Interface Specifications System/Component Configuration Description

Why Open Source ?

Why Open Source? Advantage of Open Source: no licensing issues; i.e. license cost; maintenance; etc. easily modifiable adaptable lightweight flexibility - not tied to one vendor

ATRTs IDE - Eclipse Eclipse – this site lists all the plugins http://www.eclipse-plugins.info/eclipse/plugins.jsp?category=SCM&pager.offset=0&firstItem=1 Eclipse/TPTP – Open Source - Developed by IBM Eclipse/Test and Performance Tools Platform (TPTP) offers a common extensible framework for the following functions: Requirements Management http://sourceforge.net/projects/osrmt/ Configuration Management - Subversion Testing Tools (http://www.nabble.com/Eclipse-TPTP---Testing-Tools-f2262.html) Profiling: default Java applications, but can be extended to other apps 19

ATRTs IDE - Eclipse Eclipse/Test and Performance Tools Platform (TPTP) offers a common extensible framework for the following functions (cont): Static Analysis: default for C++ and Java, but can be extended to other apps Application monitoring and log analysis Build tool – ant Xml input and output - using an open source Java package http://jakarta.apache.org/ecs/ , which is a Java library that has an API for constructing and outputting XML.  Test Manager – STAF/STAX 20

Current Test Tool Implementation – Example and Challenges Vendor-provided (Capture/Playback) Tool: Automated test tools mimic actions of the test engineer. During testing, the engineer uses the keyboard and mouse to perform some type of test or action. Testing tool captures all keystrokes and subsequent results, which are baselined in an automated test script. During test playback, scripts compare latest outputs with previous baseline. Testing tools have built-in, reusable test functions. Most test tools provide for non-intrusive testing; i.e., they interact with the “application-under-test” as if the test tool was not involved.

Current Testing Tools – Challenges (cont) In-House Software Development required: Capture/Playback tools generate hard-coded values; test scripts are not reusable, nor do they implement software development best practices right out of the box; scripts need to be modified. Capture/Playback tools don’t necessarily provide all testing features required; code enhancements are often required to meet testing needs. Capture/Playback tools are not necessarily compatible with system engineering environment, and software testing scripts need to be developed in-house. Developed testing scripts are not cross-vendor compatible, even if the same scripting language is used

Linux Capture/Playback Tools IDT Findings Replay Xcessory http://www.scl.com/products/ics/motif/testing/replay/ www.ics.com QF-Test http://www.qfs.de/en/qftestJUI/index.html Froglogic http://www.froglogic.com/pg?id=Google&category=squishjava Redstone Software Eggplant KD Executor http://www.kdab.net/?page=products&sub=kdexecutor Jameleon http://sourceforge.net/projects/jameleon/ ShUnit2 for shell scripts testing GNU Linux Desktop Project http://ldtp.freedesktop.org/wiki/Home Cantana http://www.ipl.com/pdf/p0003.uk.pdf crontab Part of Unix   crontab, cruisecontrol, www.adminschoice.com/docs/crontab.htm Dogtail http://people.redhat.com/zcerza/dogtail/about.html http://www.cyberciti.biz/tips/linux-automated-gui-testing-with-python-based-dogtail-tool.html Expect http://expect.nist.gov/

Automated Test and Re-Test (ATRT) ATRT includes a common framework comprised of re-usable software services Open Source Software Test Automation Framework (STAF) Provides automated test procedures, test inputs, and test results for SW components Suitable for use by 3rd parties not associated with development of the component

What is STAX? STAX is an automation system With STAX you can automate and monitor your entire test environment System/product setup Testcase distribution Testcase execution Testcase results collection and analysis STAX consists of A programming language designed for automation Programs written in this language are called jobs An execution engine (similar to an interpreter for other programming/scripting languages) which manages the execution and runtime behavior of the job A GUI application, called the STAX Monitor, which provides a dynamically updated view of your executing jobs A tool (STAXDoc) that is used to generate documentation for your STAX jobs

STAF can run on:     * Windows 95     * Windows 98 (and 98 SE)     * Windows Millenium Edition     * Windows NT Version 4.0     * Windows 2000     * Windows XP     * Windows Server 2003 (IA32, IA64, AMD64)     * Windows Vista (IA32, AMD64)     * Linux (Intel32/64, AMD64, PPC32/64)     * Linux on zSeries (31-bit, 64-bit)     * AIX Version 4.3.3.0 or higher (32-bit, 64-bit)     * Solaris (Sparc) 2.6 and higher     * Solaris AMD Opteron 64-bit     * HP-UX 11.00 and higher (PA-RISC, IA64 32-bit and 64-bit)     * OS/400 V5R2 or higher     * z/OS UNIX V1.4 and higher

STAF Internal Services DIAG Provides diagnostics services Internal ("DIAG") DELAY Provides a means to sleep a specified amount of time Internal ("DELAY") ECHO Echos back a supplied message Internal ("ECHO") FILE SYSTEM Allows you to get and copy files across the network Internal ("FS") HANDLE Provides information about existing STAF handles Internal ("HANDLE") HELP Provides Help on STAF error codes Internal ("HELP") MISC Handles miscellaneous commands such as displaying the version of STAF that is currently running Internal ("MISC") PING Provides a simple is-alive message Internal ("PING") PROCESS Allows you to start, stop, and query processes Internal ("PROCESS") QUEUE Provides a network-enabled IPC mechanism for STAF Programs Internal ("QUEUE") SEMAPHORE Provides network-enabled named event and mutex semaphores Internal ("SEM") SERVICE Allows you to list services available on a machine and to examine the Requests that have been submitted on a machineInternal ("SERVICE") SHUTDOWN Provides a means to shutdown STAF and register for shutdown Notifications Internal ("SHUTDOWN") TRACE Provides tracing information for STAF services Internal ("TRACE") TRUST Interfaces with STAF's security Internal ("TRUST") VARIABLEProvides a method for maintaining configuration and runtime data (variables) Internal ("VAR")           

STAF External Services The executable code for external STAF services resides outside of STAFProc, for example in a Java jar file, a C++ DLL file, or a Rexx script file. CRON Calls into STAF services at a specified time interval External (Java) EMAIL Allows you to send email messages External (Java) EVENT Provides a publish/subscribe notification system External (Java) EVENTMANAGER Allows you to call STAF services when a specified Event occurs External (Java) HTTP Allows you to make HTTP requests which can be grouped together in a session External (Java) LOG Provides a full-featured logging facility External (C++) MONITOR Allows a testcase to publish its current running execution status for others to read External (C++) RESOURCE POOL Allows you to manage exclusive access to pools of elements, e.g. VM UserIDs or Software Licenses External (C++) STAX Provides an XML-based execution engine External (Java) ZIP Provides a means to zip/unzip/list/delete PKZip/WinZip compatible archives External (C++)

Technologies used in STAX STAF STAF provides the infrastructure on which STAX builds. The full power of STAF and its services is exposed for use within STAX jobs. XML The STAX programming language is based on XML. This provides built-in structure to your jobs, as well as providing a set of existing tools for use in constructing your jobs, such as XML (aware) editors and XSLT. Python The STAX programming language builds on Python to provide a rich and accessible data model STAX's Python integration also allows you to access the wealth of existing Python libraries Java The STAX programming language allows you to access existing Java classes/libraries, providing another source for reuse

Automation Tasks Automation Startup System Setup Testcase Execution Monitoring Synchronization Testcase Output Analysis Resource Management Testcase Cleanup Results Notification Automation Completion

End-to-End Automation with STAF and STAX Automation Startup S T A X J o b Event, EventManager, Cron <function> <parallel> <sequence> <process> <stafcmd> <testcase> <timer> <block> <loop> <message> <log> <import> <job> <iterate> <paralleliterate> <hold> <release> <terminate> System Setup FS, Process Testcase Execution Process, Monitor, Log, Variable, Queue, ResPool Testcase Output Analysis Log, Process Testcase Cleanup Process Results Notification Email, HTTP Automation Completion

Key ATRT Architecture Requirements Support applications running on multiple computers Support applications developed in different languages Support applications running on different types of OS’s Support applications which have GUI and those which do not (for example Interface testing) Support applications which use different types of network protocols such as TCP/IP, DDS, etc Support integration of multiple commercial testing tools from different vendors ( allowing as new or better products emerge in the market they can be utilized ) Support testing w/o having to install ATRT on the same computers as the application under test and be able to be distributed across computers

Prototype – Proof of Concept Analysis & Display Application Display Application Display Application System Under Test Windows Based Simulation of Application Processing Messages Eggplant R/P VNC Robot R/P Simulation of Application Processing Messages ATRT Test Manager RTM Bugzilla Linux Based STAF/STAX 33

ATRT Prototyping Effort Able to successfully execute ATRT for 48 hours without operator intervention During the tests: VNCRobot - Approximately 25,000 operator key strokes were replayed STAF/STAX - More than 1,000,000 messages processed and verified by ATRT

Additional Requirement Pristine test environment required – automated testing tool cannot be installed on Application-Under-Test PC Eggplant – allows for remote capture/playback via VNCserver and KVM switch VNCRobot

Automated Software Testing Software testing paradox What is it?

Effective Automated Software Testing Current State: Developing software in order to test software Automate the test support development: automated IDL to code generation; test data generation (using FireEye from NIST); compare utilities; log file analyzers; Our Automated Software Testing Goal: Minimize Human interaction Possibly get on par with Hardware Automated Testing?

Hardware Testing: current state Many automated test generators for manufacturing/ logic devices, circuit testing, etc., available i.e. SEI/ATG, uMaster, etc. Automated testing without human interaction is the norm for hardware testing

Hardware vs. Software AT How is hardware testing different? Software Challenge: Changing requirements GUI interfaces Code access/availability Defects uncovered earlier in the software development lifecycle are cheaper to fix Solution flexibility required – problem dependent

Proposed solutions Focus on Reusable Components Test Data / Expected Results Interfaces Middleware Assuming code and models are available: Model based testing; automated test case generators based on models Eclipse – effective ATRT IDE Probes – see Aprobe – Code instrumentation Building self-testable components Using standard language MOF to Text to generate automate test cases GUI Testing tool ideas New tools - other Working with NIST to produce additional tools

GUI Testing Jemmy - java library to test UI http://jemmy.netbeans.org/ http://abbot.sourceforge.net/doc/overview.shtml Perl modules run via VNCServer?

Questions ? Email edustin@idtus.com with any follow-up questions

IDT We are hiring……. Please come see me now if interested or send email edustin@idtus.com with any follow-up 43