(Thinking About) Introducing Agile Testing to the One Laptop Per Child Project C. Titus Brown Asst. Prof., Michigan State U. C. Titus Brown.

Slides:



Advertisements
Similar presentations
(nothing to see here). First thing you need to learn is that sysadmin is about people, not technology If youre a sysadmin so you dont have to deal with.
Advertisements

Agile Software Distribution
Software Testing with Visual Studio 2013 & Team Foundation Server 2013 Benjamin Day.
Why Use Test Driven Development (TDD)?.  Why the need to change to TDD.  Talk about what TDD is.  Talk about the expectations of TDD.
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Prashant Lambat Sr. Manager SQA Engineering Symantec Corporation, Pune Date: 29 th January 2011.
(Web) Testing for Pythonistas C. Titus Brown Grig Gheorghiu C. Titus Brown Grig Gheorghiu.
CS 5150 Software Engineering
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
 What is Software Testing  Terminologies used in Software testing  Types of Testing  What is Manual Testing  Types of Manual Testing  Process that.
1 CMPT 275 Software Engineering Revision Control.
Software Development Unit 6.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Terms: Test (Case) vs. Test Suite
Bulk facility SAG INFOTECH PVT. LTD. Service begins here…
Michael Burnside Blog: Software Quality Assurance, Quality Engineering, and Web and Mobile Test.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Zubanov Alexei, 2006 Aug 07 – Sep 28 QtROOT package extension with Coin3D lib.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
4/23/ :45 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
1 Performance Optimization In QTP Execution Over Video Automation Testing Speaker : Krishnesh Sasiyuthaman Nair Date : 10/05/2012.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
New perfSonar Dashboard Andy Lake, Tom Wlodek. What is the dashboard? I assume that everybody is familiar with the “old dashboard”:
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
Operated by Los Alamos National Security, LLC for NNSA U N C L A S S I F I E D Slide 1 LANL-stor and the Challenges of Evolutionary Development Managing.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
GAAIN Virtual Appliances: Virtual Machine Technology for Scientific Data Analysis Arihant Patawari USC Stevens Neuroimaging and Informatics Institute July.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Hack for HHVM Converting Facebook Julien Verlaguet Software Engineer.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
In the Labs… X-Bot 2003 by Overtech Technologies.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Graham Thomas Independent Software Testing Consultant Software Testing Secrets That We Dare Not Tell ! #esconfs.
Software Quality Assurance and Testing Fazal Rehman Shamil.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
MAY LEGO ENVISON SYSTEM Team members: Brennan Beavers (CprE) Justin Goers (CprE) Erin Isvik (CprE) Roger Rathje (CprE) Client: Toying with Technology.
Unit Testing & Code Coverage Please download and install EclEmma (link in resources section…I recommend Option 2) Also snarf the junit code for today’s.
Efficiently Solving Computer Programming Problems Doncho Minkov Telerik Corporation Technical Trainer.
T Project Review Rajoitteiset I2 Iteration
Continuous Improvement. Start Simple and Continually Improve E.g., Gmail Labels 1.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Graphics Lab: MyPaint Dan Maselko 1. MyPaint Description  For this assignment you will be implementing a very simple paint program.  You should be able.
Outline Announcements: –HW II due today! –HW III on web CVS.
Northwest Arkansas.Net User Group Jay Smith Tyson Foods, Inc. Unit Testing nUnit, nUnitAsp, nUnitForms.
Benjamin Day Get Good at DevOps: Feature Flag Deployments with ASP.NET, WebAPI, & JavaScript.
Software Testing and Quality Assurance Practical Considerations (1) 1.
1 March 12, Testing William Cohen NCSU CSC 591W March 12, 2008.
An Introduction to. Where did Fedora come from? Boxed set every 6 months == Failed business model [
1 © Agitar Software, 2007 Automated Unit Testing with AgitarOne Presented by Eamon McCormick Senior Solutions Consultant, Agitar Software Inc. Presented.
Items to consider before automating an application
HTTP AND ABSTRACTION ON THE INTERNET
Jason Bury Dylan Drake Rush Corey Watt
Introduction to Visual Basic 2008 Programming
What’s New in Visual Studio 2017
Automation – “A Critical Component of Agile testing”
Applied Software Implementation & Testing
X in [Integration, Delivery, Deployment]
Chapter 2 Software Processes
CIS16 Application Development – Programming with Visual Basic
Bringing more value out of automation testing
Jamie Cool Program Manager Microsoft
Presentation transcript:

(Thinking About) Introducing Agile Testing to the One Laptop Per Child Project C. Titus Brown Asst. Prof., Michigan State U. C. Titus Brown Asst. Prof., Michigan State U.

Solving Social Problems, Technically

Rough outline Agility (agility?) and Software Development Forensic code analysis The OLPC and sugar-jhbuild Agility (agility?) and Software Development Forensic code analysis The OLPC and sugar-jhbuild

Agile methods hinge on… agility in software practices Rapid iterations Immediate feedback Frequent releases Test automation Rapid iterations Immediate feedback Frequent releases Test automation

Automated testing A keystone of agile methods is automated testing. Having good automated tests lets you refactor and re-engineer small parts of big code bases. There are many other benefits, too. A keystone of agile methods is automated testing. Having good automated tests lets you refactor and re-engineer small parts of big code bases. There are many other benefits, too.

Forensic code analysis Large software projects are living, breathing, evolving organisms. We lack tools to study them. CPython has some nice hooks for this purpose. Large software projects are living, breathing, evolving organisms. We lack tools to study them. CPython has some nice hooks for this purpose.

Watching your code execute with trace hooks CPythons sys.settrace lets you bug your code. In particular, you can do simple things like code coverage analysis very easily. Wouldnt it be nice to be able to retrieve that information from long-running processes? CPythons sys.settrace lets you bug your code. In particular, you can do simple things like code coverage analysis very easily. Wouldnt it be nice to be able to retrieve that information from long-running processes?

Back to the OLPC… The OSS community is intolerant of projects that do not have version control or automated build systems. Would that the same were true of automated tests... (Guess where Im going with this.) The OSS community is intolerant of projects that do not have version control or automated build systems. Would that the same were true of automated tests... (Guess where Im going with this.)

The OLPC graphical interface has no automated tests. The test plan is: have other people do it.

Why am I being such a jerk? The Testing Death Spiral Write a bunch of code & manually test it. (Good so far.) Start adding features over here; Watch code over there break. Rinse, lather, repeat. (where do you think this ends?) The Testing Death Spiral Write a bunch of code & manually test it. (Good so far.) Start adding features over here; Watch code over there break. Rinse, lather, repeat. (where do you think this ends?)

Cascade of Attention-Deficit Teenagers I report bugs; they go unread for a year, sometimes two; and then (surprise!) that module is rewritten from scratch -- and the new maintainer can't be bothered to check whether his new version has actually solved any of the known problems that existed in the previous version. (jwz; CADT) Cascade of Attention-Deficit Teenagers I report bugs; they go unread for a year, sometimes two; and then (surprise!) that module is rewritten from scratch -- and the new maintainer can't be bothered to check whether his new version has actually solved any of the known problems that existed in the previous version. (jwz; CADT)

Actual quote "It will always have bugs in it and it will never be perfect," Mr. Negroponte told them, adding that he has a "royal battle" with his Windows-based computer nearly every morning.

Continuous integration sugar-jhbuild lets you build the Sugar graphical environment under Linux. Depends on 51 distinct packages which are pulled in from various places on the net. Breaks frequently. sugar-jhbuild lets you build the Sugar graphical environment under Linux. Depends on 51 distinct packages which are pulled in from various places on the net. Breaks frequently.

Implementing continuous integration Placing a buildbot on sugar-jhbuild gives us a dashboard where we can look at build breakages.

Simple GUI automation + Watching Sugar run with figleaf & figserve

Trivial twill extension for xmacro extend_with twill_x move type_in titus move click sleep 1 click extend_with twill_x move type_in titus move click sleep 1 click

Watching Sugar (etc.) programs run with figserve

Concluding thoughts Watch the buildbot go! Runtime code tracing is just fun GUI test automation is annoying GTK does not have good testing hooks OLPC accessibility layer is not dogtail-compatible Driving X is always going to work, but it doesnt work at the right level of abstraction… Watch the buildbot go! Runtime code tracing is just fun GUI test automation is annoying GTK does not have good testing hooks OLPC accessibility layer is not dogtail-compatible Driving X is always going to work, but it doesnt work at the right level of abstraction…

Concluding thoughts Runtime code tracing can be applied to collaborative exploratory testing: Group of people with OLPCs Central server recording code execution Code coverage analysis then guides exploratory testing Test automation is not a panacea, but it can really help stabilize a code base. Runtime code tracing can be applied to collaborative exploratory testing: Group of people with OLPCs Central server recording code execution Code coverage analysis then guides exploratory testing Test automation is not a panacea, but it can really help stabilize a code base.

Future outlook More effort needs to be applied to testing, especially GUI automation. I am interested in helping (as a mentor). Some opportunities: Python testing tools / OLPC GSoC student Disney Animation intern Stop writing new stuff & make sure the old stuff works & stays working, eh? More effort needs to be applied to testing, especially GUI automation. I am interested in helping (as a mentor). Some opportunities: Python testing tools / OLPC GSoC student Disney Animation intern Stop writing new stuff & make sure the old stuff works & stays working, eh?

Future outlook More effort needs to be applied to testing, especially GUI automation. I am interested in helping (mentor). Some opportunities: Python testing tools / OLPC GSoC student Disney Animation intern Stop writing new stuff & make sure the old stuff works & stays working, eh? More effort needs to be applied to testing, especially GUI automation. I am interested in helping (mentor). Some opportunities: Python testing tools / OLPC GSoC student Disney Animation intern Stop writing new stuff & make sure the old stuff works & stays working, eh?

Thanks! I will upload a screencast of the cool stuff ASAP; bug me via . If youre interested in testing summer stuff (GSoC or Disney) please contact me: