Open main menu

CDOT Wiki β

Changes

Delta debugging framework

252 bytes added, 21:55, 16 November 2006
Project Task List - Now polychromatic
([[#top|↑ top]])
<table style="width: 100%;" class="standard-table" border="1" cellpadding="0" cellspacing="0"> <tr><td colspan="4"><strong>Legend</strong></td></tr> <tr> <td bgcolor="#00FF00" style="width: 25%;">Task completed</td> <td bgcolor="#FFFF00" style="width: 25%;">Task started but not complete</td> <td bgcolor="#FFA500" style="width: 25%;">Task being discussed</td> <td bgcolor="#FF0000" style="width: 25%;">Task not started</td> </tr></table><br /><table style="width: 100%;" class="standard-table" border="1" cellpadding="0" cellspacing="10">
<tr>
<th>Task</th>
<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>[[User:RichardChu|Richard Chu]]</td>
<td>Work in progress. <table style="width: 100%;" class="standard-table" border="0" cellspacing="0" cellpadding="0"> <tr><td bgcolor="#00FF00">Currently can retrieve change sets of type Revision, Directory, and File. Need NOT going to complete retrieval of Code Block, Line of Code change set? .</td><br /tr> <tr><td bgcolor="#FFFF00">Requires through more thorough test suite (ChangesetTest.pl needs more test cases)</td></tr> </table> </td>
</tr>
<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>[[User:RichardChu|Richard Chu]]</td>
<td>Work in progress.   <table style="width: 100%;" class="standard-table" border="0" cellspacing="0" cellpadding="0"> <tr><td bgcolor="#00FF00">Can apply a change changeset (specified by index or array of indices passed in) from a Revision, Directory, and File Changeset. Do we want to be able NOT going to pass in an array complete application of indices and apply the changes associated with those indices? Requires some thoughtCode Block or Line changeset. <br /td></tr> <tr><td bgcolor="#FFFF00">Requires through more thorough test suite (ChangesetTest.pl needs more test cases)</td></tr> </table>  </td> </tr>  <tr> <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>[[User:RichardChu|Richard Chu]]</td> <td bgcolor="#FFFF00">Work in progress.</td>
</tr>
<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>[[User:RichardChu|Richard Chu]]</td>
<td>Work in progress. Initial wrapper <table style="width: 100%;" class="standard-table" border="0" cellspacing="0" cellpadding="0"> <tr><td bgcolor="#00FF00">Wrapper created: ''makewrapper.pl''. Can execute the make command with options specified by the user.</td></tr> <tr><td bgcolor="#FFFF00">Requires more thorough test case (''maketest.pl'' needs more test cases).</td></tr> </table> </td>
</tr>
 
 
<tr>
<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>[[User:RichardChu|Richard Chu]]</td>
<td>Work in progress. Initial wrapper <table style="width: 100%;" class="standard-table" border="0" cellspacing="0" cellpadding="0"> <tr><td bgcolor="#00FF00">Wrapper created: ''svn.pl''. Currently has subroutines for ''commit'', ''update'', ''diff'', and ''checkout'' commands. May need to wrap other SVN commands. </td></tr> <tr><td bgcolor="#FFFF00">Requires more thorough test case (''svntest.pl'' needs more test cases).</td></tr> </table> </td>
</tr>
<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>[[User:RichardChu|Richard Chu]]</td>
<tdbgcolor="#00FF00">Work in progressDone.</td>
</tr>
<tr>
<td colspan="4"><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 />You can do these tasks by trying to interpret the Bonsai source code yourselfIn my mind, or preferably by finding a person who has intimate knowledge of the Bonsai source code and asking themmay be too bloated for our needs.
</td>
</tr>
<tr>
<td>Query Wrapper around the necessary CVS via Bonsai for checkinscommands</td> <td>You can use Bonsai For the automated debugging to search for work, we may need to automatically modify the checkins made within a certain time frame, within a certain directory, made working copy by reverting to a different revision or updating certain developer, etcdirectories and files. Your mission is It may also need to find know the relevant source files, functions, variables, etc. that drive this functionalitydifferences between revisions and changesets. </td> <td>TBD.[[User:RichardChu|Richard Chu]]</td> <tdbgcolor="#FF0000">Not started.</td>
</tr>
<tr>
<td>Results of querying CVS via Bonsai for checkins</td> <td>Bonsai obviously returns results from the query. The question is how? Your mission is to find the relevant source files, functions, variables, etc. that is used to return and store results. What you need to find out is what type of data is returned and how are the results formatted?</td> <td>TBD.</td> <td>Not started.</td> </tr>  <tr bgcolor="#F0F0F0"> <td>Query CVS via Bonsai for version history</td> <td>For each file in the CVS repository, Bonsai has the ability to list a history of versions. From the first to the latest. Your mission is to find out the relevant source files, functions, variables, etc. that are used to obtain the version history for a certain source file.</td> <td>TBD.</td> <td>Not started.</td> </tr>  <tr bgcolor="#F0F0F0"> <td>Results of querying CVS via Bonsai for version historydifferences between two revisions</td> <td>Your mission is to find out the relevant source files, functions, variables, etc. commands that are used to can return and store the results of searching for a file's version history. What data is returned and how is the data stored/formatted?</td> <td>TBD.</td> <td>Not started.</td> </tr>  <tr> <td>Query CVS via Bonsai for differences between versions</td> <td>Using Bonsaitwo revisions, a user can see the differences between two different versions of a source file. Your mission meta-data that is to find out the relevant source fileskept with each revision, functions, variables, etc. that are used to find the how differences between two different versions of a source file.</td> <td>TBD.</td> <td>Not started.</td> </tr>  <tr> <td>Results of querying CVS via Bonsai for differences between versions</td> <td>Using Bonsai, a user can see the differences between two different versions of a source file. How revisions are the results returned? How is it stored and formatted? Your mission is to find out the relevant source files, functions, variables, etc. that are used to return the results of the query. You are to find out and how the this data is returned and how it is formattedcan be parsed into a usable form for our project (wrapper?).</td> <td>TBD.[[User:RichardChu|Richard Chu]]</td> <tdbgcolor="#FF0000">Not started.</td>
</tr>
<tr>
<td>Creation / Extrapolation 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. Extrapolate 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>[[User:Ankuswan|Aditya Nanda Kuswanto]]</td>
<tdbgcolor="#FFFF00">Work in progress. Found the tests! Now need to figure out how to run them and how they work.</td>
</tr>
<tr>
<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>TBD.</td>
<td bgcolor="#FFA500">There are differences in opinion on how this should be done.</td>
</tr>
<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>[[User:dwwoodsi|Dean Woodside]]</td>
<tdbgcolor="#FFFF00">Work in progress. Check the SVN repository from time to time.</td>
</tr>
 
</table>
1
edit