User:Oldman/A layman's guide/Regression testing
The ISO files now come in the file format shown below.
reactos-bootcd-0.4.7-dev-571-gc22817d-x86-gcc-lin-dbg.7z reactos-bootcd-0.4.7-dev-571-gc22817d-x86-msvc-win-dbg.7z c22817d
To do a search at the getbuilds page (https://www.reactos.org/getbuilds/) you only need the portion shown in the last line (above).
Because of the way that Git tracks commits to the source tree, you can no longer use numbers in the same way that you could with SVN. So if you have tried a revision some days ago that was good and did not have the problem, then you can get the reference code (as shown above) from this good revision, then the reference code from the bad revision that exhibits the problem. Using these two numbers, you can then do a search at the getbuilds page (https://www.reactos.org/getbuilds/).
To do a search, just uncheck all the boxes that are not required, put the two codes in the input box, with a dash between them, like so: 48fe086-74cc915, then click the search button. The search will then list all the revisions between and including the ones typed into the search input box.
You are advised to copy paste the search results into a Text Editor, for further reference, unless you keep the page open with search result in.
If you know that you have tested a good revision in the past, but cannot remember it's revision number, then you can list all the bootcd files at https://iso.reactos.org/bootcd/.
We will assume that revision 74cc915 has a regression, so it is the ' bad ' revision, you will need to find a ' good ' revision.
Using revision 74cc915 as the bad reference point, using the list of ISO files, go back in increments of 100 or one week, installing and testing them, until you find the ' good ' revision. When you have found a ' good ' revision, that will be the good reference point and the last ' bad ' revision will become the new bad reference point. Now you have two reference points, a known ' bad ' revision and a known ' good ' revision.
The guilty revision must be somewhere in between the two reference (revision) points!
Next choose a revision that is half way between the two revisions, then test that revision to see if it is good, it will then become the new good reference point, but if it is bad, it will then become the new bad reference point. Keep choosing a revision that is half way between the two, until you have found where the revision changes from good to bad; the bad is the guilty revision that regressed!
Remember that the guilty revision is always between the last ' good ' revision and the last ' bad ' revision, until you have reached the point where they are next to each other.
The old SVN ISO files are in this format r75098 and are still available from https://iso.reactos.org/bootcd/, but are not now available at the getbuilds page (https://www.reactos.org/getbuilds/), because they are no longer being created.
Note that the old revision numbers cannot be used in the search input box at the getbuilds page.
It as been brought to my attention, that Git has some built in functions that do the same as in this guide. So if you have a local source tree, then you may like to read this https://git-scm.com/docs/git-bisect. Warning: only use these git functions on your local source tree, because of what they do to the tree!