Fork me on GitHub

Development Workflow

Branching, committing, merging and pull requests.

The main milestones are as follows:

  1. Test Initiation

    • branch out from master

    • create a class to hold the code, naming it accordingly

    • create a method to hold the test (its name is not important)

  2. Test Complete – code compiles, runs, fully covering its case

    • the entire class must run at once and generate pass/fail per method

    • must generate a readable JGiven report (something that a manual tester could execute)

    • commit and push – you may do this repeatedly

  3. Test Integrated – code compiles and runs with other's people code changes

    • merge-back from master, it might have impacting changes

    • clean and compile everything, ensure your test still runs

    • fix as needed, commit and push

    • pull request

    • apply code review fixes, commit and push

    • merge-forward into master

    • let the branch open for further fixes and/or changes

  4. Maintenance – we have nightly test jobs in Jenkins to run all regression tests and also a dry run job just to see everything compiles and configures correctly

    • if a test fails, it is the owner's responsibility to understand why and deal with it accordingly (fix it or report defect)

    • if the test case changed, it is the owner's responsibility to implement these changes and re-integrate

    • maintenance will occur on same branch as described in #3 above

The above can be summarized as follows:

  master ----------------+-----------+--------------------------------+--------
                         |branch     |                                |merge-forward,
                         |           |                                |check the nightly test
                         |           |merge-back,                     |
                         |           |fix conflicts & test            |
  test-X                 +-----------+--------------------------------+-------> maintenance
                          initiated   completed                       |integrated
                                                                      |pull request
                                                                      |code review fixes

Next: Tutorials Prerequisites