Open main menu

CDOT Wiki β

Changes

Delta debugging framework

2,855 bytes added, 16:27, 25 November 2006
Project Task List: Because the list needed more colour and columns
<table style="width: 100%;" class="standard-table" border="1" cellpadding="2" cellspacing="0">
<tr><td colspan="4"><strong>Priority Legend</strong></td></tr> <trstyle="color: #FFFFFF; font-weight: bold; text-align: center"> <td bgcolor="#00FF008B00FF" style="width: 33%;">High Priority</td> <td bgcolor="#0000FF" style="width: 33%;">Medium Priority</td> <td bgcolor="#008080" style="width: 2533%;">Task completedLow Priority</td> </tr></table><br /><table style="width: 100%;" class="standard-table" border="1" cellpadding="2" cellspacing="0"> <tr><td colspan="4"><strong>Status Legend</strong></td></tr> <tr style="font-weight: bold; text-align: center"> <td bgcolor="#FFFF0000FF00" style="width: 2533%;">Task started but not completecompleted</td> <td bgcolor="#FFA500FFFF00" style="width: 2533%;">Task being discussedstarted but not complete</td> <td bgcolor="#FF0000" style="width: 2533%;">Task not started</td>
</tr>
</table>
<th>Task</th>
<th>Description</th>
<th>Priority</th>
<th>Assigned to</th>
<th>Status</th>
</tr>
 
