[Java and all else] Requirements tracking, testing, and versioning

Hello,
as a semi-experimental subject, I am considering managing requirements and test documents in the same version control system as the code.
For some reasons, this versioning policy doesn't seem mainstream, so I'd like to have your opinion on that.
+N.B.: the prefix "java and all else" refers to the fact that I'm using this area to post a message that is related not only to Java but also to other topics (people, processes, tools,...) that help program in Java - so this post is not really off-topic either. For the record, I filed a suggestion to open a dedicated forums to discuss topics like that, although it hasn't received enthusiastic support so far :o(...+
Here is how I had imagined to proceed:
- requirements document gets edited and stored as text in the VCS
- test plan (basically a matrix of which tests cover which requirements) goes into the VCS as well, text or binary
- test instructions (detailed steps, actions, expected results) are stored as text in the VCS
- test results - I do'nt know yet, but I planned to store them as text (lists of testId=result) in the VCS (I'm not sure indeed, that those would go into the VCS)
The advantage of versioning those as text is that all VCS clients support easy-as-a-click history browsing and diff capabilities.
Diffs and logs are useful to trace when and why a requirement has appeared, evolved, obsolated,... Especially in long-lived systems whose maintenance crew rarely embeds "historical" pioneers who developed the original systems.
My questions:
1) Is it good practice to version such docs in the same repository as the code?
I've never seen this done.
- In half of the shops I've been these docs are not really versioned (the PM considered it enough that the latest applicable version of the docs was available)
- The other half has used versioning systems ranging from ad-hoc (shared folder acting as repository of all versions) to "document management systems". I found such tools to be developer-unfriendly (poor diff capability, poor text searching), and developers to be office-document-reluctant (mostly because of the shortcomings of the doc format and doc management systems).
- The third half <wink to aficionados of French cinema> used dedicated softwares (Test Director, RQM,...) to manage requiremetns, test plans, test cases, test results,... The drawback is that the developers were hardly involved in using such tools, and even when they were, were not trained to use the administrative and metadata capabilities (who modified the test steps, when and why?).
On the contrary, developers would easily and gladly browse histiry, check diffs, etc... on text documents versioned using their daily-used source control system.
2) Are there "standard", preferrably text-based, formats, for the documents listed above?
Each and every organization I've seen had its own format, but most items have equivalents in all organizations, even if disguised under different terminologies. I have no formal education or training in quality assurance, but I guess some ISO or CMM norms define those recurring items, and I expect some abstract XML format might exist
3) Are there tools already that cover edition and exploitation of such formats, or why not, of the versioning of such formats (naive example, graphing the pass rate of tests over time)?
A pet project of mine is to develop and open-source some Swing UI to do this, but existing tools would save me the trouble.
I'm looking forward to reading about your own experience.
Best regards,
Jerome.
Edited by: jduprez on Jun 4, 2010 10:33 PM
Fixed link.

I don't have data on comparative bug rates because we did not do studies focused on that. This stuff was mostly driven by convenience #) considerations.
Subjectively, yes it seemed to have lower bug rate compared to maintaining documents in, say, pdf format (like our doc writers did with User/Dev guides). BTW doc writers are another kind of guys who dislike plain text.
As for using test results history the way you describe - agree, that makes some sense. Now that you mention it I recall using it myself that way, in one of the projects where testers managed to establish really convenient way to assess test execution history. After I figured how easy it was, I began using it. Quite helpful indeed.
Regarding "tool or format that mapped tests to specific requirements" in your original post - did you consider Polarion? IIRC it supports mapping requirements to test descriptions. Telelogic DOORS are maybe also capable of that but I am not completely certain.
#) convenience -- BTW we maintained test descriptions not in plain text but in simple HTML (you know few tags one can use in javadocs). With limited line length, it is almost as VCS friendly as plain text, even with tables:
<!DOCTYPE "stuff to make HTML validator happy">
<html><title>test description</title>
<body>
<table>
  <tr>
    <td>test id</td>
    <td>synchronized.10988343</td>
  </tr>
  <tr>
    <td>instructions</td>
    <td>
      <ul>
        <li>sacrifice a goat
          <ul><li>under the full moon</li></ul>
        </li>
        <li>twirl counterclockwise
          <ul><li>until you barf</li></ul>
        </li>
    </td>
  </tr>
  <tr>
    <td>pass criteria</td>
    <td>
      <ul>
        <li><b>pass</b> if method is synchronized</li>
        <li><b>fail</b> otherwise</li>
      </ul>
    </td>
  </tr>
  <tr>
    <td>comments</td>
    <td>
       <a href="http://forums.sun.com/thread.jspa?messageID=10988343#10988343">
       click here for details</a>
    </td>
  </tr>
