2

Doing some research on GIT has me interested that my company isn't using it as a best practice. I recently read through this diagram that is highly recommended by a lot of people and am wondering the following question "Where does the testing take place?" Here is the link for the workflow:

Git branching model by Vincent Driessen

I would assume that testing would take place in the release branch, but I also see a few other places that might require testing. Thanks for your help ahead of time.

2

This greatly depends, but if you only start testing in the release branch its way to late. I think QA should be integrated into the development teams and not as an after thought.

I have worked on two teams who used a similar branching flow as the git-flow from Vincent. I will tell you where we do what kind of testing.

Feature branch (before merged into the develop branch)

  • Add Unit, Integration and Acceptance/GUI-tests
  • Time boxed manual exploratory testing session

Develop / Sprint branch (Feature gets merged here when it meets our Definition of Done)

  • Usability testing
  • Product owners:
    • Plays with the new feature on an automated deployed version
    • Shows potential users the new feature on in online demonstration

Release branch (Develop gets merged here once every (1-3) sprint(s))

  • User acceptance tests (Deploy to client acceptance environment)
  • Manual regression tests (if any)

My current team releases every 3-4 sprints (of 3 weeks long), we also do the following extra testing in a release sprint:

  • Performance testing
  • Security testing

Master (Release gets merged here, when all bugs have been fixed ;-)

  • Upgrade to all clients

Hotfix

  • Manual testing of changes

Automated testing

After a merge to another branch or release we always:

  • Re-run all the automated tests, in order to find any integration issues as soon as possible.
  • Deploy to a staging environment

If possible you want to-do as much automated testing and use a continuous delivery model and release new features as soon as possible. By which you minimize the ammount of manual testing done.

3
  • In which branch would you start selenium type automation? I would assume the release branch because it needs to be as close to production as possible.
    – DEnumber50
    Oct 1 '15 at 16:54
  • To answer that question, ask yourself two questions: how stable do you want the code to be when you start your automation, and how stable do you expect each these branches to be? But really, you should design your Git workflow around your development process, not the other way around.
    – user246
    Oct 1 '15 at 19:56
  • @DEnumber50 In the feature branch, I would aim for atleast 65% code coverage during the feature development spread out over the Unit and your Selenium tests. Making atleast one test during the feature phase will ensure you can in later stages build extra cases on top of this work. Also if defects are found it will be easier to add a couple of tests for these situations, because you already have a single test. Having no test coverage after the feature phase might lead to postponing this forever... Oct 2 '15 at 7:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.