Software Testing Automation Framework (STAF) Open Source Testing System from IBM.

Slides:



Advertisements
Similar presentations
Ted Hesselroth USCMS T3 Meeting Abhishek Singh Rana and Frank Wuerthwein UC San Diego Ted Hesselroth STAF/STAX OSG Storage Demo of.
Advertisements

IBM Software Group Practical Approaches to End-to-End Automation with STAF and STAX.
Operating-System Structures
2004 Cross-Platform Automated Regression Test Framework Ramkumar Ramalingam, Rispna Jain IBM Software Labs, India.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
3.5 Interprocess Communication
Tcl Agent : A flexible and secure mobile-agent system Paper by Robert S. Gray Dartmouth College Presented by Vipul Sawhney University of Pennsylvania.
Guide To UNIX Using Linux Third Edition
1 I/O Management in Representative Operating Systems.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Introducing JavaBeans Lesson 2A / Slide 1 of 30 JDBC and JavaBeans Pre-assessment Questions 1.Which of the given symbols is used as a placeholder for PreparedStatement.
Windows Server MIS 424 Professor Sandvig. Overview Role of servers Performance Requirements Server Hardware Software Windows Server IIS.
INTRODUCTION TO WEB DATABASE PROGRAMMING
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
WINDOWS SERVICES. Introduction You often need programs that run continuously in the background Examples: – servers –Print spooler You often need.
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
PVM. PVM - What Is It? F Stands for: Parallel Virtual Machine F A software tool used to create and execute concurrent or parallel applications. F Operates.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
OS provide a user-friendly environment and manage resources of the computer system. Operating systems manage: –Processes –Memory –Storage –I/O subsystem.
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Operating.
Citrix MPS 3.0 Licensing Douglas A. Brown President
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
IT 456 Seminar 5 Dr Jeffrey A Robinson. Overview of Course Week 1 – Introduction Week 2 – Installation of SQL and management Tools Week 3 - Creating and.
Lecture Set 11 Creating and Using Classes Part B – Class Features – Constructors, Methods, Fields, Properties, Shared Data.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Linux+ Guide to Linux Certification, Third Edition
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
© 2004 IBM Corporation IBM ^ z/VM Module 2: Conversational Monitor System (CMS)
Oracle Data Integrator Procedures, Advanced Workflows.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
ABone Architecture and Operation ABCd — ABone Control Daemon Server for remote EE management On-demand EE initiation and termination Automatic EE restart.
Introduction to Java Beans CIS 421 Web-based Java Programming.
Copyright © 2012 UNICOM Systems, Inc. Confidential Information z/Ware Product Overview illustro Systems International A Division of UNICOM Global.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Developing Applications with the CSI Framework A General Guide.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Chapter 4: Threads Overview Multithreading.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
IPS Infrastructure Technological Overview of Work Done.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
STAR Scheduler Gabriele Carcassi STAR Collaboration.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
SQL Database Management
Integrating ArcSight with Enterprise Ticketing Systems
Useful Tools for Testing
z/Ware 2.0 Technical Overview
Chapter 2: System Structures
Senior Software Engineering Student Robertas Sys
Ch > 28.4.
Knowledge Byte In this section, you will learn about:
Network and Distributed Programming in Java
Chapter 2: System Structures
(Authentication / Authorization)
Chapter 2: Operating-System Structures
SPL – PS1 Introduction to C++.
Plug-In Architecture Pattern
Presentation transcript:

Software Testing Automation Framework (STAF) Open Source Testing System from IBM

What is STAF?  An open source automation framework  A remote test agent to control tests on multiple machines  Designed around the idea of reusable components, called services  Developed by IBM, made open source because of their use in Linux testing

Supported Environments  Runs on most operating systems: Windows, Unix, AS/400, MVS  The same services are available from a wide array of languages, including C/C++, Java, Perl, Tcl, Python and Rexx  There is also a command line interface

Basic Concepts  Runs as a daemon process, called STAFProc, on each system  Operates in a peer-to-peer environment; in other words, there is no client-server hierarchy

Services  Services are reusable components that provide all the capabilities in STAF  Provides a specific set of functionality (such as Logging) and defines a set of requests that it will accept  STAFProc sends the requests to services as strings which describe the operation to perform  Requests can be sent to services on the local machine or to another remote machine

Handles and Queues  Every process that accesses STAF does so through a handle  A handle, combined with the machine name, uniquely identifies a particular process The combination of machine name and handle allows services to track requests from multiple processes on different machines  Each handle has a priority-based message queue associated with it  Applications receive messages sent from other processes/machines on their queue

Variables  STAF provides facilities to store and retrieve variables per handle, such as Configuration information Runtime/state information System environment information  Live within the STAFProc daemon, which allows them to be dynamically updated After the update, applications referencing the variable will get the new value  A global variable pool is common to all the processes on a machine

Security  Security defined at the machine level, as opposed to using individual userids  Numeric trust level can be assigned to specific machines  Each service defines what trust level is required in order to use the various functions provided  A simple numerical comparison is used to see if the request is authorized

Types of Services  Internal STAF Services The executable code for internal STAF services resides within STAFProc, which means they are always available and have a fixed name  External STAF 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  Custom STAF Services Note that you can also write your own custom services that can be plugged into STAF. All custom services are external services

