OVERVIEW



GO

GO

GO

Repro dynamically instruments applications so you don't have to write out long and tedious bug descriptions after you've found a bug. 

In addition to testing, Repro is good for getting bug or trouble-tickets from users and reverse-engineering 3rd party applications and protocol implementations.

Repro is not an automated test suite; it is not a "script and playback" type application; it does not represent a "paradigm shift" in the way that you develop software; it does not require that you purchase and maintain additional servers or hardware; it barely even requires you to learn anything new.

Software is supposed to make people's lives better. Repro definitely qualifies as improving lives. More importantly, it improves the lives of people who in turn are working to improve lives. It's a meta-life improver.

Download >>
How it works >>

Testing Tool Landscape

Type of Tool
Description
Tools
Test Management Tools Assist in planning, designing, implementing, executing, evaluating, and managing the test activities or artifacts Rational TestManager
Mercury TestDirector
Compuware QADirector
TechExcel DevTest
Static Measurement Tools Analyze information contained in the design models, source code, or other fixed sources. Gimpel PCLint
Parasoft CodeWizard
Compuware SecurityChecker
Script and Playback Tools Test data is acquired during the recording of events. Later, during test execution, the data is used to playback the test script. Mercury WinRunner
Mercury QuickTest
Rational Robot
Seapine QAWizard
Compuware TestPartner
Dynamic Measurement Tools Perform an analysis during the execution of the code. The measurements include the run-time operation of the code such as memory, error detection, and performance.

QA Testing

Repro

Developer Testing
Compuware BoundsChecker
Sysinternals tools

Defect Tracking Tools Provides activity-based change and defect tracking for many types of change requests, including defects and enhancements. Bugzilla
Seapine TestTrack Pro
Rational ClearQuest
Elisnore Visual Intercept
Mercury TestDirector

Repro Architecture

What does Repro Dynamically Instrument?

DESKTOP VIDEO

The primary data acquisition component for tracing user actions is desktop video. Similar to web conferencing software, the desktop video data acquisition component detects graphical changes on the desktop and copies them to the cyclic buffer. Of all the capture components, desktop video capture can have the most impact on host machine processing and memory usage. You can configure the frame rate for the video capture along with other parameters in the Preferences in order to obtain the right capture/performance balance for your testing environment.

SYSTEM OPERATIONS

By capturing system operations, Repro can trace the main flows of program execution, much like a stack trace in a developer's debugger. This trace is based on dynamic binary hooking technology that enables Repro to intercept your application's win32 API calls without modifying the application source code. System operations are instrumented at extremely low overhead to the test environment. Profiling calculations indicate a 0.5-0.75% CPU overhead depending on the system call.

There are 7 different system operation categories instrumented and captured in Repro Pro:

  • Disk -vfile create, delete, open, read, and write operations.
  • Internet - connect, listen, accept, send, and receive operations.
  • Exceptions - exceptions.
  • GUI - mouse clicks.
  • ODBC - connect, execute, prepare, bind, row count, fetch, and fetch scroll operations.
  • Registry - create, open, delete, set value, query value, delete value, and close key operations.
  • Custom Messages - in C++ programs, calls to OutputDebugString() are recorded. You can sprinkle your own custom messages that you want to see in the Repro.

The dynamic instrumentation technology has been designed such that Repro can be started or shut down at any time during test application execution. You can launch Repro and start monitoring the system operations of an application that has been running for days. In addition, each system operation instrumentation can be turned on or off at any time during the execution of the instrumented application.

PERFORMANCE COUNTERS

The performance counters are used to pinpoint performance related problems. Repro can capture performance data for hundreds of system resources, including:

  • Process CPU utilization
  • Process memory utilization
  • Disk activity
  • Network activity
  • Handle Count
  • Hundreds more

Because there are so many resources whose performance might be of interest to your test, you must specify in the Preferences which resources to capture. The Performance Counter information is displayed graphically in Repro, and you can export the data that makes up the graphs directly to Microsoft Excel for further processing or integration with other applications.

SYSTEM INFORMATION

Repro captures system information (including hardware information, software information, and a list of all running processes) at the precise time a bug occurs. The information is presented in a sorted hierarchy, along with a search feature. You can dump this data to an XML file for integration with other applications.

What Applications does Repro Work With?

Repro dynamically instruments and captures all Windows applications, regardless of platform technology or component model. Technologies Repro has been tested with include:

  • .NET programs
  • Java programs
  • VB programs
  • C++ programs
  • Web based programs (just record your browser)

Instrumenting system operations does have one constraint: only applications that have a "window" are supported in Repro. Services, console applications, and other forms of Win32 applications without a window will not have their system operations instrumented.

Supported Platforms

  • Windows 2000
  • Windows XP
  • Windows 2003

Technology

Repro is designed to meet the following high-level requirements:

  • Digitally instrument the native operating environment;
  • Fit naturally into existing software development and support processes;
  • Require no changes to the applications being tested or the test environment;
  • Minimize the size of the file in which the captured information is stored;
  • Support the widest possible array of language and component technologies;
  • Provide a flat learning curve such that Repro can be installed and used effectively immediately following installation;

At the centre of the data acquisition process is a cyclic data buffer. Each component feeds information back to Repro which stores it in this buffer. The buffer has a first-in first-out structure, and the number of minutes in the buffer is configurable in the Preferences. Note that this design does not necessarily mean the buffer has a constant size. The size of the buffer will vary depending on the quantity of captured information stored in it. However, if the quantity of information captured per unit time is more or less constant, then the buffer will tend to stay at a constant size.

When an event occurs that you would like to view as a 'Repro', Repro will stop captureing and display the content of the capture buffer. The information captured from each capture component is displayed in its own window, allowing for a synchronized and integrated presentation of a large volume of information. This view is entirely customizable, so if your tests are focused on certain types of capture more than others, you can customize the view accordingly. The following image displays a 'Repro' in playback:

 

When viewing the captured information with Repro you can pan forwards and backwards through the video, while drilling down on performance, configuration, and system operation information. At this stage you can trim the length of the 'Repro' to pinpoint the part that best communicates the problem. Comments can be added to further annotate the bug.

When you are satisfied with the 'Repro', you save it in as a 'Repro' file. Repro uses highly optimized codecs to minimize the size of the resultant 'Repro' file. This file contains all the information required to demonstrate a complete and correct "reproduction" of the bug.

The 'Repro' can be emailed to a team member, stored in a bug database, or collected in a shared directory.

Repro Analyzer is used to view the 'Repro'. You will immediately recognize the view onto the information provided by Repro Analyzer - it is the same as that provided by Repro when trimming the buffer. In Repro Analyzer you can further trim and annotate the 'Repro', and the new information is added to the same 'Repro' file.

Future

Here are some of the things that will be added to future releases of Repro:
- Hook console and Win32 service processes for tracing system operations
- Expand exception tracing to include additional data about the exception and include other types of exceptions (e.g. .NET exceptions)
- Catch unhandled exceptions and display stack trace in system operations
- Expand the database hooking to include the full set of Microsoft supported database access technologies
- Cache the record buffer to disk to support recording of long running processes
- Jump directly from a system operation to the corresponding line of code in MsDev
- Play a Repro backwards
- Add comments, pop-ups and scribbles on the Repro along the timeline

$99






Site Map | Contact | Privacy Policy | Terms of Use   

Copyright © 2004 Repro Software™