Version 1 (modified by Frederico Caldeira Knabben, 13 years ago) (diff)


Bug Ticket Handling Workflow and Tests

We use git to handle our tests repository. This gives use great flexibility when dealing with tests creation and quality assurance. This page exposes the way we work with it when dealing with our bug tickets.

The basic idea is that our "master" branch must remain stable, with all tests PASSing. In the other hand, we have several ticket branches that FAIL because of the new unstable tests added to them. Checkout CKEditor-Tests.git? for more information on how to work on our tests repository.

The following is a simplified description for our ticket handling workflow:

  1. A new bug ticket is created. (Status "new").
  2. Ticket cleanup is performed (title, description, fields, etc.). This may happen together with step 3.
  3. Ticket confirmation:
    1. The issue can be reproduced. (Status "confirmed"). Go to step 4.
    2. Other resolutions: "pending", "invalid", "duplicate", "wontfix" and "worksforme". Stop here. Feedback may be provided by the reporter later.
  4. Ticket Tests created:
    1. A dedicated test branch is created for the ticket. All added and changed tests will end-up on that branch. The branch name pattern is "t/<Ticket Number>".
    2. Ticket tests must reflect the exact steps to reproduce the ticket issue, not tests for the root of the problem. Design tests may be created on very rare cases (usually when reporting API issues).
    3. It may not be possible to create automated tests for this tickets. In that case, a manual test is required.
    4. All test additions and changes must be documented with a ticket comment pointing to the hpp://ckeditor.t/ URL relative to the tests.
    5. All new tests must FAIL at this stage.
  5. Analysis phase. (Status "accepted")
    1. New tests could come out on this phase, either ticket tests or design tests. All of them must end-up at the ticket test branch.
  6. A patch is provided:
    1. All new tests must PASS with it.
    2. Status: "review".
  7. Review is performed.
    1. After applying the patch:
      1. Check whether all automated tests pass (including new ones). This is run on the ticket test branch.
      2. Check whether new manual tests pass.
      3. Check whether the new tests are correct for that ticket.
      4. Check the patch code, to accept the proposed changes, API changes/additions, coding style, performance impact, etc.
    2. The reviewer is free to make changes to the proposed tests and add new tests as the result of the review, documenting it on comments. This helps also on justifying failed reviews.
    3. Review PASSED. Go to step 8.
    4. Review FAILED. Back to step 4 or 5.
  8. Commit:
    1. Commit the patch into the SVN.
    2. Merge the ticket test branch on master.
    3. Delete the ticket test branch.
  9. Close the ticket.

© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy