Activity testing automation
Jump to navigation
Jump to search
Transcript
The transcript this page is taken from is shown below.
<mchua> dah, sorry. getting water took longer than I thought. <mchua> Ok, so brainstorm time... finding our charter... one sec... * mchua notes that others are welcome to participate as well * robertofaga (n=robertof@201-43-56-79.dsl.telesp.net.br) has joined #olpc * aa has quit (Read error: 110 (Connection timed out)) <mchua> Dream up automation designs to present to group next week. "I'm a tester. I want to automate this boring thing. What is my ideal interface to do so / the most beautiful tool I could imagine for it?" <garycmartin> mchua: sugarbot <mchua> garycmartin: what makes sugarbot so beautiful? <garycmartin> mchua: I've emailed zach to see if it runs on XOs, but the downside seems to be it's been more degigned as an infrastructure tool (jubuild and buildbot). <mchua> http://code.google.com/p/sugarbot/ <mchua> http://code.google.com/p/sugarbot/wiki/HowDoesSugarbotWork has a usage example <mchua> qualities of sugarbot that I really like: <garycmartin> mchua: we write test cases for a bunch of the bugs found as sugarbot scripts. That makes us define them well, and test when fixed. <mchua> * it's a completely separate thing from the Activity code itself, and from Sugar <mchua> garycmartin: in my ideal world, a bug report would not go to developers for fixin' without having a test attached that fails due to the bug, and will pass when the bug is resolved. <mchua> (in my very, very ideal world.) <garycmartin> mchua: We then just need to focus on collecting natural language type reports and turning them into scripts, that over time hopefully cover a good chunk of test issues/cases. <mchua> garycmartin: agreed! what kinds of things and tools - and qualities/features of those things and tools - do we want? * dsaxena (n=dsaxena@c-67-160-162-157.hsd1.or.comcast.net) has joined #olpc <garycmartin> mchua: Your world is truly a perfect sphere ;-) <mchua> garycmartin, adricnet: do you want to just take 10 minutes and type out wishlists as fast as possible, and then review? <mchua> the brainstorming "quality < quantity" thing <mchua> garycmartin: yeah, I know. :) I like to start with a platonic ideal, and then figure out how close to it I can get. <adricnet> Maybe, I was looking for a linka nd got pulled away. If the levers and button in Sugarbot are solid enough it sound pretty ideal.. * ivazquez1 (n=ivazquez@fedora/ignacio) has joined #olpc <garycmartin> mchua: usually ends up 'oblate spheroid' when all said and done :-) <mchua> adricnet: I think Sugarbot is one possible (and very attractive) option for Activity test automation - the fact that I can't figure out how to generate and run a test with it in <15min, starting cold, means that there's work to be done yet * vpovirk` (n=urk@c-76-17-237-120.hsd1.mn.comcast.net) has joined #olpc * vpovirk has quit (Read error: 113 (No route to host)) <mchua> I'll start spewing out my wishes, with a 10min timer set (I may run out before them) <mchua> these are wishes for an Activity testing framework/procedure, and will get pulled into sanity-land later ;) <mchua> * less than 1hr setup required for testers <mchua> * less than 1hr setup required for developers <garycmartin> mchua: sugarbot is better as a centraly admined VM or box that we would post scripts to. <mchua> * new Activities made compatible with testing tool also in < 1hr <mchua> garycmartin: like [[Tinderbox]] in hypothetical? <garycmartin> mchua: yep <mchua> * central repository for tests, separate from (but clearly linked to) the repo for that Activity * dwmw2 is now known as dwmw2_gone * J5 has quit (Read error: 110 (Connection timed out)) <mchua> * process for translating natural language bug reports into Activity test scripts <mchua> * all bugs submitted to developers to fix have such test scripts attached (test-driven development) <adricnet> this suggests that the tests should live in the projects source repo, as $deity intended .. <mchua> * all automated scripts for an Activity (from fixed bugs or otherwise) are automatically run against new builds of that Activity, with a pass/fail display conveyed to the maintainer immediately <adricnet> I'd like the Sugarbot interface for users to be about like etoys or turtleart. * ivazquez has quit (Operation timed out) * vpovirk` has quit (Remote closed the connection) <mchua> adricnet: awesome ideas, keep going! <mchua> garycmartin: I'm trying to rephrase yours into feature requests (which may or may not already be implemented in sugarbot/tinderbox/otherwise), but I'm sure you have a lot more good ideas * ivazquez1 is now known as ivazquez <mchua> * should be usable by the average 10-year-old <mchua> (to report the first pass of the Activity bug, not necessarily to finish the automation script) <garycmartin> mchua: sugarbot works through X as far as I can tell, so all activities 'should' be drivable without modification <mchua> * easily extensible - Activity test automation scripts should be in a format that's completely specified and published, so that automated tools could also later generate said test scripts <adricnet> openqa's selenium and mozilla's litmus <adricnet> sugarbot needs to have XML output like Selenium seems to.. * vpovirk (n=urk@c-76-17-237-120.hsd1.mn.comcast.net) has joined #olpc <mchua> garycmartin: it doesn't work through X, iirc; it uses XML-RPC which calls the functions of the Activity itself (not through the GUI, I believe) <garycmartin> * tests need to be aimed at correct releases (do we keep old tests for supporting old deployments not yet upgraded?) <mchua> garycmartin: I'd need to read the code more to confirm that too, though <mchua> * tests need to be available for old releases for historical purposes <garycmartin> mchua: me too by the sounds of it :-) <adricnet> tests need to stay in repor for effectively forever. <mchua> * tests should be separately downloadable and locally runnable outside of the centralized tinderbox-ish setup so that those who wish to experiment with local changes before pushing to central repo can <adricnet> although testsuites can be targeted to releases or familys (test these for 8.2.x) <adricnet> mchua: ++ <morgs> I'd love to see us (developers) doing true test driven development by having test frameworks in the code itself... <mchua> oh! also, test framework should be open-source... <adricnet> The harness has to run on a single XO as well as on our virtual mehemoth <mchua> i.e. *no* proprietary anything should be required to do testing or development for an Activity <adricnet> pre-depends OSS/Free software and data, eyah <garycmartin> morgs: is that a war I can hear starting... ;-) <mchua> morgs: <3 <adricnet> morgs: They opt to have the option. Later, we break out the stick. <morgs> It has to be a really big stick :) <mchua> * guidelines on how devs can make their code "more testable" (this sentence full of vagaries, not sure how/who can do this) <garycmartin> morgs: (test driven developent can be very slow, painful, and boring for devs) <mchua> ding ding ding! my timer says 10 minutes, do we want to keep spewing ideas for another 5? we have 40 minutes left in this brainstorm <morgs> garycmartin: yes. So can weeks of lost time tracking down unnoticed regressions :) <garycmartin> morgs: (well get even less devs scratching that itch...) <adricnet> different testsuites for full integration and for each tiny dev cycle .. * morgs isn't ready to scratch that itch, so it will lie until somebody actually makes it happen <adricnet> mchua: Seems like we ahve enough to start arguing about * vpovirk has quit (Remote closed the connection) <mchua> * developers should be able to opt-out of having their code tested, *but* know that all shipped-with-XOs code *must* be tested <adricnet> Errr .. g'luck on that one.. <mchua> adricnet: yeah, it's a wishlist :) <mchua> for that matter <mchua> * a ponoy <mchua> er, <mchua> * pony <adricnet> Ponies for everyone! <adricnet> And cash. Yay cash! * GoatCheezWork (n=Miranda@rrcs-97-76-61-66.se.biz.rr.com) has joined #olpc <garycmartin> morgs: I know, swings and roundabouts. Do you like a life of grey coding bordom, or 2 months of joy followed by 2 months of hell. Some where in the middle is a likely sweet spot :-) <mchua> adricnet, garycmartin, morgs - I'm gonna clean this up into a list of ideas and pastebin so it's easier to read, can you guys elucidate on the current state of what it's like to test Activities from the tester/dev perspective in the meantime? (should take me 5min or less) <mchua> (particularly interesting: "My god, it's full of pain!" areas, and "I love this part of the process" things.) * vpovirk (n=urk@c-76-17-237-120.hsd1.mn.comcast.net) has joined #olpc <adricnet> hmm .. some want to name a victim activity <garycmartin> mchua: with my Moon dev hat on, I test it all through before each release, but that's because it's simple and I can use all the possible inputs. <adricnet> For Capture there's trying to aim the screen at the cat.. <kevix> mel, is this wishlist going on w.l.o or somewhere else? <garycmartin> mchua: I make sure I both resume and clean start through all it's view modes. <garycmartin> mchua: I make sure I've tested in the primary languages to make sure translation sctrings all come through. <mchua> kevix: yes - at the end of this we should decide where everything is getting published dogmeat danjared dbagnall_ dgilmore dirkx dmead dsaxena dwmw2_gone * vpovirk has quit (Client Quit) <mchua> (aside from on the testing mailing list - kevix, are you subscribed?) <garycmartin> mchua: I leave it running for long durations watching both memory and cpu (for leeks or hogging). * mchua adds * should catch memory leaks and * should test i18n to wishlist <kevix> no. I get the mails from the bug list. not from testing-*-* <adricnet> Lol. *wishes really hard* <garycmartin> mchua: I look at other sources of information to make sure it's not telling me fibs. <garycmartin> mchua: Oh darn, I'm beeping. Sorry all have to go now (hard stop for me). * vpovirk (n=urk@c-76-17-237-120.hsd1.mn.comcast.net) has joined #olpc <kevix> bye, gary. <garycmartin> kevix: bye! * garycmartin has quit (Remote closed the connection) <mchua> thanks, garycmartin! <mchua> dah, too late <mchua> pastebin! <mchua> kevix, adricnet: http://pastebin.ca/1254589 <mchua> referring to these by line number... which do you think are (1) highest priority, (2) unrealistic, and (3) already done? <kevix> snarking the URL <adricnet> If someone could tell me the state of Sugarbot today ... * rgs_ (n=rgs@190.128.250.238) has joined #olpc <mchua> My 'highest priority' list: 27, 18, 5, 11, 8 <mchua> adricnet: http://code.google.com/p/sugarbot/ is all we have, unless we can track down the project owners (no luck so far) <mchua> adricnet: it looks like no work has been done on it since september 8, 2008 <mchua> my 'unrealistic' list: 22 (in that we shouldn't write test scripts for old and no-longer-relevant releases; that's a lot of burden - we should keep all the scripts we write, though, so when the current builds become no-longer-relevant they'll still have their associated tests with them), and 31-22 are... probably... yeah. <mchua> I don't think any of these are completely implemented, to my knowledge (where "implemented" == "in widespread use by the olpc dev/test community") but [[Tinderbox]] and [[Sugarbot]] have some elements of these requests in them <adricnet> What does (a) OLPC Tinderbox setup test for? <adricnet> Mozilla tiderbox is more useful when there is compliation? <mchua> adricnet: OLPC-tinderbox is afaik currently not maintained <mchua> adricnet: the Big Cool Thing it does is that it takes hw measurements as well <adricnet> mchua: Roger. do we know what it did? <adricnet> "hw measurements" ? <mchua> (there's an XO at 1cc that has tiny voltage probes sticking out of it for measuring stuff like power consumption for the different builds) <mchua> adricnet: Not... very well. I mean, we can always read the code. http://dev.laptop.org/git/projects/tinderbox * bjordan (n=bjordan@cpc2-hitc2-0-0-cust908.lutn.cable.ntl.com) has joined #olpc <mchua> adricnet: this is something I'm supposed to clean up and work on <adricnet> High voltage! <adricnet> sorry, random Dolby moment. <kevix> so activities can be tested by the developers framework and by an OLPC framework <mchua> adricnet: ...ostensibly after the g1g1 crazy washes over <mchua> kevix: what would the difference between the two be? * robertofaga has quit (Read error: 60 (Operation timed out)) <adricnet> mchua: Sure. Afaik, tbox would be great for does ita ll still build, but I dunno if it does functional testing * ctyler has quit ("returning to Spare Oom") <adricnet> Well, there's unit tests, functional tests, and QA ... they should all at least share some trade languages <adricnet> I _think_ the comm testting for activities is going to be QA, which hopefully will come up with some unit/functional tests to feed the devs.. * ctyler (n=chris@global.proximity.on.ca) has joined #olpc <mchua> adricnet: tbox does really, really minimal func testing <mchua> adricnet: is my understanding <mchua> adricnet: maybe a better way of putting it... *rummages for words* <morgs> tinderbox seems to basically test that things boot up and start up. <mchua> adricnet: "Whenever a new build goes out, tinderbox runs a certain (python) script to be automatically run on an individual XO that's hooked up in 1cc." <mchua> This script (afaik) currently tests whether the build loads, whether Activities start, and also logs some power measurements (and... possibly makes sure those measurements fall within a certain numerical range.) <adricnet> Ah, kk <adricnet> That about syncs up with what I was thinking, cool. And this will need to be ressurrected, later. Cool. * morgs -> $HOME <mchua> The script currently running on 1cc-tinderbox can be modified. It is also possible (but difficult, right now) for others to set up their own tinderbox machines, and run the same (or different) scripts on them. <mchua> adricnet: Yeah, and I don't yet have a good view of the scope of work required for that resurrection. <mchua> (Alas.) <mchua> adricnet: since we have 12 min to wrap up, how does this sound, in order of implementation? <mchua> 1) make a python library for testing, which can be run externally against an Activity and return a True/False value as to whether it passed (possibly/probably resurrecting sugarbot code or design) <mchua> (this would be separate python files, and import sugarbot-or-something-like-it, and import the Activity as specified in some filename in the test-python-file code, and run, and return True or False.) <adricnet> Right. Might want to start with Py Test::Unit stuffs <mchua> Yep. <mchua> So for a tester or developer, the procedure to run a test would look like this <mchua> * download foo_test.py <mchua> * open Foo.Activity folder <marcopg> I missed all of this meeting... <mchua> * throw foo_test.py into Foo.Activity/tests <mchua> * python foo_test.py <mchua> * observe results <marcopg> something that I would like to see, is these scripts to not be tinderbox specific <marcopg> I'd like to run them also on SL buildbot <marcopg> (sorry to interrupt your attempt to summarize!) <mchua> marcopg: not at all! <adricnet> marcopg: we're dreaming up a harness interface that should run everwhere, yes :) <marcopg> adricnet: great! <mchua> marcopg: ooh, I should ask you about buildbot in about 6 minutes ;) <marcopg> :) <mchua> adricnet: after that, 2) would be "make a central repository for such tests" <adricnet> that's tricky .. but yeah they have to be kept somewhere <mchua> adricnet: and then 3) automate the running of all the tests in (2) on an XO...somewhere... maintained by somebody.... <marcopg> central repository or per activity? <mchua> adricnet: and then 4) make that "somewhere, maintained by somebody" XO able to be set up by anybody, anywhere (this probably is the "resurrect tinderbox" part) <marcopg> that's something we discussed with zach and I'm not sure what is better <adricnet> well yes on three where someone is 1..x people and somewhere is 1..x XO <adricnet> Yeah, the virtual thingy .. <mchua> marcopg: btw, do you know how to get in touch with zach? (or titus, or grig?) They probably have figured much of this out already <adricnet> marcopg: It's up for argument .. should these QA level tests be in repo with the software or all live together somewhere? <marcopg> mchua: you mean other than sending them mail? ;) <mchua> adricnet: maybe another way of rephrasing that question is "when you download an Activity, should that also download the tests for that Activity?" <mchua> marcopg: yeah. <marcopg> adricnet: right, I don't have an answer unfortunately :) <adricnet> Need to clarify our terms, but yes <marcopg> mchua: nope, but I sent them mail and they have been responsive usually * shenki has quit (Read error: 104 (Connection reset by peer)) <mchua> marcopg: ah ok, I'll try again. maybe it's my mail acting up (it has been, lately. I'm not sure why.) <marcopg> if you post about the plans somewhere <mchua> adricnet: whoo. almost at time for today - anything else? <marcopg> I can have a look too <adricnet> l.o mail was down yesterday? <marcopg> I thought a *little* bit about the issues already <marcopg> and worked some on infrastructure (buildbot only) <mchua> I think I have a much better idea of what I want from an Activity test framework, at least, so this has been helpful to me <adricnet> Yay helpful. <mchua> adricnet: anything we should do to make this more adric-helpful, too? <mchua> (I'm planning on writing up the notes/plans on the wiki, mailing to the testing list, asking people to shoot at it) <adricnet> mchua: Not yet. Need to have some examples of these Comm Testing tests so that we can argue about format and where to keep them <mchua> adricnet: Aye, right. Concrete examples, working code... <mchua> I think there's enough constraints in the design doc that we'll get from this discussion to toss out a couple prototypes, though <adricnet> mchua: Well, complete-ish PoCs at least <marcopg> are you thinking to write your custom scripts? or to base on existing frameworks? <adricnet> prototypes, yeah <mchua> adricnet: cool, then we're done, I think <mchua> adricnet: thank you! <mchua> marcopg: base on existing, whenever possible <mchua> marcopg: I am a lazy bum ;) <marcopg> heh <adricnet> Laziness is a virtue <marcopg> there is sugarbot <marcopg> and also another one which I can't remember right now mmm <marcopg> (both for gtk) <adricnet> Selenium ? <adricnet> Oh, notthat low-level oops <marcopg> oh dogtail <mchua> ah! I think you sent me dogtail <mchua> I haven't gotten a chance to look at it, yet - been working on remote testing scripts (...incredibly slowly, alas) <marcopg> yeah me neither... <marcopg> would be nice to compare sugarbot and dogtail <mchua> it sure would. <marcopg> would be also useful to just ask zach about it <marcopg> perhaps he looked into dogtail before doing his own thing <mchua> Ooh, that's a great question to ask zach. <marcopg> zach was supposed to integrate sugarbot into jhbuild btw <mchua> marcopg: btw, do you have this channel logged, or do you want me to send you the log from the start of the brainstorm? <marcopg> but we haven't heard anything from him about ti <marcopg> busy with school I guess :/ * kevix has quit (Read error: 110 (Connection timed out)) <marcopg> mchua: don't think I have all of it, logs would be great