<tr>
<td colspan="45"><strong>Change set / Change</strong>
</td>
</tr>
<td>Retrieval of Change / Change set</td>
<td>The Granularity concept. A single revision may consist of hundreds or thousands of lines of code that were changed, yet only a couple lines of the change may be responsible for the regression. Thus, There must be a method to break the change into smaller manageable chunks. The different types of chunks we may breaking up a changeset are: Revision, Directories, Files, Code Blocks, and Lines.</td>
<td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td>
<td>[[User:RichardChu|Richard Chu]]</td>
<td>
<td>Application of Change / Change set</td>
<td>OK. Change sets can be retrieved. Now what? You must be able to apply a change or change set or subset of a change set to the source tree. Your mission is to figure out how to do that.</td>
<td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td>
<td>[[User:RichardChu|Richard Chu]]</td>
<td>
<td>Unapplication of Change / Change set</td>
<td>Changesets obviously must be able to be applied. But changesets must also be able to be unapplied. Your mission is to figure out how to do that.</td>
<td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td>
<td>[[User:RichardChu|Richard Chu]]</td>
<td bgcolor="#FFFF00">
<tr>
<td colspan="45"><strong>GNU Make</strong> ([http://www.gnu.org/software/make/ http://www.gnu.org/software/make/])
</td>
</tr>
<td>Wrapper around the GNU make utility</td>
<td>Mozilla uses the GNU make utility to build their source tree. your mission is to make a wrapper around the GNU make utility so that the make command can be programmatically called to build the source tree.</td>
<td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td>
<td>[[User:RichardChu|Richard Chu]]</td>
<td>
<tr>
<td colspan="45"><strong>Subversion (SVN) Repository</strong> ([http://subversion.tigris.org/ http://subversion.tigris.org/], [http://svnbook.red-bean.com/nightly/en/index.html http://svnbook.red-bean.com/nightly/en/index.html])
</td>
</tr>
<td>Wrapper around the necessary SVN commands</td>
<td>For the automated debugging to work, we may need to automatically modify the working copy by reverting to a different revision or updating certain directories and files. It may also need to know the differences between revisions and changesets.</td>
<td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td>
<td>[[User:RichardChu|Richard Chu]]</td>
<td>
<td>Query SVN repository for differences between two revisions</td>
<td>Your mission is to find out the relevant commands that can return the differences between two revisions, the meta-data that is kept with each revision, how differences between two revisions are stored and formatted, and how this data can be parsed into a usable form for our project (wrapper?).</td>
<td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td>
<td>[[User:RichardChu|Richard Chu]]</td>
<td bgcolor="#00FF00">Done.</td>
<tr>
<td colspan="45"><strong>CVS/Mozilla Bonsai</strong> ([http://www.mozilla.org/bonsai.html http://www.mozilla.org/bonsai.html], [http://cvsbook.red-bean.com/OSDevWithCVS_3E.pdf CVS Book])<br />In my mind, Bonsai may be too bloated for our needs.
</td>
</tr>
<td>Wrapper around the necessary CVS commands</td>
<td>For the automated debugging to work, we may need to automatically modify the working copy by reverting to a different revision or updating certain directories and files. It may also need to know the differences between revisions and changesets.</td>
<td bgcolor="#0000FF" style="color: #FFFFFF; font-weight: bold; text-align: center">Medium</td>
<td>[[User:dwwoodsi|Dean Woodside]]</td>
<td bgcolor="#FF0000">Just starting out.</td>
<td>Query CVS repository for differences between two revisions</td>
<td>Your mission is to find out the relevant commands that can return the differences between two revisions, the meta-data that is kept with each revision, how differences between two revisions are stored and formatted, and how this data can be parsed into a usable form for our project (wrapper?).</td>
<td bgcolor="#0000FF" style="color: #FFFFFF; font-weight: bold; text-align: center">Medium</td>
<td>[[User:dwwoodsi|Dean Woodside]]</td>
<td bgcolor="#FF0000">Just starting out.</td>
<tr>
<td colspan="45"><strong>Test Case(s)</strong> ([http://www.mozilla.org/tinderbox.html Tindexbox])<br /> </td>
</tr>
<td>Creation / Extraction of Test Case(s)</td>
<td>We need test cases that can return whether or not the test passes or fails. Tinderbox has a couple of tests that are executed after the source is built. Extract those tests from the Tinderbox source code so that we can use them in this project. We also need a test case that can pass/fail consistently so that we can test the delta debugger.</td>
<td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td>
<td>[[User:Ankuswan|Aditya Nanda Kuswanto]]</td>
<td bgcolor="#FFFF00">Work in progress. Found the tests! Now need to figure out how to run them and how they work.</td>
<td>Test Framework</td>
<td>We ideally need a way to allow users to specify the test(s) to be run easily without them having to modify the delta debugging module. </td>
<td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td> <td>TBD.[[User:RichardChu|Richard Chu]]</td> <td bgcolor="#FFA500FFFF00">There are differences Work in opinion on how this should be doneprogress.</td>
</tr>
<tr>
<td colspan="5"><strong>Obtaination of Test Repositories</strong></td>
</tr>
<tr>
<td>Obtaination of test SVN Repository</td> <td>We have an SVN repository that holds our delta debugging framework source files. We need another SVN repository that we could use to test our framework.</td> <td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td> <td>[[User:dwwoodsi|Dean Woodside]]</td> <td bgcolor="#00FF00">Done. The URL to the test SVN repository is: svn://cdot.senecac.on.ca/deltatest</td> </tr>  <tr> <td>Obtaination of test CVS Repository</td> <td>When the CVS version of the framework is completed, it will be useful to have a test CVS repository that we could use to test our framework.</td> <td bgcolor="#0000FF" style="color: #FFFFFF; font-weight: bold; text-align: center">Medium</td> <td>[[User:dwwoodsi|Dean Woodside]]</td> <td bgcolor="#FFFF00">Work in progress. The CVS repository has been created. The web interface to the repository is: [http://hera.senecac.on.ca:43080/viewvc.cgi/?root=deltatest here]. Apparently need to just get some forwarding issues resolved.</td> </tr>   <tr> <td colspan="45"><strong>Implementation of Delta Debugging Algorithm</strong> ([http://www.infosun.fmi.uni-passau.de/st/papers/tr-99-01/ Yesterday, my program worked. Today, it does not. Why?])<br />
</td>
</tr>
<td>The Algorithm</td>
<td>The delta debugging algorithm. Drives the framework to retrieve change sets, apply changes, build source tree, run test case(s) to find the minimal set of failure inducing changes. The intersection of all other parts of the framework to make them work together. Ideally, should be abstract enough for easy extensibility with little impact.</td>
<td bgcolor="#8B00FF" style="color: #FFFFFF; font-weight: bold; text-align: center">High</td>
<td>[[User:RichardChu|Richard Chu]]</td>
<td bgcolor="#FFFF00">Work in progress.</td>
</tr>
</table>
 
 
== Points of Confusion ==
1
edit