<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    For the Sugar Network project we used Selenium UI testing.<br>
    Basically you can record a standard interaction with a Firefox
    plugin [1].<br>
    <br>
    This in turn produces scripts that can be used in a server with an
    embedded firefox browser. At the time, I integrated this with the
    Jenkins continuous integration system.<br>
    <br>
    I recomend Selenium for semi-automated testing, that is, from your
    browser. It helps to automate testing an entire workflow or use
    case, for instance.<br>
    <br>
    Helps to work in a more agile fashion.<br>
    <br>
    The automated bit took a while to set up but did warn us early when
    something broke. It would run all the tests for every git commit.<br>
    <br>
    Hope it helps,<br>
    Sebastian<br>
    <br>
    [1] <a class="moz-txt-link-freetext" href="http://docs.seleniumhq.org/projects/ide/">http://docs.seleniumhq.org/projects/ide/</a><br>
    <br>
    <br>
    <div class="moz-cite-prefix">El 29/03/15 a las 11:58, Adam Holt
      escibió:<br>
    </div>
    <blockquote
cite="mid:CAHaBuGfbSAskfwzni4yLOeYPzas501n3+GnB=PLRXRwFOM1T+w@mail.gmail.com"
      type="cite">
      <div dir="ltr">On Sun, Mar 29, 2015 at 12:45 PM, George Hunt <span
          dir="ltr"><<a moz-do-not-send="true"
            href="mailto:georgejhunt@gmail.com" target="_blank">georgejhunt@gmail.com</a>></span>
        wrote:<br>
        <div class="gmail_extra">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div dir="ltr">I woke up thinking that a little time spent
                on testing automation might be appropriate. And I'm
                searching for ideas.
                <div><br>
                </div>
                <div>Tony presents a wrinkle I had not thought of: how
                  to automate clicking on GUI buttons.</div>
                <div><br>
                </div>
                <div>I can extend Tim's test script, such that it
                  queries the target for "server mode"(appliance,
                  lan-contoller,gateway) and only tests the functions
                  that are appropriate.</div>
                <div><br>
                </div>
                <div>Each machine, or at least software install, can be
                  assigned a UUID.</div>
                <div><br>
                </div>
                <div>The test script could output a text file in sqlite
                  format, as well as to the screen.</div>
                <div><br>
                </div>
                <div>
                  <div>One of the fields in the sqlite database could
                    store the /etc/xsce/xsce.ini file, or we could parse
                    that file, and populate individual fields, as
                    appropriate.</div>
                </div>
                <div><br>
                </div>
                <div>Sqlite is a  format that is recognized by couchdb,
                  and I think couchdb can roll up to the cloud easily.</div>
                <div><br>
                </div>
                <div>Tim's cmdsrv interface seems to lend itself to
                  automated testing pretty well -- in that a script can
                  send events to the cmdsrv.socket, just like the GUI
                  does.</div>
                <div><br>
                </div>
                <div>I don't know JavaScript and DOM well enough.  Are
                  there ways that JS can click buttons in the proper
                  sequence to test arbitrary GUI applications?</div>
                <div>
                  <div><br>
                  </div>
                  <div>I liked the <a moz-do-not-send="true"
                      href="http://laptop.org" target="_blank">laptop.org</a>
                    page we had which had a matrix of services on one
                    axis, and platforms on the other axis. The matrix
                    started out untested (yellow), and turned green or
                    red based upon test results.</div>
                </div>
              </div>
            </blockquote>
            <div><br>
              Specifically, <a moz-do-not-send="true"
