U.S. Navy Automated Software Testing

Similar documents
Using Automation to Generate Automated Software Testing Reducing the Human Interaction for Testing of DOD Systems

SOFTWARE TESTING TRAINING COURSES CONTENTS

Introduction to Automated Testing

Chapter 13: Program Development and Programming Languages

A standards-based approach to application integration

Instrumentation Software Profiling

What Is the Java TM 2 Platform, Enterprise Edition?

Chapter 13: Program Development and Programming Languages

Choosing A Load Testing Strategy Why and How to Optimize Application Performance

Business Application Services Testing

Mike Chyi, Micro Focus Solution Consultant May 12, 2010

Bringing Value to the Organization with Performance Testing

Software Automated Testing

Lab Management, Device Provisioning and Test Automation Software

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER

IndustrialIT System 800xA Engineering

Developing SOA solutions using IBM SOA Foundation

Bridge Development and Operations for faster delivery of applications

Improvement of Software Quality and Productivity Using Development Tools

How To Test For Performance

Pervasive Software + NetSuite = Seamless Cloud Business Processes


Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test.

MD Link Integration MDI Solutions Limited

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

What Is Specific in Load Testing?

Business Process Management

Service Governance and Virtualization For SOA

Approach to Service Management

Load and Performance Load Testing. RadView Software October

DiskPulse DISK CHANGE MONITOR

Data Center Virtualization and Cloud QA Expertise

Altova partner OEMs MapForce to offer non-technical customers access to its powerful application development and integration technology.

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

Oracle Data Integrator 11g New Features & OBIEE Integration. Presented by: Arun K. Chaturvedi Business Intelligence Consultant/Architect

WEBLOGIC ADMINISTRATION

Introduction to WebSphere Administration

F-16 Modular Mission Computer Application Software

Development Best Practices

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Code Estimation Tools Directions for a Services Engagement

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Getting Things Done: Practical Web/e-Commerce Application Stress Testing

Develop enterprise mobile applications with IBM Rational software

Deploying Cisco Unified Contact Center Express Volume 1

Mary E. Shacklett President Transworld Data

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

FSW QA Testing Levels Definitions

Standard Glossary of Terms Used in Software Testing. Version 3.01

Fuzzing in Microsoft and FuzzGuru framework

Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

Load Testing RIA using WebLOAD. Amir Shoval, VP Product Management

Global Software Change Management for PVCS Version Manager

Web Application Testing. Web Performance Testing

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

What s Cool in the SAP JVM (CON3243)

SCADA/HMI MOVICON TRAINING COURSE PROGRAM

Enterprise IT is complex. Today, IT infrastructure spans the physical, the virtual and applications, and crosses public, private and hybrid clouds.

IBM Boston Technical Exploration Center 404 Wyman Street, Boston MA IBM Corporation

Evaluation of Load/Stress tools for Web Applications testing

TEST AUTOMATION FRAMEWORK

Testhouse Training Portfolio

Service Oriented Architectures

SOA-14: Continuous Integration in SOA Projects Andreas Gies

Vistara Lifecycle Management

GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications

Product Review: James F. Koopmann Pine Horse, Inc. Quest Software s Foglight Performance Analysis for Oracle

Building Your EDI Modernization Roadmap

Software Development Kit

SECTION 4 TESTING & QUALITY CONTROL

Minimizing code defects to improve software quality and lower development costs.

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

Performance Testing. Why is important? An introduction. Why is important? Delivering Excellence in Software Engineering

Chapter 5. Regression Testing of Web-Components

Ikasan ESB Reference Architecture Review

Performance Testing for BMC Remedy IT Service Management Suite

GUI Test Automation How-To Tips

Modernizing enterprise application development with integrated change, build and release management.

JOURNAL OF OBJECT TECHNOLOGY

The Practical Organization of Automated Software Testing

Appendix M INFORMATION TECHNOLOGY (IT) YOUTH APPRENTICESHIP

Meister Going Beyond Maven

A closer look at HP LoadRunner software

DiskBoss. File & Disk Manager. Version 2.0. Dec Flexense Ltd. info@flexense.com. File Integrity Monitor

Near Future of Automated Software Testing

PIE. Internal Structure

Creating an Automated Software Testing Center of Excellence

ebay : How is it a hit

CDC UNIFIED PROCESS JOB AID

System Administration of Windchill 10.2

Java Application Development using Eclipse. Jezz Kelway Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom

IBM Rational Asset Manager

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

Summer Internship 2013 Group No.4-Enhancement of JMeter Week 1-Report-1 27/5/2013 Naman Choudhary

Transcription:

U.S. Navy Automated Software Testing Application of Standards to the Automated Test and Re-Test (ATRT) Effort Object Management Group (OMG) Technical Meeting June 2007 Approved for public release; distribution is unlimited.

Agenda What is Automated Test and Re-test (ATRT)? Current Test and Evaluation (T&E) Drivers ATRT Approach, Scope, and Strategy Traditional T&E Process Factors ATRT and the Software Development Life Cycle Types of Automated Test Tools STAF/STAX Example Framework Test Tool Implementation and Challenges Benefits and Challenges What is the Way Forward? 2

What is Automated Test and Re-Test (ATRT)? ATRT is a Naval Sea Systems Command (NAVSEA) effort whose objective is to leverage commercial automated testing best practices in U.S. Navy programs to Reduce overall system development testing costs Maintain or improve software product quality Shorten the software certification timeline 3

