Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Project

...

Goal

...

The

...

goal

...

of

...

this

...

project

...

is

...

to

...

deliver

...

an

...

automated

...

functional

...

testing

...

framework

...

for

...

the

...

OFBiz.

...

This

...

framework

...

assist

...

developers

...

to

...

add/remove/run

...

test

...

cases

...

which

...

simulate

...

real

...

users'

...

behaviors.

...

Design

...

and

...

Implementation

...

The

...

system

...

basically

...

consists

...

of

...

five

...

basic

...

components,

...

they

...

are

...

:

Image Added

A page is a collection of any number of those five components:

Image Added

A testcase is constructed by two portions: the expected outcome and scripts of action. The expected outcome can be deduced by comparison of page's title, appearance of one pop up, content of an error message, etc. The latter specifies sequences of action: input a string into one text field, then tick a box, select a radio button, click a button, etc.

Image Added

Documentation

  • Notes

    • 07/05/2012 - 11/05/2012:
      • download Jenkins and get familiar with it.
      • how to ask Jenkins to start one OFBIZ instance
      • install the Gradle plug-in for Jenkins
      • write a build.gradle file to grasp all dependencies.
      • write one test case(test to pass) of log-in page
      • setup project repository using Github
      • Difficulties:
        1. Configure jenkin to start on a different port compared to that of the OFBiz
        2. Connect local repository and remote repository
    • 14/05/2012 - 15/05/2012:
      • Refine Gradle build script
      • Jar the project
      • Configure jenkin to start an instance of OFBiz and run the test via the jar
      • Difficulties:
        1. decide which approach is easy to maintain and extend: go by page(one page contain many test cases) or go by case(one case cover a single scenario). The first approach requires a few huge classes. The second approach requires great pool of tiny classes, yet easy to distribute cases.
    • 16/05/2012 - 17/05/2012:
      • Decide to move on with the second approach which is implementing one test case as an individual file.
      • Come up with first draft XML template of test case:
        • Header (Title, description of test case)
        • Input (describe what page is tested, what page needs to fill in before reaching the desired page, and the input for each field)
        • Output (describe what is expected, with/without error, content of error message(if any), or one event(pop up of one dialog))
      • Difficulties:
        1. So many variables to control, perhaps try to come up with one template first, then refine it time after time.
        2. Answer the question: It is fine if user enter test case via Java code, but how does he/she do it if go for XML approach ? Or I would tackle the Java case first, then slowly change it to XML.
        3. Let say if there is huge number of test cases, how to effectively manage them ? Yes, by assigning each test case/class to proper package, but still it is discrete.
  • Others

    • Project source code can be checked out at : git@github.com:luvinhthinh/OFBIZ_FT.git

...

    • How to start up an OFBiz instance with Jenkins:
        1. Start up the Jenkins
        2. Create a new free-style job, give it any name you'd like: OFBIZ_FT
        3. Under the Build, click 'Add Build Step', select 'Invoke Ant'
        4. Click 'Advance', enter Targets as 'run-install run' and Build File as "'The location you store the OFBIZ'/build.xml"
        5. Click Save