href="http://wiki.laptop.org/go/XS_Community_Edition/0.4/Testing/Results">http://wiki.laptop.org/go/XS_Community_Edition/0.4/Testing/Results</a>
              <br>
              <br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div dir="ltr">
                <div>
                  <div>Are there any other ideas?</div>
                </div>
              </div>
            </blockquote>
            <div> <br>
            </div>
            <div>Am cc'ing server-devel in case others can recommend?<br>
              <br>
            </div>
            <div><br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div dir="ltr">
                <div>
                  <div class="gmail_extra">On Sun, Mar 29, 2015 at 6:59
                    AM, Tim Moody <span dir="ltr"><<a
                        moz-do-not-send="true"
                        href="mailto:tim@timmoody.com" target="_blank">tim@timmoody.com</a>></span>
                    wrote:<br>
                    <div class="gmail_quote">
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px 0.8ex;border-left:1px solid
                        rgb(204,204,204);padding-left:1ex">George, I'm
                        guessing that the 'it' in 'it doesn't work' is
                        the install, which uses the HaitiOS script and
                        is therefore dependent on a particular OS and
                        machine.  The tests themselves should work on
                        other XOs and to a lesser extent in other
                        environments, except for the XO specific tests
                        like idmgr and ds-backup that run as olpc.<br>
                        <br>
                        I have added instructions for manually
                        installing to the README.<br>
                        <br>
                        Tony, a number of these tests connect to a
                        particular url on the server and look for a
                        known string in the result.  Probably your
                        buttons could be tested this way.<br>
                        <br>
                        I'm sure there is a great deal more that needs
                        to be added, but I find that this test runs in
                        about 15 seconds and tells me if one of the
                        things it knows about didn't get installed or
                        isn't running.<br>
                        <br>
                        Anyone can feel free to add more tests.<br>
                        <span><br>
                          -----Original Message-----<br>
                          From: <a moz-do-not-send="true"
                            href="mailto:unleashkids@googlegroups.com"
                            target="_blank">unleashkids@googlegroups.com</a>
                          [mailto:<a moz-do-not-send="true"
                            href="mailto:unleashkids@googlegroups.com"
                            target="_blank">unleashkids@googlegroups.com</a>]
                          On Behalf Of Tony Anderson<br>
                          Sent: Saturday, March 28, 2015 11:33 PM<br>
                          To: <a moz-do-not-send="true"
                            href="mailto:unleashkids@googlegroups.com"
                            target="_blank">unleashkids@googlegroups.com</a><br>
                          Subject: Re: [UKids] Enthusiasm for a Centos
                          School Server is wonderful<br>
                          <br>
                        </span>
                        <div>
                          <div>Hi, George<br>
                            <br>
                            Automating tests for the school server would
                            be wonderful but is clearly a major project.<br>
                            <br>
                            Currently I test manually by clicking all
                            the buttons to see that I get the right
                            response. Luckily, I don't have to deal with
                            the many network environments that XSCE is
                            attempting to support so that should make it
                            simpler.<br>
                            <br>
                            However, the current content has 26 major
                            buttons to be tested. Some of these (e.g.
                            Gutenberg search) would require a succession
                            of urls to get to the final deliverable.<br>
                            <br>
                            I have also added a learning management and
                            library capability that would require test
                            retrievals of database records (another 5
                            major buttons).<br>
                            <br>
                            Finally, I would need to have a test of the
                            datastore backup/restore, collection of
                            results of activities into the db.<br>
                            <br>
                            So, the manual tests are easy but it is hard
                            to make sure you have completely tested a
                            new install.<br>
                            <br>
                            Tony<br>
                            <br>
                            On 03/29/2015 06:36 AM, George Hunt wrote:<br>
                            > And testing is going to be a lot rough
                            at first. I started using Tim's<br>
                            > suggestion to build up an automated
                            server from<br>
                            > <a moz-do-not-send="true"
                              href="https://github.com/XSCE/xsce-tests"
                              target="_blank">https://github.com/XSCE/xsce-tests</a>.
                            But when it didn't work, I<br>
                            > discovered that I was using an XO1.5,
                            and the code had been written<br>
                            > for an XO1, but the documentation
                            didn't indicate anything about the<br>
                            > hardware platform.<br>
                            ><br>
                            > In any case, if you clone <a
                              moz-do-not-send="true"
                              href="https://github.com/XSCE/xsce-tests"
                              target="_blank">https://github.com/XSCE/xsce-tests</a>,
                            you<br>
                            > don't need to go through all the
                            process of making a stick, and<br>
                            > loading it on a XO1 using tiny core
                            linux. The useful scripts are in<br>
                            > the /testing folder.  You can use git
                            directly on an XO to fetch them.<br>
                            ><br>
                            > And then the scripts themselves will
                            need to be modified I think,<br>
                            > based upon which server mode you are
                            testing (appliance,<br>
                            > lan-controller, or gateway).  An
                            appliance exists on an infrastructure<br>
                            > which already has gateway, dhcp, dns,
                            etc). A lan-controller is<br>
                            > sufficient to itself, and gateway is a
                            lan-controller plus. Obviously<br>
                            > not all test are appropriate in every
                            mode.<br>
                            ><br>
                            > I will be the guinea pig, and start
                            testing my rpi2 installation, and<br>
                            > share with you all the trials and
                            tribulations. For that purpose I<br>
                            > have created a public spread sheet,
                            (now mostly empty) which I will<br>
                            > use to document my testing progress. I
                            invite everyone to contribute<br>
                            > and tweak that page, and maybe
                            collectively, we can make it a snapshot<br>
                            > of what works and doesn't.<br>
                            ><br>
                            > This new publicly writeable sheet (with
                            this link) is at<br>
                            > <a moz-do-not-send="true"
