Development Workflow
Branching, committing, merging and pull requests.
The main milestones are as follows:
-
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)
-
-
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
-
-
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
-
-
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