always have everything proven to work
DESCRIPTION
About the importance of automatic testing. From my talk held at Techdays by Init at November 27th 2013 in Stockholm, Sweden.TRANSCRIPT
Always have everything proven to work
November 27, 2013
Always have everything proven to work
November 27, 2013
Always have everything proven to work
November 27, 2013
Always have everything proven to work
November 27, 2013
Always have everything proven to work
November 27, 2013
Daniel Stenberg
Email: [email protected]: @bagderWeb: daniel.haxx.seBlog: daniel.haxx.se/blog
● Free Software● Network hacker● Embedded developer● Blabbermouth
Agenda● Some trends in software and open source
backed by some data
● How it looks like out there
● What's important to take from this and what it means for you and me
● What the future holds
Feel free to interrupt
Object, ask, comment when you feel like it.
What's happening now?● More of everything!
More devices with CPUs● Printers● TVs● Settop boxes● Cars● Phones and tablets● Fridges, toasters and washing machines?● CPUs are cheap and capable enough● When I was young ...
Devices with CPUs
1993 2013
0
many
More CPUs with software● More full fledged CPUs● More Linux on your average CPU● More “common” software in
CPUs● 37 billion ARM chips, “a million
PCs a day” ...
32 bit processors sold
1993 2013
0
many
MIPS per die
http://www.r-bloggers.com/cpu-and-gpu-trends-over-time/
1993 2013
0
many
More software is open source
● Embedded OS: 2 to 1● Linux is defacto by chip vendors● Internet servers● Phones, Routers, Printers, Tvs and
cars
The future is open source
2009 26% believed more than 50% of purchased software will be open source within 5 years
2013 – 62% believes more than 50% of purchased software will be open source within 5 years
The 2013 Future of Open Source Survey Results – Black duck
Open source adoption
1993 2013
0
many
More open source● The term coined 1998● Number of projects virtually
doubled every year since
More open source projects
1993 2013
0
many
http://dirkriehle.com/publications/2008-2/the-total-growth-of-open-source/
More open source projects
http://dirkriehle.com/publications/2008-2/the-total-growth-of-open-source/
Software grows bigger
… and do so very fast
Bigger software: Linux● Unix 1.0 (1971) 10,000 lines● Linux 2.2 (1999): 2 million lines● Linux 2.6.0: 5 million lines● Linux 3.1: 15 million lines● Linux 3.12: 20 million lineshttp://www.informationisbeautiful.net/visualizations/million-lines-of-code/
Other big software● Eclipse: 20 MLOC● Firefox: 9 MLOC● Android: 12 MLOC● Chrome: 7 MLOC● MySQL: 12 MLOC● GCC: 7 MLOC● PHP: 2 MLOC● glibc: 1 MLOC● Mac OS X “Tiger” : 85 MLOC● Windows Vista: 50 MLOC● Facebook: 61 MLOC
Lines of source code
1993 2013
0
many
More releases over time● Producers and users want tighter
release cycles● Switch hardware platform more
often● Use more commodity hardware● Increase code reuse
Release frequency● Linux kernel, every 9 weeks● Firefox, every 6 weeks● Chrome, every 6 weeks
“We're going to be getting new versions of Windows, we're told, about every 12 to 18 months or so (the number varies a bit depending on the source), instead of every three to five years.”
New products per time
1993 2013
0
many
More● More devices with CPUs● More CPUs per device● More CPUs with software● More software is open source● Bigger software● More releases per time
Tomorrow...
Most of these trends are ongoing with no signs of slowing down...
Coping● Make sure the code is always
good● Lower thresholds for releasing● Release even more often● Use and do open source
The most important factor for OSS adoption
The 2013 Future of Open Source Survey Results – Black duck
Quality in an age of speed
Nonstop automatic testing
Maintain quality
Be able to release often
Build on every commit
Test on every
platform
Even crosscompiled
On a fully crosscompiled linux distro, “make test” isn't straight forward
Ptest – is one way to fix this. For Yocto / OpenEmbedded
Daily snapshots and git
Kids today wants the latest now.
Give it to them or get replaced.
Let problems be known● Alert on IRC● Email the proper people● Show status on web sites
Fix problems at once● Be able to release soon● Users will get and use the latest● Others will push out their changes
soon and they need to be tested and must not be blocked by your bugs!
Summing up● Everything is happening more and faster
than ever● Software and open source are bigger
than before and are growing more● People want the latest immdiately after
changes have been pushed● Test your stuff to keep the users.● Automatic testing is the only viable
option.
Thank you!
Questions?
daniel.haxx.se