Some Services SERVICEList services available and examine requests FSGet and copy files across a network PROCESSStart, stop and query processes LOGFull featured logging facility, can be replaced MONITORPublish test case running execution status SXESequentially execute a number of commands SEMNetworkable event and mutex semaphores CRONRun a command at specific time interval EVENTPublish/Subscribe notification system TIMERPeriodically receive a notification message

Configuration File  STAF is configured through a text file This file may have any name you desire, but the default is STAF.cfg  You can alter many aspects of STAF's behavior Specify the network interfaces Define operational parameters Define global variables Specify security access Define Startup/Shutdown notifications Enable and configure tracing Register and configure external services

Configuration File  Grant access with trust levels TRUST LEVEL 5 MACHINE office TRUST LEVEL 0 MACHINE badguy TRUST DEFAULT LEVEL 1  External service registration SERVICE MONITOR LIBRARY STAFMon SERVICE SAMPLEJ LIBRARY JSTAF \ EXECUTE C:/STAF/services/Sample.jar \ OPTION "J2=-cp C:/MyJava/Extra.zip" \ PARMS {STAF/Config/STAFRoot}/bin/sample.dft SERVICE EVENT LIBRARY JSTAF \ EXECUTE C:/STAF/services/STAFEvent.jar SERVICE NOTIFY LIBRARY Notify PARMS "HOURS 24 DAYS 7"

Registering Services Dynamically  You may also register and unregister services dynamically, without needing to shutdown and restart STAF ADD SERVICE Log LIBRARY STAFLog ADD SERVICE MyDevice LIBRARY PLSTAF EXECUTE mydev.pl ADD SERVICE STAX LIBRARY JSTAF EXECUTE STAX.jar REMOVE SERVICE STAX

Service Loaders  External services whose purpose is to load other services on-demand  They dynamically register the service when a request is made  A default service loader service (STAFDSLS) is shipped with STAF. It knows how to dynamically load the Log, Monitor, and ResPool services. This service will automatically be configured serviceloader Library STAFDSLS

Simple Test Cases  Can run Test Cases which are completely unaware of STAF  You can start using your existing test cases with STAF without making any changes to the test cases You aren't required to use any STAF services You aren't required to call any STAF APIs  You can choose when/if you enable STAF in your test cases staf local process start shell command "perl SimpleTestcase.pl"

STAF Enabled Test Cases  You can leverage STAF in your test cases by making calls into services  For all of the supported STAF languages, you can do the following Register with STAF Submit any number of calls into services Optionally unregister with STAF

STAF Support for Perl Test Cases  STAF::Register Allows you to register with STAF (procedural)  STAF::Submit Allows you to submit requests to STAF (procedural)  STAF::UnRegister Allows you to unregister with STAF (procedural)  STAF::STAFHandle Object to call into STAF (object-oriented)  new - Creates a handle that registers with STAF  submit - Same as STAF::Submit but different calling convention  unRegister - Same as STAF::UnRegister but different calling convention  STAF::WrapData This function takes a string and produces the colon-length- colon delimited version of that string. This function is widely used to pass the values of options in STAF requests.

Writing Custom Services  Written in Perl, Java, C++ or REXX Perl services since version 3.0 beta 4  Life cycle of service: ConstructionThe service exists in the STAF memory space; not yet ready to accept requests InitializationThe service has been initialized (with appropriate parameters), and is ready to accept requests Accepting requests The service is active TerminationThe service has terminated DeconstructionThe service is removed from the STAF memory space

STAX Service  A test harness and test execution language with an XML based grammar  Provides a powerful GUI monitoring application  The language has a number of unique logic primitives Parallel iterate command: each iteration is run concurrently in a separate thread  Three types of STAX machines STAX/Event Service Machine Monitoring/Requesting Machine Execution Machines

Perl STAF Service Basics  Most services are comprised of a single script file package MyDevice; use PLSTAFService; use 5.008; use threads; use threads::shared;  Each service requires a unique package name  Only works with Perl 5.8 or later  Threads and shared threads allow requests to modify data without corruption

Perl STAF Service Initialization  Must implement the init sub Register the service Process service parameters Create a directory for persistent service data Create command parsers our $fhandle; sub init { my $name = $_{serviceName}; $fhandle = STAFHandle- >new("STAF/Service/$name");... }

Perl STAF Service Parsers  During initialization, a command parser is created for each request the service accepts such as LIST, ADD, QUERY ->new() creates the parser ->addOption($name, $max, $valueRequirement) to add options to parser ->addOptionGroup($optionNames, $min, $max) to specify mutually exclusive option groups ->addOptionNeed($needers, $needees) to specify option dependency relationships

Perl STAF Service Accept Requests  Requests are handled by acceptRequest sub  A hash is passed with the request values  The service then defines handleCommand methods for each request type  Each handler should check the trust level to validate that the requesting machine has access to the method  The handler method can then parse the request and return the result

STAF 3.0 In Beta  STAF 3.0 Send Variables Across the Network Inform on Garbage Collected Handles Communication Interface Enhancements User-level Security Multiple copies of STAF on same machine Secure connections with OpenSSL