Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 31.087.748 Times

PyUseCase 3.5.1

Company: Geoffrey Bache
Date Added: August 08, 2013  |  Visits: 255


Report Broken Link
Printer Friendly Version

Product Homepage
Download (16 downloads)

PyUseCase is a GUI testing software for PyGTK.<br /><br />Maintainable GUI testing with a Use Case Recorder<br /><br />Recording the intent rather than the mechanics<br /><br />The most natural way to create tests via a user interface is to simply carry out the actions you wish to perform and have a tool that can record them and then reproduce them later. This is a simple and fast way to create GUI tests and there exist many tools that do this.<br /><br />Most tools couple the tests tightly to the GUI<br /><br />The problems start when you have a few tests and your GUI changes. Recording may be a great way to create tests but it's a terrible way to maintain large numbers of them. It is error-prone, frustrating and very time-consuming once you have a few tests. The first generation of tools recorded pixel positions and broke as soon as you changed your screen resolution. Today's tools deal in terms of the GUI mechanics: find a table with a certain name and click in the third column of the fourth row. They can survive screen changes and minor re-arrangements of the GUI but not much else. The recorded scripts are dense and don't convey the purpose of the test, and are a closed book to all non-technical people (and sometimes to everyone except the author of the tool).<br /><br />The problem is essentially one of coupling. The tests and the GUI are tightly coupled to each other and cannot comfortably vary independently of one another. This point is made well by Robert C. Martin in his blog here and his conclusion is that GUI testing is inherently brittle and you should do as little of it as you can get away with.<br /><br />This seems rather defeatist though. There is huge value in being able to demonstrate what your tests do to a user of the system. If the tests bypass the user interface then that process demands a fair amount of technical skill and a lot of trust from the part of your user. And anyway, software developers solve coupling problems all the time. The answer is, as usual, to introduce another level of indirection.<br /><br />Breaking the coupling with a UI map<br /><br />Business people and users generally work in use cases. These are high-level descriptions of a sequence of actions in a language they understand: i.e. that of the domain. The idea of a "Use Case Recorder" is therefore a tool that can record and replay such sequences and thereby capture the intent of the user. This will then allow increased understanding, less dependence on the exact form of the GUI and easier adjustment of existing tests without resorting to clicking all the buttons again.<br /><br />The basic mechanism is that we maintain a mapping between the actions that can currently be performed with our GUI and statements in this domain language. GUI changes then mean that this single mapping needs to be updated, but the tests can remain untouched, continuing to describe what needs to be done on the conceptual level. This mapping takes the form of an external file in PyUseCase 3.0 and the forthcoming JUseCase 3.0, while in older versions it takes the form of instrumentation in the application code.<br /><br />Checking the behaviour via logs and TextTest<br /><br />So our use-case recorder can record and replay usecases for us. But how can we check that what we see on the screen is correct? Most GUI tools do this by allowing the test script to contain "assertions", which look up some widget and check that some property of it is equal to a hardcoded value. This creates yet more dependence on the current GUI layout and cannot be "recorded" in any natural way, but has to be programmed in after the fact. No "usecase" would naturally contain this information : if it did it would turn into a test script.<br />This discussion isn't on the TextTest site for nothing. If we can only get our application to produce a log of what the GUI looks like we can check what it does by monitoring the contents of that log using TextTest. PyUseCase 3.0 does this for you: it generates an ASCII-art type log of the current GUI appearance and monitors changes to it. The application can supplement it with its own logging as it wishes. With other use-case recorders the application needs to build its own log for this purpose currently.<br /><br />Synchronising tests by code instrumentation<br /><br />Almost all GUI testing efforts are plagued by problems with making sure the script waits long enough before proceeding when something happens in the background. The solutions range from arcane ways to wait for some widget to have a certain appearance (yet more dependencies on GUI-mechanics) to "sleep" statements liberally scattered around. Which fail when the system is loaded and cause the tests to run much more slowly than they otherwise would. Anyone without intimate knowledge of the code is ill-equipped to solve such problems, yet doing so is a vital part of writing tests.<br /><br />Use-case Recorders introduce the concept of an "Application Event". This is basically some instrumentation in the code that indicates to the use-case recorder that something has happened that needs to be waited for, thus allowing the recorder to record and replay waits as well as clicks. These are described in more detail here.<br /><br />Recording macros as well as tests<br /><br />High-level, easily manipulated "usecases" are useful for other things than testing. They are also extremely useful for users of the system who can create their own macros for sequences of actions they perform frequently.<br /><br />These are known as "GUI shortcuts" here. A Use-case recorder will typically allow an application to request a "toolbar" from it which contains controls for recording and replaying them which can be inserted into the application GUI as desired. Besides allowing users to create macros, they can also be used to create even higher level abstractions for the "test language" described above, aiding testers in performing repeated actions to reach a certain screen for testing. These are described in more detail here.<br /><br />More information can be found on project's home page.

Requirements: No special requirements
Platforms: Mac, Mac OSX
Keyword: Consisting Descriptive Framework Generic Implementations Interpret Mapquot Mechanics Names Producing Pygtk Quotui Quotusecasesquot Recording Requests Tkinter Wxpython
Users rating: 0/10