Current T&E Drivers Mission-critical U.S. Navy software is tested and retested manually, multiple times. Manual testing is costly, and it is difficult to schedule and obtain resources (trained personnel, facilities, and equipment). Multiple deliveries of software and software systems are necessary. Technology insertions and software reuse require additional time-intensive and costly regression testing. Force-level and Net-centric capabilities have added complexity. 4

ATRT Approach and Scope Shift Testing Emphasis To the Left Existing U.S. Navy Development Cycle = Combination of Technical and Business Processes from U.S. Navy and Industry Requirements Development Software Design and Development Component and Multi-component FY06 FY07 FY07 and beyond Subsystem System Systems of Systems: Land-based, Land and Sea, and Sea-based Approach: Incorporate automated testing of software and systems Emphasize commercial tools and technologies Partner with existing automation efforts Emphasize standards and reuse Results: Implement standards to support automated testing Develop automated testing architectures and frameworks Increase partnerships among industry and government for implementation of automated testing 5

ATRT Definition of Automated Software Testing Application and implementation of software technology throughout the entire Software Testing Life Cycle (STL) with the goal to improve STL efficiencies and effectiveness 6

ATRT Spans the Software Development Life Cycle Visual Modeling Design Build Assemble Round-Trip Engineering Development Tools Use cases Components Test Test Support for ActiveX, Java, Common Object Request Broker Architecture (CORBA), and Java 2 Platform, Enterprise Edition (J2EE) Support for Unified Modeling Language (UML) 7

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) 8

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

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

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

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

Types of Tools (Cont d) Life-Cycle Phase Other Testing Life-Cycle Support Tools Type of Tool Test Data Generators File Compare Utilities Simulation Test Management Generate test data Tool Description Find discrepancies between files that should be identical in content Simulates application to measure for scalability, among other tasks Tests management Network Testing GUI Testing (Capture/Playback) Load/Performance Testing Monitors, measures, tests, and diagnoses performance across the entire network Conducts automated GUI tests; capture/playback tools record user interactions with online systems so they may be replayed automatically 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) 13

Test Tool Implementation - Example 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. 14

Current Testing Tools Challenges In-House Software Development: Vendor-provided 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. Vendor-provided tools don t necessarily provide all testing features required; code enhancements are often required to meet testing needs. Vendor-provided tools are not necessarily compatible with system engineering environment, and software testing scripts need to be developed in-house. 15

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

Example - Software Testing Automation Framework (STAF) Open-source automation framework designed with reusable components, called services Makes it easier to create automated testcases and workloads Increases the efficiency, productivity, and quality of testing by improving the level of automation and reuse in individual test cases, as well as in the overall test environment 17

STAF Background Peer-to-peer, Pluggable Test Automation Framework History Created at IBM Austin in 1998 Corporate funded (via QSE) since 1999 Open-sourced (on SourceForge) in 2001 Licensed under the Common Public License (CPL) User Community 220+ IBM teams (world-wide) 180+ external companies 145k+ downloads of STAF and associated plug-ins since 4Q/2001 Consistently ranked as one of the Top 100 projects on SourceForge.net 18

STAF STAF externalizes its capabilities through services. A service provides a focused set of functionality such as logging, monitoring, or process invocation. STAF uses few system resources (install 10 30 MB, memory size 2.5 5 MB, idle 0 percent CPU). STAFProc is a process that runs on a machine (called STAFClient); it accepts requests and routes them to the appropriate service. STAFProc can run on a local machine or on a machine in the test environment peer-to-peer environment. 19

STAF Internal Services DIAG provides diagnostics services Internal ("DIAG") DELAY provides a means to sleep a specified amount of time Internal ("DELAY") ECHO echoes 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 machine Internal ("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") VARIABLE provides a method for maintaining configuration and runtime data (variables) Internal ("VAR") 20

STAF External Services 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 that can be grouped together in a session External (Java) LOG provides a full-featured logging facility External (C++) MONITOR allows a test case 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 User IDs 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++) Executable code code for for external STAF STAF services resides resides outside outside of of STAFProc, for for example in in a Java Java jar jar file, file, a C++ C++ DLL DLL file, file, or or a Rexx Rexx script script file. file. 21

STAX (Streaming API for XML) STAX is an automation system used to automate and monitor the entire test environment, including: System/product setup Test case distribution Test case execution Test case 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 executing jobs A tool (STAXDoc) used to generate documentation for STAX jobs 22

Technologies Used in STAX STAF provides the infrastructure on which STAX builds. The full power of STAF and its services is exposed for use within STAX jobs. XML is the basis for STAX programming language, providing a built-in structure for jobs and a set of tools for constructing jobs, such as XML (aware) editors and XSLT. Python is integrated with Python to provide a rich and accessible data model; this allows access to existing Python libraries. Java allows access to existing Java classes/libraries, providing another source for reuse. 23

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

Some of the Challenges of Automation Technical Problem complexity increases in later phases of testing No tool can replace the operational user stressing the system. System-level testing may involve non-determinism. Tool maturity Tool availability lessens as complexity of testing increases. Automated tools industry is not mature (standardization). 25

What is the Way Forward? As the ATRT business and technical process evolves and matures, collaborate with vendors, U.S. Navy industry community, and other interested partners to Continue to define and develop the ATRT architecture and framework Leverage technical and business concepts from the U.S. Navy Open Architecture effort Identify and develop standards, as applicable 26

Expected Results Implement standards to support automated testing Develop automated testing architectures and frameworks Increase partnerships among industry and government for implementation of automated testing Software delivered to the fleet faster, better, and at lower life-cycle costs! 27

Automated Test and Re-Test 28