- Project tools
-
-
- How do I...
-
| Category |
Featured projects |
| scm |
Subversion,
Subclipse,
TortoiseSVN,
RapidSVN
|
| issuetrack |
Scarab |
| requirements |
xmlbasedsrs |
| design |
ArgoUML |
| techcomm |
SubEtha,
eyebrowse,
midgard,
cowiki |
| construction |
antelope,
scons,
frameworx,
build-interceptor,
propel,
phing
|
| testing |
maxq,
aut
|
| deployment |
current |
| process |
ReadySET |
| libraries |
GEF,
Axion,
Style,
SSTree
|
| Over 500 more tools... |
|
testgen
Project home
If you were registered and logged in, you could join this project.
The project currently is named TestOracle, I'll soon be renaming it to TestGen as "TestOracle" gives the project a wrong impression. I'll try to be consistent with the project name through out the site.
Description
TestOracle is a very powerful program that allows developers to quickly
generate test data for their web-services before publicly or internally releasing the web
service for production. Having a code tested has many intrinsic advantages, including
less buggy code and reduced time in fixing and finding these bugs later.
There are many products in the market today to automate generating test
data, including DataTect. However,
some of the major disadvantages and limitations of all these commercially
available products make TestOracle a unique-first of its kind-product.
For instance, commercial program are not only expensive (at least
$600+ per license) but are also limited to producing only scalar data
(i.e. records of a database table), and thus can not produce data for complex
data objects. Complex objects include are formal function parameters, which can include
complex n-level object hierarchy(s).
Comparison
Sample Input for Commercial Programs (e.g. DataTect):
function
(int companyID, String companyName, String Location, double stockPrice, DateTime beginDate)Sample Input for TestGen:
function (Company companyObject)
| Parent Object Name |
Child Object |
Child Object Type |
| Company |
CompanyID |
Integer |
| |
CompanyName |
String |
| |
Location |
String |
| |
StockPrice |
Double |
| |
BeginDate |
Date |
| |
Departments |
Array of Department objects |
| |
|
|
| Department |
DeptID |
Integer |
| |
DeptName |
String |
| |
BuildingLocation |
String |
| |
ManagerName |
String |
| |
Employees |
Array of Employee objects |
| |
|
|
| Employee |
FName |
String |
| |
LName |
String |
| |
EmployeeID |
Integer |
| |
DOB |
Date |
| |
Salary |
Double |
| |
... |
|
Goals
- User Acceptance: The program should be easy to use (GUI), and should
be simple enough for a novice user to use and also at the same time
powerful enough to for an expert user to take advantage of all features with ease (less than 2-3
mouse clicks). The interface should also use the GUI standards
that are widely used in other popular software to make users more
comfortable with the program (e.g. tree structure, standard keyboard
shortcuts, etc.). It would be pointless if the developers, testers, and
QA engineers find the program's logic hard to understand.
-
Expandability: From development perspective, one should not have to
invest enormous amount of time to tailor the program to his/her
company's specific needs.
- Efficiency: Whether one is generating 100
test cases or 100 million test cases, the program should operate
efficiently and also properly manage resources.
- Robustness: TestOracle should also be robust against bad user-inputs
(though keyboard, invalid input files, external errors - database
connection failures, and also internal errors)
- Simplicity: TestOracle should that be easy to understand and use,
provided that the user has at least a limited understanding of basic programming
concepts.
- Dynamic-ness: The program should offer options to personalizing inputs and outputs without having to re-implement the code.
- Separation of Concern: Modularize the development such that, though
components communicate with each other, they are independent from each
other for computational logic.
How it Works
 |
After you
install TestOracle, you're ready to start
using it. Installation will put an icon on your desktop and also create an
icon in the Start Menu. |
| |
See Screenshots for
graphical navigation. |
| |
|
| |
Basic navigation |
| |
|
What |
How |
|
Open a WSDL file |
Select File > Open Existing Project |
|
Load a function |
From the dropdown list, select a function and click "Load" button
next to the dropdown list. |
|
Specify parameter data randomization options |
From the parameter tree, select a primitive parameter object (date,
number, string, enumeration). From the option pane on the right,
select data source, randomization options and any other specific
options for the selected data type. |
|
Delete an array element |
Select the array element and click Delete on the keyboard or
select respective option from Edit menu. |
|
Connect to Database |
Select Edit > Establish Database Connection. Specify data
source types, user name, password, and data source. Click Connect
to connect. |
|
Specify values from database for a parameter |
Once you've connected to database, select the parameter you want
to specify options for, select "Choose from Database" for source,
specify table name, column name, and the amount of data to
retrieve (in percent). Click "Save Changes" |
|
Expand/Collapse Parameter Tree/Branch |
Select appropriate option from View menu. |
|
Export |
Select Export > Start Export. From the next window, specify
file path, overwrite/append option for existing file, the number
of test cases to generate. Click Approximate Time & Space to view
approximate disk space and time required to finish export. Click
Export to begin. |
|
Bugs and Suggestions
If you find a bug in TestOracle, or you have a feature request, please register and join the
project. That gives you the ability to enter data into our Issue Tracker.
You can
contact me directly to if you experience any difficulty in getting in
touch with me using Issue Tracker. I highly recommend using Issue Tracker
as it can help not only me but also other developers/observers by making
them aware of the outstanding issue(s). Contribute!
Currently I'm the only one developing the project (Malhar Shah). The
project is overseen by Jason Robbins. I'll greatly appreciate your support
in further taking the TestOracle to a higher level of standard. Start by registering or logging in. Registration
is very simple, and simply validates your email address. Then request to
join
the project, and download the CVS tree from tigris.org.
Anticipated Changes in the Upcoming Version(s) |
| Supported Languages (WSDL, Java, VB.net,
C#) |
| Sample data (e.g. names, cities, ___ID,
...) |
| Oracle Connectivity |
| Specify equation for manual entry using
regular language |
| Handling inherited object types |
| Ability to specify criteria for multiple
parameter of similar types at once |
| Export to data formats (flat file, Excel,
database) for non-complex hierarchies |
About the Project
TestOracle was initiated as a project in upper division Software
Engineering course (ICS 125) at University of
California, Irvine, School of
Computer Science. Please see the About section of the program from
Help menu for credits.
| |
Past Contributors (excluding myself) |
|
Andy |
Jason Robbins |
|
Bindya Shah |
Sam Robertson |
|
Khoi Phan |
Twie Tran |
|