</table>
</body>
</html>
{code}
We were also using [HTML validator|http://validator.w3.org/|tool] tool to automatically catch simple syntax mistakes like missing tags.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • [Java and all else] How do you document DB design?

    Hello,
    Although most of the technical choices are explicit in SQL (UniqueKey & ForeignKey constraints, indexes,...), the semantics of the data columns and their constraints seem better served as plain human-readable comments ("ID column: identifies the plane copy; 6 figures are enough as we don't expect to sell more than 1 million planes in a foreseeable future...").
    In my current system, (EJB-based, but the DB schema is not created by the JPA-compliant ORM, but via SQL scripts), I see the following ways to write and maintain this documentation:
    - SQL comments in the schema creation and patch scripts
    - Javadoc comments in the Java source of the Entity classes.
    - UML notes in UML diagrams(1)
    - external "Architecture and design" document.
    All 4 of them are used, sometimes inconsistently, for various parts of the design choices; I mean, the docs do not contradict themselves (not yet, but it's a mere question of time), but some tables are commented in SQL scripts, others are in design docs, and the details for some columns are in entity javadocs. Although each developer may find it handier to "write" the doc via his preferred medium, it becomes increasingly difficult to "maintain" theoverall documentation.
    Our current situation is that most of the project team members are Java developers, so it would probably be better accepted and served if we standardized that we document DB tables and columns in Java source, but I am worried that:
    - someone else pouring over our DB (ex: DBA helping us to optimize things, or other team developping a data-mining tool to leverage the historical data in DB) may not be as comfortable with Java
    - this may not cover all design choices of the DB schema:
    - - - - first, although that is the case currently, in the future there might not be a 100% 1-1 mapping between e.g. each entity class and a DB table. Maybe some columns will not need to be mapped anymore,...
    - - - - second, I fear some DB constructs are not amenable to Java counterparts; no accurate idea there, I'm not an SQL nor JPA expert, but I presume Indexes, table partitioning, tablespaces, for example (yes, the DBMS is Oracle :o) are not taken into account in JPA mapping.
    And if we document those choices at the SQL level (my preferred idea so far), this will gradually make the javadocs in the entities obsolete, or removed altogether, and that will make future maintenance of the Java source risky.
    How do you document your DB design in general?
    Do you have specific advices for my case?
    Thanks in advance,
    J.
    (1) Just for the record, here are a few posts that refer to modelling the DB in UML:
    [A post on this forum highlighting that UML 1.4 standardizes a notation for RDB modelling|http://forums.sun.com/thread.jspa?messageID=1383724#1383724]
    [A DB modelling tutorial|http://www.tomjewett.com/dbdesign/dbdesign.php] (not sure whether it leverages the standard mentioned above :o)
    P.S.: "Java and all else" as in, damn, I'd love to use the familiar JDC forums and people to discuss not only Java-related issues, but also [all other things that surround Java|http://forums.sun.com/thread.jspa?threadID=5422264&tstart=0] (other technologies, processes, people) and enable to make workable systems out of Java code.

    jduprez wrote:
    Thank you again.
    A couple more questions:
    2. Table, and proc dictionary maintained as one or more text files. Those files and schema are all in source control.Do you mean, a proprietary text format (a la tabledesign.txt), or +.sql+ source files? Again, you seem to suggest the scehma info is present in two locations.I didn't say two locations unless you meant files. Then yes.Yes I meant two files. I trust the team to get the doc file lagging a few revisions behind the SQL file, and to correct that I would have to include one more step in the review process (e.g. "review CM actions to check that the doc file is updated consistently with the SQL source").
    The tool I wrote would throw errors if the comment file didn't match the schema. And if comments were not provided. That of course doesn't stop someone from documenting a table with "a table".
    You can of course keep the addtional info as special comments in the SQL, but when I did this, and even in retrospect, it seems better and perhaps easier to keep them seperate. I have done special comments in SQL before and it seems a bit of a kluge but you do have the single source. But in that case I was the only one maintaining it too.What do you mean by "special"?For code generation I have a schema file with the following (pseudo sql.)
        create mytable
           mytable_id int,
           column_foo varchar(10);
           column_fum varchar(20)
            -- Query: for_a_query (column_foo, column_fum)
        )The generator consumes the schema and generates the standard CRUD which would include a query based on the primary key.
    The above comment is used to provide an additional query where the proc is named 'for_a_query' (munged with table name) and takes two parameters (column_foo, column_fum) whose type/name matches those of the table.
    If we don't try to generate a browseable HTML out of the schema (although the idea is appealing, I don't have the resource to make such a tool), do you see anything kludgy in maintaining SQL comments interpersed within DDL code?
    Of course that is doable.

  • What all steps required in IR and ID?

    Hi Experts,
    Could you please tell me, what all steps required in IR and ID for the webservice (SOAP Adapter) - XI - JDBC Adapter synchronous scenario.
    Do we have any blog for this scenario( Beginner level)?
    Regards
    Sara

    Sara,
    The scenario in terma of Integration Respository will be like say a HTTP to JDBC .
    1. Create Dataytypes for request and response of SOAP and JDBC respectively.
    2. Create Messagetypes.
    3. Create Message Interfaces ( One Synch Outbound for SOAP and Oune Synch Inbound for JDBC).
    4. Create 2 message mappings and interface mapping.
    The datatype you create for the JDBC depends on the Action you want to perform on the Database.
    Do you want to Insert or update or delete or select data from the database?
    Look into this link for the datatype formats,
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    Also in ID will be the same with 1 receievr determinations, 1 interface determinations , 1 sender SOAP adapter,1 Receievr JDBC adapter amd Sender and Receiver Agrreements.
    Finally you need to expose the Outbound Messgae interface as a webservice and to do this, look into section 3.2.2 of this article,
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79
    Regards
    Bhavesh

  • So, I am trying to purchase an app. As I enter in my card information and everything else required, I get red coding stating "I must verify my payment". How do I verify my payment?

    So, I am trying to purchase an app. As I enter in my card information and everything else required, I get red coding stating "I must verify my payment". How do I verify my payment?

    Contact Apple >  Contacting Apple for support and service

  • HT1725 I downloaded an album and all of the tracks will play about 3/4 of the song then stop and play the next song.  I went to itunes store and it said the songs fully downloaded. So how do I get the full song into my library?

    I downloaded an album and all of the tracks will play about 3/4 of the song then stop and play the next song.  I went to itunes store and it said the songs fully downloaded. So how do I get the full song into my library?

    If your country's iTunes Store allows you to redownload purchased tracks, I'd delete your current copies of the tracks and try redownloading fresh copies. For instructions, see the following document:
    Downloading past purchases from the App Store, iBookstore, and iTunes Store
    Otherwise, I'd report the problem to the iTunes Store.
    Log in to the Store. Click on "Account" in your Quick Links. When you're in your Account information screen, go down to Purchase History and click "See all".
    Find the items that are not playing properly. If you can't see "Report a Problem" next to the items, click the "Report a problem" button. Now click the "Report a Problem" links next to the items.

  • What is Requirement Tracking Number and MRP Controller

    Hi,
    Can anybody please brief me on the foll:
    What is Requirement Tracking Number and MRP Controller?
    Thanks

    .

  • HT1382 i got an iPad and all my app's, music,  and movies are on it, but when i try to download some apps to mi iPhone, they doesn't appear on the purchased tab, how could i move them back to itunes so i can access thru iCloud?

    i got an iPad and all my app's, music,  and movies are on it, but when i try to download some apps to mi iPhone, they doesn't appear on the purchased tab, how could i move them back to itunes so i can access thru iCloud? i have an 2nd generetion ipad and an iphone 5, thanks for you answers!

    (I think the daughter got he better end of the deal!)   I believe if you change the password and user id one of the devices it will stop that from occurring. But I'm not the one to tell you how to do it; someone like "Illaass" (Illaass seems to know how to correct / fix almost anything!) will know how if you don't. Just look for the "cat" icon.

  • I created an iCloud account and also had to get more space after I have done the purchase, I am unable to backup my phone! I have a stable wifi connection at home and all I see for hours and hours is "Backing Up .. Estimating time remaining"!!!!! Plz help

    I created an iCloud account and also had to get more space so after I have made the purchase, I am unable to backup my phone! I have a stable wifi connection at home and all I see for hours and hours is "Backing Up .. Estimating time remaining"!!!!! Plz help I'm unable to make the backup as I need to transfer all my data on my new iPhone 5S

    This may be caused by a corrupt existing backup that needs to be deleted, or by data on your device that is causing the backup to fail.  To troubleshoot these, try deleting your last iCloud backup (if you have one) by turning off iCloud Backup in Settings>iCloud>Storage & Backup, then tap Manage Storage, tap your device under Backups, then tap Delete Backup.  Then go back and turn iCloud Backup back on and try backing up again.
    If it still won't back up, you may have an app or something in your camera roll that is causing the backup to fail.  To locate which one, go to Settings>iCloud>Storage & Backup>Manage Storage, tap the name of your device under Backups, under Backup Options tap Show All Apps, then turn them all to Off (including camera roll) and try backing up again.  If the backup is successful, then the camera roll and/or one of your apps is causing the backup to fail and you'll have to located by process of elimination. Turn the camera roll On and try backing up again.  If it succeeds, turn some of your apps to On and try backing up again.  If it succeeds again, turn some more apps to On then try again; repeat this process until it fails.  Eventually you'll be able to locate the problem app and exclude it from your backup.
    In the meantime you can back up your phone to your computer by connect it, opening iTunes and going to File>Devices>Back Up.  Also be sure to transfer your purchases (File>Devices>Transfer Purchases).  Then set up your new phone and when given the option, choose Restore from iTunes Backup and follow the prompts to restore this backup to your new phone.  This will be much faster than using iCloud anyway.

  • Disappointed with IOS7, i had organized my music library as per the Genre and now im unable to hear all the songs of the same genre like in the earlier versions. The options of "all albums" and "all songs" are missing in this version of IOS. Help Please..

    Disappointed with IOS7, i had organized my music library as per the Genre and now im unable to hear all the songs of the same genre like in the earlier versions. The options of "all albums" and "all songs" are missing in this version of IOS. Help Please..

    It would be nice if you told others the steps you've tried and/or how you used to have your setup.
    Anyway have you tried tapping MORE this will then bring you to
    the selection-list of Audiobooks, Genres, Compilations & Composers.
    Selecting Genres gives you a list of all your music split into genres which was set within the Music downloaded via iTunes or uploaded from CD or which you may have set yourself.
    Then you just select the Genre you want:
    If certent songs are not correctly gategorised you may need to go into iTunes and reselect via Get-info
    >Info>Genre and change it there. That way you should end up with all songs of Jazz or other in 1 place.

  • I am trying to download a free trial of photoshop for my macbook pro and it says there is an error and that the requirements for the new version is not supported for the mac I have. I have looked at the list of requirements but have no idea how to tell wh

    I am trying to download a free trial of photoshop for my macbook pro and it says there is an error and that the requirements for the new version is not supported for the mac I have. I have looked at the list of requirements but have no idea how to tell what I do and do not have?

    Apple Menu --> About this Mac.
    Mylenium

  • I just buy a imac 27inch when after intalling everthing for windows 7 and all the drivers i need and goes to the restard part my imac just goes to a black screen with a blinking cursel and it just wont proceed anyone can help me with this?

    i just buy a imac 27inch when after intalling everthing for windows 7 and all the drivers i need and goes to the restard part my imac just goes to a black screen with a blinking cursel and it just wont proceed anyone can help me with this?

    Support articles for things like this would be here:
    http://www.apple.com/support/bootcamp

  • I keep getting this error message and the spinning wheel on all websites, any fix? (Webpages are not responding, so loading cannot be stopped. Do you want to force reload this page and all pages in other tabs and windows?)

    I keep getting this error message and the spinning wheel on all websites, any fix? (Webpages are not responding, so loading cannot be stopped. Do you want to force reload this page and all pages in other tabs and windows?)

    Hi, this has worked for a few...
    Make a New Location, Using network locations in Mac OS X ...
    http://support.apple.com/kb/HT2712
    10.7…
    System Preferences>Network, top of window>Locations>Edit Locations, little plus icon, give it a name.
    10.5.x/10.6.x/10.7.x instructions...
    System Preferences>Network, click on the little gear at the bottom next to the + & - icons, (unlock lock first if locked), choose Set Service Order.
    The interface that connects to the Internet should be dragged to the top of the list.
    Instead of joining your Network from the list, click the WiFi icon at the top, and click join other network. Fill in everything as needed.
    For 10.5/10.6, System Preferences>Network, unlock the lock if need be, highlight the Interface you use to connect to Internet, click on the advanced button, click on the DNS tab, click on the little plus icon, then add these numbers...
    208.67.222.222
    208.67.220.220
    Click OK.

  • I opened my Iphoto and all my pictures were gone, and I can't find them anywhere, what do I do?

    I opened my Iphoto and all my pictures were gone, and I can't find them anywhere, what do I do? Or how do I find them, and get them all back?

    try this: http://support.apple.com/kb/TS1995, also this which discusses rebuilding iPhoto library : http://support.apple.com/kb/HT2638

  • HT1329 My computer recently crashed and all my iTunes music deleted and I have no backup other than my iPhone 4, is there any way to get it back using my iPhone?

    My computer recently crashed and all my iTunes music deleted and I have no backup other than my iPhone 4, is there any way to get it back using my iPhone?

    tonefox wrote:
    I would suggest a serious discussion with your son.
    that is great advice.

  • HT4436 Our family iPads and iPhones and all linked to the cloud and all the "switches" in settings are turned on...so why for example can't I see on my device any of the photos my wife has taken on her device?

    Our family iPads and iPhones and all linked to the cloud and all the "switches" in settings are turned on...so why for example can't I see on my device any of the photos my wife has taken on her device?

    Are they all using the same AppleID?
    Photo Stream - http://www.apple.com/icloud/features/photo-stream.html
    iCloud: Photo Stream FAQ - http://support.apple.com/kb/HT4486

Maybe you are looking for

  • My storage is always full

    I don't understand what's happening to my phone after I updated to iOS 8. I don't have that much apps compare to any other iPhones but my storage is always full. I'm using a 16 GB one. My songs in music aren't so many. It really frustrates me because

  • Jsp-ejb

              hi           I am trying work with ejb and jsp's using WLS 6.1 but nothing seems to work ,           with out using jsp if i am invoking ejb's by writing a simple client its working           fine           well here is what i have done    

  • HT1386 restoring from Itunes

    How do i restore my personal data from Itunes after upgrading to IOS7 on my Ipad2?

  • Help! iphoto: show contents???

    Hi! When i open HD/user/name/pictures and then right click on iphoto libray, I can´t see my pictures. How is this posible? The pictures are there, it's 25 GB big.

  • Sound Blaster Audigy 2 ZS with Logitech Z680 Speakers. HELP

    Okay, I recently purchased the Logitech Z680 5. set w/ the Audigy 2 ZS sound card (not platinum pro version). Im really happy with it, but doing some research on other forums has given me a LOT of questions and confusion. Here is what I need to know: