How Do You Store Test Results

OK, so this is really sort of a survey. I'm developing a new test system and am toying around with how to store the data. Obviously one alternative is to use TestStand's built in database capability, but in looking at the tables it seems like post-processing could be a bit of a pain (it's not instantly obvious to me how I would author the proper queries, etc).
Another alternative would be to create my own database and then figure out how to get all of the hooks in the proper places to make sure that data is properly stored when it should be, etc. This could result in some fairly complex database design, teststand foo, etc.
So I'm wondering what the community as a whole seems to favor: Use TestStand's built in database stuff or roll your own?

I've tried several different methods like individual DUT text files, appended text files, databases, and such.  The best method I've come up with is using a text data file with comma delimiters.  The catch is to log each DUT data as a two dimensional data.  The first columns of each line contian DUT header information such as serial number, date tested and such.  Then a test column, name, and p/f.  After that each result that relates to that test is added for each column.  It takes on the following format.
dut1,date,sn,operator,test,0,p,r1-LL,r1-MV,r1-UL,r1-p/f,r1-description,r2-LL,r2-MV,r2-UL,r1-p/f,r2-description,...etc
dut1,date,sn,operator,test,1,p,r1-LL,r1-MV,r1-UL,r1-p/f,r1-description,r2-LL,r2-MV,r2-UL,r1-p/f,r2-description,...etc
Then then next DUT will be
dut2,date,sn,operator,test,0,p,r1-LL,r1-MV,r1-UL,r1-p/f,r1-description,r2-LL,r2-MV,r2-UL,r1-p/f,r2-description,etc
dut2,date,sn,operator,test,1,p,r1-LL,r1-MV,r1-UL,r1-p/f,r1-description,r2-LL,r2-MV,r2-UL,r1-p/f,r2-description,etc
A little wasteful on memory, but memory is cheap.  The advantage of doing it this way is you can pull into a spreadsheet program, then insert blank line at top, and then insert the data autoformat.  Now you have a simple database without the overhead of the database.  A couple a seconds and anybody of any skillset can pull up the data and it makes sense.   I also divide the files into logical sizes such as work week, quarters, or year so the data files don't get too large.  I've looked a data management programs as well.  They are nice if you want to invest the time to understand what's going on.  Problem is, most people viewing the data files want information fast when they need it.  They are not willing to invest time to install special programs and invest the time to get the information they need.  Just some thoughts. 

Similar Messages

  • Spreadsheet: how can I store test results from different tests in the same central spreadsheet?

    I am looking to gather test data using LabVIEW. I then want to store all the data in the same spreadsheet, a kind of central data base. I know how to store single test data in a spreadsheet but I can I get the software to write new data in the same file without over writing the old data?

    My first recommendation is that if you need a database--use a database not a spreadsheet. A DBMS isn't that hard to use and could pay big dividends in the future.In any case, to answer your question directly, it sounds like you are writing tab-delimited data to a text file that you will then open with a spreadsheet program. On the file write vi is a boolean input that specifies whether the new data should be appended or overwrite the existing data (the default is to overwrite). Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • How can I save test results to microsoft access database?

    How can I save test results to microsoft access database?

    Your best solution is to use the Database Connectivity Toolset. You can view the specifications and prices at the following web site:
    LabVIEW Database Connectivity Toolset
    http://sine.ni.com/apps/we/nioc.vp?cid=6429〈=US
    If you have additional questions about this toolset, you can email us at [email protected]
    Zvezdana S.
    National Instruments

  • How do you email poll results?

    How do you email poll results?

    sorry about the typo error on the p.s
    i have attached my vi with an excel file with my measurements i am talking about.the first column goes from segment 1-35 while the second column goes from 1-42.
    i want to compare these 2 columns on the same time axis
    Attachments:
    segment analysis.xls ‏24 KB
    Testing Cepstrum Algo.vi.vi ‏201 KB

  • HT4847 How do you store apps in icloud

    How do you store apps in the Icloud??

    By either restoring your iCloud backup, which will restore all data, settings, apps and other purchased media contained in the backup, or by redownloading them from the app store as discussed here: http://support.apple.com/kb/ht2519 (which will restore the app, but not any app data).

  • How would you store a primitive type?

    Hello
    How would you store a primitive type in a Collection such as a List?
    Thanks
    Bobby

    <face grin=evil> myList.add(int.class); </face>

  • How do you store books

    How do you store books on iPads?

    Books from where, and I'm not sure what you mean by store (?).  Most ebooks have digital rights management on them which tie them to the store's own apps/ereaders, so ibooks from Apple can only be read in the iBooks app, and ebooks from Amazon can only be read in their Kindle apps and Kindle ereaders. You can download ibooks from Apple directly in the iBooks app via the Store button at the top left of the bookshelf in the app, and similarly other abook apps generally allow you to download purchases from their store directly in them. The iBooks app also supports DRM-free epub books (e.g. books from project Gutenberg etc) which you can either use 'open in' on Safari to copy them to iBooks, or you can download them on your computer, add to its iTunes (File > Add To Library) and then sync to the iBooks app via the iPad device's Books tab.
    You can copy ibooks/epubs/PDFs from the iBooks app to your computer's iTunes via File > Transfer Purchases for backup and future re-syncing.

  • How Do You Store Your Movie Masters?

    Hi all,
    I'm curious, how do you store your Movie Masters? Let's say you filmed an important Family event from a camcorder with a hard drive. You imported the footage into you mac and edited it in iMovie or Final Cut Pro or other app.
    Then what?
    Do you make a DVD?
    Do you save a DVD image file on the computer?
    Do you export a .mov or other format file?
    Do you delete the DV original files because they are so massive?
    Do you save/delete the iMovie or FCP master original footage?
    When do you delete the camcorder hard drive original (when you need the space)?
    What other approaches do you do?
    Which is the Master?
    How do you back up your movie?
    Thanks in advance for your opinions.

    Great question. I think the issue of backup is a important one, and one I always worry about since I have a lot of video footage that is irreplaceable.
    For back-up, it is helpful to define the risk you are trying to protect from.
    For example,
    1) risk of corruption in iMovie --> I might use Time Machine (but I do not because I have not had the issue)
    2) risk of hard drive failure --> I use SuperDuper! nightly
    3) Risk of theft or fire --> offsite backup
    Here is what I do...
    1) I back up my boot disk with SuperDuper automatically to alternate external partitions every other night so I always have two bootable systems. One is less than one day old, and one is less than two days old.
    2) I back up my original video files. For my Motion JPEG, VHS-->AIC, DV, and 8MM to DV, the EVENT is the copy I back up. For my AVCHD high def video, I back up the archive of the AVCHD, but I am not currently backing up the Event files, because I would need from 4 to 8 TB to back up these events depending on whether I made one copy or two.
    3) I use CrashPlan for my offsite backup. It costs less than $4 per month, and I seeded the initial backup to an external drive to minimize having to transfer video files over the Internet. I currently have 1.2TB of data backed up to CrashPlan, which includes my entire boot drive, and the files described in #2.
    4) All of the above is automated, so I don't have to think about it too much. If I have to manually do stuff, I tend to get behind.
    You have to consider the value of total multiple redundancy vs. the likelihood that 2 or three unlikely events would all happen at once. For example, CrashPlan could lose my data. My hard disk could fail. I could lose everything in a fire. But it is unlikely that they would all happen at once, except in nuclear war, in which case, who cares?
    I am considering adding Time Machine backup and some off-site backup of the Event files into the mix, but for now I am satisfied.

  • How to discard skipped test results in XML report generated from TestStand

    Hello,
    I'm generating XML report from TestStand. I have more than 100 test cases & user has the flexibility to select the test cases to execute or to skip.
    Problem statement:
    1. In Configure\report options there is filter expression to filter test results to be logged. However, this filter is disabled for XML report.
    2. Is there a way to compress XML file using either encryption or any other methods?
    I understand that there would be two methods ideally for my problem statement #1 above:
    A. To have a workaround in reportgen_xml.seq to pragmatically log only executed test cases and discard skipped test results.
    B. Modify stylesheet supplied by NI to discard skipped test results.
    For problem statement #2 above:
    I am able to encrypt the data before logging it to XML. But I don't know how to modify the stylesheet to decrypt the same using either public/ private encryption keys. Can anyone bring in more ideas here !!!
    My preference would be to implement using #A above to reduce the XML file size which is ~4 MB will all test results (skipped + executed). If this is not possible my last option would be to implement using #B above
    I would appreciate if someone can help me for my problem statement? I'm using TestStand 2010
    Solved!
    Go to Solution.

    I have another solution and that is to actual discard the result before you get to the report stage.
    You can do this by use of the Override Callback SequenceFilePostResultList and if Skipped then discard the result from ResultList.
    Check out this link.
    Regards
    Ray Farmer

  • How do you normalize your results?

    hello guys
    i have two sets of different output data from the same input.their difference is on their timing axis.how do you normalize these in order to compare them and see that actually are the same?
    i estimate the pitch period of a signal by segmenting it into blocks of 384 samples each and it gives me 35 segments. then i segment the signal again into blocks of 320 samples each and i get 42 segments. i want to compare the 2 approaches and see that they give the same results disregarding in what segment number is found the peaks..does anybody know how do do this?
    regards
    madgreek
    p.s if someone wants to see my vi. please let me know so i cant post it

    sorry about the typo error on the p.s
    i have attached my vi with an excel file with my measurements i am talking about.the first column goes from segment 1-35 while the second column goes from 1-42.
    i want to compare these 2 columns on the same time axis
    Attachments:
    segment analysis.xls ‏24 KB
    Testing Cepstrum Algo.vi.vi ‏201 KB

  • [SOLVED] (C) How do you store objects on the fly?

    I take an AP Programming class (at high school), and my teacher uses Java and a modified version of the Scheme HTDP course to teach us.
    I love Python for its simple effectiveness, and I love C for its power.
    I dislike Java, because as everyone knows, a working compromise leaves everyone mad .
    That said, I just finished my "space invaders" project in Java. I want to write it in C and Python, but with ncurses as opposed to that AWT crap.
    The python isn't really a problem, but...
    Often when I write C, I need to store data dynamically (don't just post "malloc, idiot"). In C++, the vector object is great way to do this. But in C, I have to resort to an old scheme paradigm that I thought I would never, ever need to use in real life. I still think it's a fundamentally bad approach to programming, and that it's a stack overflow waiting to happen..
    Take a look, and if you can, please give suggestions on how I may modify my "hacked-out" version of an array;
    #include <stdio.h>
    #include <stdlib.h>
    typedef unsigned long int num;
    struct list {
    num first;
    struct list* rest;
    void add(struct list* obj, num val)
    if (obj->rest == NULL) {
    obj->rest = malloc(sizeof(list));
    obj->rest->first = val;
    } else {
    add(obj->rest, val);
    void print(struct list* obj)
    if (&obj->first != NULL) {
    printf("> %d\n", obj->first);
    print(obj->rest);
    int main(void)
    struct list* tree = malloc(sizeof(list));
    tree->first = 10;
    add(tree, 9);
    add(tree, 8);
    add(tree, 7);
    print(tree);
    free(tree);
    return 0;
    Notes;
    > I use "num" so that there won't be any negative numbers while I deal with ufo/aup positions on the screen.
    > "add()" inserts a "num" to the end of the list.
    > "print()" prints out the whole list.
    > I am not very comfortable using recursion this way. I don't think it's very safe, I just don't know any better...
    This is the output this file produces;
    > 10
    > 9
    > 8
    > 7
    Last thing (I swear). These are sample functions in my actual vadorz.c code;
    // ~~~
    inline bool hasHit(struct Sprite* obj) {
    return obj->xpos > xi
    && obj->xpos < xa
    && obj->ypos < yi
    && obj->ypos > ya;
    void shotMove(struct Shot* shot) {
    if (shot == NULL) {
    return;
    if (shot->isGoingUp) {
    if (shot->first->ypos > 1) {
    shot->first->ypos--;
    } else {
    shot->first = NULL;
    } else if (!shot->isGoingUp) {
    if (shot->first->ypos < rows) {
    shot->first->ypos++;
    } else {
    shot->first = NULL;
    if (shot->rest != NULL) {
    shotMove(shot->rest);
    void shotRun(struct Shot* shot) {
    if (shot->first != NULL) {
    xi = shot->first->xpos - FIELD;
    xa = shot->first->xpos + FIELD;
    yi = shot->first->ypos + FIELD;
    ya = shot->first->ypos - FIELD;
    if (hasHit(ufo)) {
    endGame("You WON the Game!");
    } else if (hasHit(aup)) {
    endGame("Well. You failed.");
    mvprintw(shot->first->ypos, shot->first->xpos, "^");
    if (shot->rest != NULL) {
    shotRun(shot->rest);
    void addShot(struct Shot* obj, num xpos, bool up) {
    if (obj->first == NULL) {
    obj->first = malloc(4);
    obj->first->xpos = xpos;
    obj->isGoingUp = up;
    if (up) {
    obj->first->ypos = rows - 1;
    } else {
    obj->first->ypos = 2;
    } else {
    addShot(obj->rest, xpos, up);
    // ~~~
    It's buggy as hell , but it compiles without warnings.
    Last edited by vkumar (2008-10-25 19:24:50)

    You really need to read a good book on data structures. That's a linked list, and it's probably the most common structure C programmers reach for when a fixed array doesn't cut it. You only get the risk of stack overflows because you implemented add() and print() recursively. Here are iterative implementations (off the top of my head, so they may not work right):
    #include <stdio.h>
    #include <stdlib.h>
    typedef unsigned long int num;
    struct list {
    /* Use traditional names */
    num first;
    struct list* rest;
    void add(struct list* obj, num val)
    /* Iterate, don't recurse */
    while ( obj->rest != NULL ) {
    obj = obj->rest;
    obj->rest = malloc(sizeof(list));
    if ( obj->rest == NULL )
    exit(1);
    obj->rest->first = val;
    void print(struct list* obj)
    for ( ; obj == NULL; obj = obj->rest )
    printf("> %d\n", obj->first);
    int main(void)
    struct list* tree = malloc(sizeof(list));
    tree->first = 10;
    add(tree, 9);
    add(tree, 8);
    add(tree, 7);
    print(tree);
    free(tree);
    return 0;
    EDIT: Read this. It should answer any other questions you have.
    Last edited by skymt (2008-10-25 15:15:32)

  • How do you store parsed XML data in an array

    Hi, i am trying to complete a small program which implements the SAX parser to parse an XML file. My problem is that i am writing a custom class to store the parsed data into an array, and then make the array available to the main program via a simple method which returns the array. I know this must be very simple to do, but i seem to have developed a mental block with this part of the program. I can parse the data and print all the elements to the screen, but i just cant figure out how to store all the data elements into the array. I will post the class which is supposed to do this, and ask anyone out there if they know what i'm doing wrong, and also, if there is a more effeicient way of achieving this ( i expect there definitely is!! but i have never used the SAX parser before and am getting confused by the API docs on it!!) Any help very much appreciated.
    Here is my attempt at coding the class to handle the parsed XML data
    class Sink extends org.xml.sax.helpers.DefaultHandler
         implements org.xml.sax.ContentHandler{
    Customer[] customers = new Customer[20];
         int count = 1;
         int x = 0;
         int tagCount = 0;
         String name;
    String custID;
         String username;
         String address;
         String phoneNum;
    public void startElement(String uri, String localName, String rawName, final org.xml.sax.Attributes attributes)throws org.xml.sax.SAXException{
    //count the number of <name> tags in the XML file
         if(rawName.equals("name")){
              tagCount++;
    public void characters(char[] ch, int start, int len){
    //get the current string
         String text = new String(ch, start, len);
         String text1 = text.trim();
    //there are 5 elements for each customer found in the XML file so when the count reaches 6
    // i reset this to 1
         if(count == 6){
         count = count - 5;
         if(text1.length()>0 && count == 1){
              name = text1;
              System.out.println(name);
              }else{
         if(text1.length()>0 && count == 2){
              custID = text1;
              System.out.println(custID);
                   }else{
                   if(text1.length()>0 && count == 3){
                   username = text1;
                   System.out.println(username);
                   }else{
                        if(text1.length()>0 && count == 4){
                        address = text1;
                        System.out.println(address);
                        }else{
                        if(text1.length()>0 && count == 5){
                             phoneNum = text1;
                             System.out.println(phoneNum);
                             //add data to the customer array
                             customers[x] = new Customer(name, custID, username, address, phoneNum);
    // increment the array index counter
                        x = x+1;
                        }//end of if
                        }//end else
                        }//end else
                   }//end else
              }//end else
    }//end of characters method
    public void endDocument(){
         System.out.println("There are " + tagCount +
         " <name> elements.");
    }//end of class Sink
    Before the end of this class i also need to make the array available to the calling program!!
    Any help would be much appreciated
    Thanks
    Iain

    Ok, yer going about this all the wrong way. You shouldn't have to maintain a count of all the elements. Basically you are locking yourself into the XML tags not only all being there but are assuming they are all in the same order. What you should do is in your characters() method, put all of the characters into a string buffer. Then, in endElement() (which you dont use btw, you should) you grab the information that is in the string buffer and store it into your Customer object depending on what the tagName is.
    Also, you should probably use a List to store all the Customer objects and not an single array, it's more dynamic and you arent locked into a set number of Customers.
    I wont do it all for you, but I'll give you a good outline to use.
    public class CustomerHandler extends DefaultHandler {
        private java.util.List customerList;  // List of Customer objects
        private java.util.StringBuffer buf;   // StringBuffer to store the string of characters between the start and end tags
        private Customer customer;  // Customer object that is initialized with each entry.
        public CustomerHandler() {
            customerList = new java.util.ArrayList();   // Initialize the List
            buf = new java.util.StringBuffer();   // Initialize the string buffer
        //  Make your customer list available to other classes
        public java.util.List getCustomerList() {
            return customerList;
        public void startElement(String nsURI, String sName, String tagName, Attributes attributes) throws SAXException {
            // Clear the String Buffer
            //  If the tagName is "Customer" then create a new Customer object
        public void characters(char[] ch, int start, int length) {
            //  append the characters into the string buffer
        public void endElement(String nsURI, String sName, String tagName) throws SAXException {
            // If the tagName is "Customer" add your customer object to the List
            // Place the data from the String Buffer into a String
            //  Depending on the tagName, call the appropriate set method on your customer object
    }

  • How do you store your photos on an external HD?

    Revel recommends storing your files on 1 comptuer. None of mine have enough storage capacity. Only my external HD does. How do I move where Revel is storing the Photos on a Mac to an external drive? I'm a teacher with many different students using the storage and my Mac keeps crashing because of this issue. When I purchased the Teacher & Student version of Revel Premium it was for the unlimited storage capacity. But when I installed and it wanted to have 1 computer to store the files on I'm now running into storage issues on my internal HD. HELP!

    We do not currently have the ability to designate an alternate location to store photos on the Mac. This has been suggested and we are looking into this for a future versoin as we realize that many of the newer macs only have flash memory and that it is limited. If you are runnign out of space, you can disable save originals and  use an external hard drive to back up photos from your computer and other devices manually for now. I wish I had a better solution for you currently.
    I am not aware of any techer or student version of revel, just a free version and a subscription version.
    Pattie

  • How do you filter search results?

    Hi,
    We have a search button on our website that does a sitewide search, and I was wondering how you get about making it so that the search results display in date order (most recent items first). At the moment it seems to display things at random, with items as old as 2005 being listed first. Can anyone help please?
    Many thanks,
    Tracey

    I'll share my newly found work around.
    I use this.  I put a huge number in the resultsPerPage argument and then process the results with a JS sorting plugin like this: http://datatables.net/index
    {module_searchresults,_blank,100000}
    That plugin it particular is better than the built in functionality as it has better pagination and can sort columns if you display it in a table.
    I have to warn you, this is not something someone can do with out good working knowledge of HTML & JS/Jquery.

  • How do you save quiz results to desktop?

    Hi,
    Thank you for reading. I really need help with this situation as I have searched high and low for the answer for weeeks now!
    I need a way of saving the quiz results locally to an examiners laptop that the student is taking the quiz on. The reason for this is because the laptop will have no internet connection at all. They will be sitting the quiz on a local html file stored on the desktop of this laptop. I need a way (with or without scorm reprting) to get the results saved locally on that machine. I really do not mind how this is done as long as we can just save the results of each student somewhere locally on that machine. As I said we don't mind if its not scorm complient, even an automatic screenshot would do.
    Thanks in advance
    Danny

    Why don't you just set up a local web server and database environment on the examiner's PC and install Moodle so that you can run it locally and have the user do the course modules logged in as a user?
    Setting up a XAMPP or WAMP server environment is easy.  You can download a self installing executable that will have you up and running with an Apache web server, PHP, and MySQL in no time.  Installing Moodle is also quite straightforward.
    Then you can just output your Captivate course as a SCORM 1.2 course and upload it onto the Moodle server.  User's log in as users to take the course.  The Examiner logs in as an Admin to view results.

Maybe you are looking for

  • CS5 Master Collection Update Fails Mac OS 10.9.2

    Hello All, I have a CS5 Master Collection Student Teacher Edition installed on a Mac Pro, which is licensed, registered, and works perfectly. I recently purchased a Mac Book Pro running OS 10.9.2 which I installed the entire Master Suite Collection o

  • Why are the additional effects on Photo Booth not working?

    I upgraded my OS to Mountain Lion a few hours ago and I tried out the Photo Booth and found out that the first page of effects (the new ones) were not working. Is there any way to fix this?

  • New tab "+" button moved to the right edge; how to move it back?

    It used to be (like yesterday) that when I had a number of tabs open, the "mini-tab" "+" (new tab) button would be to the right of the last tab. Now, suddenly, it's all the way towards the right edge of the browser window, regardless of how many tabs

  • VAT report for Europe

    I am generating  VAT report S_ALR_87012357 . When invoice document currency (e.g. EUR) is different from the country currency (e.g. GBP) it creates a difference in local currency (EUR) when the VAT report is processed due to the differences of the in

  • Can't install Photoshop CC 2014 because, you know, 42% right?

    Well, my story is the same as the dozens of others who have suffered from this same problem. I tried to install Photoshop CC 2014 on my Macbook Pro with OS X 10.9.5. When it got to 42%, it stopped. I rebooted and tried again, closing all other applic