Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Hi all,

Referring to the attached discussion thread initialed by Jean-Baptiste (great
thanks!), we are trying to make testcase management tool Litmus
(https://tcm.documentfoundation.org/run_tests.cgi) better managed and
organized. The following explained all current states. As usual, comments are
welcome! Thanks for all the support!

[For QA people running cases]

    The run created by new method for 3.4.1:

        https://tcm.documentfoundation.org/run_tests.cgi?test_run_id=13

    Basically no practical changes from before. Meanwhile please
    notice:

    a. make sure the build version you are using is suitable for
    the corresponding test run. For example, for the test run

        - LibreOffice 3.4.0 RC Regression test

    libreoffice build 3.4.0.x is needed.

    b. Please make sure the platform, operating system and build
    id information, which should be filled before the testing,
    exactly reflecting the testing environment.

    c. Attaching a bug id to a failed case result would be very
    nice!

[For Litmus admins]

    We are trying to make every thing much more clear and easy to
    update. The current test case organization changes:

    a. Divide test case set to Regression test and New Feature
    test ([1])

    b. Regression Test

        A branch *Master Regression TC* was created
        specifically. So that we can all work on a consistent
        test case base, from which new branches can be always
        *cloned*.

        Keep all new/updated cases in this branch would be
        necessary to make everything inside reusable.
        
        That is to say, we use the Master branch to keep a
        reusable and continuously maintanable test cases storage,
        but NOT for creating test runs.

        When a new build (big version as x.x) will come, we

            1. clone (Recursively) a new regression test branch
               for the build from Master branch, like

               3.4 Regresstion Test (branch)
               3.5 Regresstion Test (branch)

               ...
                
            2. through the branches, create a test run for the corresponding
            builds:

               libreoffice 3.4.0 rc regresstion test (run created from 3.4 branch)
               libreoffice 3.4.1 rc regresstion test (run created from 3.4 branch)
               libreoffice 3.4.2 rc regresstion test (run created from 3.4 branch)

               libreoffice 3.5.0 rc regresstion test (run created from 3.5 branch)
               libreoffice 3.5.1 rc regresstion test (run created from 3.5 branch)
               libreoffice 3.5.2 rc regresstion test (run created from 3.5 branch)

                ...

            *NOTICE*
            
              If some new cases needed, please create them in the
              Master Testcase branch. Thus we can use the new
              regression test case set next time creating
              branches([2]).

              I have noticed a new set of pt-BR test cases
              created in '3.4 Regression test' branch today, I will
              'sync' them to the Master branch later.

    c. New Feature Test

        A branch *Master Feature TC* was created
        specifically. This is more like an outline without cases
        (but with group subgroup info) filled in. So for each new
        big version (x.x),

            1. clone from the Master Feature branch:

                3.4 Feature Test (branch)
                
                3.5 Feature Test (branch)
                
                3.6 Feature Test (branch)

            2. we create a single run for each big version:

                libreoffice 3.4 feature test (run created from 3.4 branch)

                libreoffice 3.5 feature test (run created from 3.5 branch)

                libreoffice 3.6 feature test (run created from 3.6 branch)

                ...

            3. we 'seek' and write new feature cases in the
              corresponding subgroup according to git log,
              mailing list, release notes or so.

            4. we update important feature case to Master
               Regression TC branch

[Footnotes]

    [1] Regression and Feature test are there for quite different
    purpose:

        The Regression test would hold relatively stable set of
        test cases, which should be ran in each of the release
        build.

        The New Feature test would be dynamically changed based
        on a big version update (3.3->3.4). Meanwhile New feature
        test might be run from even early development build
        phase.

    [2] As you may notice, by this process we didn't really
        change the running branch.  However I didn't find an easy way
        to sync test cases between branches :( A workaround method to
        'link' new test cases is:

        1. Add a new test cases in the Master branch, and
        assign the cases to a proper subgroup

        2. Edit current running branch's subgroup to link a new
        case from the Master branch to the current running
        one. (manage subgroups -> select Product as libreoffice
        and Banch as currently running -> edit subgroups ->
        manage testcases for this subgroup)

        Please also let me know if things could be better.

-- 
  Yifan Jiang
  Libreoffice
  Contact: yifan - irc.freenode.net/libreoffice
  =============================================  
  http://www.libreoffice.org/
  http://www.documentfoundation.org/

--- Begin Message ---
Hi Jean-Baptiste,

    Thanks for the nice ideas and suggestions! My comments as below.

Hi All,

    This discussion is probably leading the next step we will adjust test case
    management (Litmus) structure of Libreoffice, ideas and experience sharing
    are welcome :) And I will summarize where we will go finally.

On Mon, Jun 13, 2011 at 01:54:46PM +0200, Jean-Baptiste Faure wrote:
Le 13/06/2011 12:47, Yifan Jiang a écrit :
Hi Yifan,

I think we should do some simplifications in Litmus.

Yes! we need to adjust it to a more explicit way :)

In fact I do not understand well how branches are supposed to work in
Litmus. When you manage testcases and testgroups, you can see that there
is no one in all branches but only in branch 3.3.1 (in Litmus meaning).

You are right, the branch information is from an relatively old test case set
(3.3.1). What I did for current runs is simply branch from an old test run
without touching test cases. So currently we have a simple set of testcases
reused everywhere. This actually needs to be improved.

On the other hand when you manage the testruns you can see that each one
contains the three testgroups defined in branch 3.3.1 (EN, DE and FR
testgroups).

Ye, a bit confusing :)

It seems to me that it would be more clear and easy to manage if we
defined things as follows:
- branches corresponding to x.y versions of LibreOffice: 3.3, 3.4, 3.5,
and so on.
- the branch x.y+1 would be defined by cloning the x.y branch and next
adding new testcases needed by QA of the new functions implemented in
the x.y+1 version.

My thinking is to:

    1. have a relatively stable regression test case set which cover most
    important function areas such as installation, launch, file open, save
    etc.

    2. have a changing feature cases (new functions) with the
    evolution of Libreoffice builds. These cases can be various among
    different Libreoffice build. And we can start testing features from beta
    phase.

- we manage RC and bugfix versions (x.y.1, x.y.2, etc.) only by creating
dedicated testruns: there is no reason to change the testcases set when
we pass from version x.y.0 to rc x.y.1 rc1 to bugfix x.y.1 to ... etc.
So there is no reason to have a new branch for a new rc or bugfix
- we need to define the buildID for each testrun, which does not seem to
be the case at this moment.

Great idea! Actually we may not really want to have big change of regression
test cases set even between big versions as x.y and x.y+n.

A problem is if it is worth to repeatedly run regression cases in diffrent rc
builds unders the same big version? My initial thinking about this is to
define a rc test run for each minor version build, QA could run the tests
always on the corresponding latest rc build they have. This is based on the
assumptions:

    1. code change between rc release would be safe

    2. currently we have not enough resource to repeatedly run all regression
    tests on each rc build.

But I guess it is not a big problem since when can always clone between rc
runs, the matter is how to define the run name. How about let us use 'rc' only
at very beginning and see if they are going well. Then we can expand the test
dedicating to specific rc builds if needed.

According to that, we would have:
- 2 branches 3.3 and 3.4
- for the branch 3.3 :
      + one testrun 3.3.3-rc1
      + one testrun 3.3.3-rc2
- for the branch 3.4 :
      + one testrun 3.4.0
      + one testrun 3.4.1-rc1
      + one testrun 3.4.1-rc2
      + etc.
      + one testrun 3.4.2-rc1
      + etc.
- then a branch 3.5
      + etc.

Here is my thinking based on your proposal:

Take into consideration libreoffice build 3.3 and 3.4:

Branches:

    - 3.3 Regression test branch (assuming it contains stable regression cases
                                  written from scratch)

        + Test run - 3.3.0-rc regression test 
        + Test run - 3.3.1-rc regression test 
        + Test run - 3.3.2-rc regression test                

        ...
    
    - 3.3 New Feature test branch

        + Test run - 3.3 feature test ( new features in 3.3 build )

    - 3.4 Regression test branch (containing stable regression cases, could be
                                  cloned from 3.3 and did some improvement)
    
        + Test run - 3.4.0-rc regression test 
        + Test run - 3.4.1-rc regression test
        + Test run - 3.4.2-rc regression test

        ...
    
    - 3.4 New Feature test branch

        + Test run - 3.4 feature test ( new features in 3.4 build )

I think we need to agree on the general organization before
that the system has become too big and too widely used.
I can do these modifications if we have a general agreement.
As that assume to remove several branches and to rebuild testruns, it
would be prudent to not be several to do changes at the same time.

That'd be great and thanks for your offer of help! Meanwhile we won't want to
lose the existing testing results data :)

What do think about this proposal? Did I overlook some point which make
my beautiful organization completely stupid?

They are indeed beautiful, I appreciate your ideas! :) Thank you!

Best wishes,
Yifan

-- 
  Yifan Jiang
  Libreoffice
  Contact: yifan - irc.freenode.net/libreoffice
  =============================================  
  http://www.libreoffice.org/
  http://www.documentfoundation.org/


--- End Message ---

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.