href="https://docs.google.com/spreadsheets/d/18Y07kuAiHyMGJNQLydgo7GbuHShu_F"
                              target="_blank">https://docs.google.com/spreadsheets/d/18Y07kuAiHyMGJNQLydgo7GbuHShu_F</a><br>
                            > 5BQWA3egt_1PU/edit?usp=sharing<br>
                            ><br>
                            <br>
                            --<br>
                            Unsung Heroes of OLPC, interviewed live @ <a
                              moz-do-not-send="true"
                              href="http://unleashkids.org"
                              target="_blank">http://unleashkids.org</a>
                            !<br>
                            ---<br>
                            You received this message because you are
                            subscribed to the Google Groups "Unleash
                            Kids" group.<br>
                            To unsubscribe from this group and stop
                            receiving emails from it, send an email to <a
                              moz-do-not-send="true"
                              href="mailto:unleashkids%2Bunsubscribe@googlegroups.com"
                              target="_blank">unleashkids+unsubscribe@googlegroups.com</a>.<br>
                            For more options, visit <a
                              moz-do-not-send="true"
                              href="https://groups.google.com/d/optout"
                              target="_blank">https://groups.google.com/d/optout</a>.<br>
                            <br>
                            --<br>
                            Unsung Heroes of OLPC, interviewed live @ <a
                              moz-do-not-send="true"
                              href="http://unleashkids.org"
                              target="_blank">http://unleashkids.org</a>
                            !<br>
                            ---<br>
                            You received this message because you are
                            subscribed to the Google Groups "Unleash
                            Kids" group.<br>
                            To unsubscribe from this group and stop
                            receiving emails from it, send an email to <a
                              moz-do-not-send="true"
                              href="mailto:unleashkids%2Bunsubscribe@googlegroups.com"
                              target="_blank">unleashkids+unsubscribe@googlegroups.com</a>.<br>
                            For more options, visit <a
                              moz-do-not-send="true"
                              href="https://groups.google.com/d/optout"
                              target="_blank">https://groups.google.com/d/optout</a>.<br>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                    <br>
                  </div>
                </div>
              </div>
              <div class="">
                <div class="h5">
                  -- <br>
                  Unsung Heroes of OLPC, interviewed live @ <a
                    moz-do-not-send="true" href="http://unleashkids.org"
                    target="_blank">http://unleashkids.org</a> !<br>
                  --- <br>
                  You received this message because you are subscribed
                  to the Google Groups "Unleash Kids" group.<br>
                  To unsubscribe from this group and stop receiving
                  emails from it, send an email to <a
                    moz-do-not-send="true"
                    href="mailto:unleashkids+unsubscribe@googlegroups.com"
                    target="_blank">unleashkids+unsubscribe@googlegroups.com</a>.<br>
                  For more options, visit <a moz-do-not-send="true"
                    href="https://groups.google.com/d/optout"
                    target="_blank">https://groups.google.com/d/optout</a>.<br
                    clear="all">
                  <br>
                  -- <br>
                  <div class="gmail_signature">
                    <div dir="ltr">Unsung Heroes of OLPC, interviewed
                      live @ <a moz-do-not-send="true"
                        href="http://unleashkids.org" target="_blank">http://unleashkids.org</a>
                      !</div>
                  </div>
                </div>
              </div>
            </blockquote>
          </div>
        </div>
      </div>
      -- <br>
      Unsung Heroes of OLPC, interviewed live @ <a
        moz-do-not-send="true" href="http://unleashkids.org">http://unleashkids.org</a>
      !<br>
      --- <br>
      You received this message because you are subscribed to the Google
      Groups "Unleash Kids" group.<br>
      To unsubscribe from this group and stop receiving emails from it,
      send an email to <a moz-do-not-send="true"
        href="mailto:unleashkids+unsubscribe@googlegroups.com">unleashkids+unsubscribe@googlegroups.com</a>.<br>
      For more options, visit <a moz-do-not-send="true"
        href="https://groups.google.com/d/optout">https://groups.google.com/d/optout</a>.<br>
    </blockquote>
    <br>
  </body>
</html>