License: Freeware Size: 921.6 KB
Programming  -  Generic Protocol Framework 1.0 RC1
Generic Protocol Framework aims to allow users to rapidly prototype different emerging communications protocols. Implementations can be easily "dropped in" and tested independant of a finished product. Testing on both the end product, and the...
9.22 KB  
Development Editors  -  Microsoft .NET Framework 3.5 SP 1
Microsoft .NET Framework 3.5 contains many new features building incrementally upon .NET Framework 2.0 and 3.0, and includes .NET Framework 2.0 service pack 1 and .NET Framework 3.0 service pack 1. Overview .NET Framework 3.5 builds incrementally...
2.7 MB  
Utilities  -  High Performance Linpack 1.0a
HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the High Performance...
512 KB  
Libraries  -  ViennaCL 1.2.1
ViennaCL provides high level C++ interfaces for linear algebra routines on CPUs and GPUs using OpenCL. The focus is on generic implementations of iterative solvers often used for large linear systems and simple integration into existing projects.
4.01 MB  
Business  -  OpenChange 0.4
Openchange project intends to provide an Open-Source implementation of Microsoft Exchange Server 2003 under Unix Platforms. The Openchange Project is developed in C language under the BSD license, and will primary work on NetBSD, OpenBSD,...
716.8 KB  
Programming  -  Generic Repository 1.5.2
The Generic Repository (grepo) is an open source (ASLv2) framework for Java which allows you to access (database) repositories in a generic and consistent manner. Using grepo, it is generally no longer required to provide all the boilerplate code...
256 KB  
Utilities  -  Query Object Framework 0.7.2
QOF, the Query Object Framework, provides a set of C Language utilities for performing generic structured complex queries on a set of data held by a set of C/C++ objects. Query Object Framework is unique in that it does NOT require SQL or any...
696.32 KB  
Development Tools  -  Generic PHP Framework 0.9.0
Generic PHP Framework is a library of reusable classes for PHP applications. The idea is to grow this framework into a great foundation for writing large applications in PHP. How Does gpfr Differ From Other Frameworks? gpfr aims to become a great...
Content Management  -  Wiki Type FrameWork for Scripts 0.20.2
WTF is not a Wiki engine, although it can be used as one. It is actually a generic web content management engine allowing you to create web documents easily from the comfort of your browser. If you must compare it to something, consider it a cross...
102.4 KB  
Programming  -  Scope: a generic HMVC framework rc
Java framework built on a generic implementation of the Hierarchical Model-View-Controller pattern for component based development, independent of the view technology. Supports Servlet, JSP, XML-XSLT and Swing applications.
91.61 KB  
Macintosh Software  -  ManyCam for Mac 6
ManyCam is a free Webcam software and a screen recorder for anyone to use. Several feature enhancements are included within ManyCam to produce a professional quality live video production. It can connect a desktop, smartphone, tablet and live...
90.49 MB  
Macintosh Software  -  MacX Free Rip DVD to QuickTime for Mac 4.1.9
MacX Free Rip DVD to QuickTime for Mac is totally free yet versatile DVD to QuickTime ripper software for Mac users to free rip both normal and copy-protected DVDs to QuickTime MOV, MP4 on Mac with excellent image quality. Besides the powerful...
36.3 MB  
Macintosh Software  -  MacX QuickTime Video Converter Free 4.1.9
MacX QuickTime Video Converter Free Edition is the best program designed for Mac users to free convert almost all HD videos and SD videos to QuickTime accepted formats on Mac with first rate quality.The input file formats covered by this powerful...
23.11 MB  
Macintosh Software  -  MacX Free Apple TV Video Converter 4.1.9
MacX Free Apple TV Video Converter is a 100% free video to Apple TV converter software which enables you to free convert most popular videos like AVCHD, MKV, M2TS, AVI, MPEG, WMV, FLV etc to Apple TV compatible format like MP4 format on Mac OS. In...
22.89 MB  
Macintosh Software  -  MacX Free DVD to PSP Converter for Mac 4.1.7
Looking for a solution to convert DVD to PSP for free? MacX Free DVD to PSP Converter for Mac is a 100% free DVD to PSP converter software which can assist you convert any DVD including copy protected DVDs to PSP supported MP4, H.264/MPEG-4 AVC...
36.26 MB  
Programming  -  MacX Free iMovie Video Converter 4.1.8
MacX Free iMovie Video Converter is a professional free iMovie video converter for Mac that can convert any SD and HD videos such as M2TS, MKV, AVI, WMV, FLV, VOB, 3GP and more to iMovie accepted video formats MOV & MP4 for importing to iMovie...
22.92 MB  
Programming  -  SwapList 0.1 Alpha
Java list implementation that swaps list items to a disk file in order to avoid out-of-memory error.
10.24 KB  
Programming  -  Mano 1.05 Beta
Mano is a makeFile navigator containing a tree grouping the targets.
20.48 KB  
Programming  -  Workhorse 1.2
Workhorse automates tedious file transfer and deletion tasks. Just tell it when or how often you want it to run, fill in the details, and let it do it's job! Do you know Applescript? Use Workhorse to run your scripts at a given time or interval....
225.28 KB  
Programming  -  PLT Scheme (formerly DrScheme) Darwin (PPC) 4.2
PLT Scheme is an interactive, integrated, graphical programming environment for the Scheme, MzScheme, and MrEd programming languages. PLT Scheme provides source highlighting for syntax and run-time errors, support for multiple language...
38.27 MB