40
Always have everything proven to work November 27, 2013

Always have everything proven to work

Embed Size (px)

DESCRIPTION

About the importance of automatic testing. From my talk held at Techdays by Init at November 27th 2013 in Stockholm, Sweden.

Citation preview

Page 1: Always have everything proven to work

Always have everything proven to work

November 27, 2013

Page 2: Always have everything proven to work

Always have everything proven to work

November 27, 2013

Page 3: Always have everything proven to work

Always have everything proven to work

November 27, 2013

Page 4: Always have everything proven to work

Always have everything proven to work

November 27, 2013

Page 5: Always have everything proven to work

Always have everything proven to work

November 27, 2013

Page 6: Always have everything proven to work

Daniel Stenberg

Email: [email protected]: @bagderWeb: daniel.haxx.seBlog: daniel.haxx.se/blog

● Free Software● Network hacker● Embedded developer● Blabbermouth

Page 7: Always have everything proven to work

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

Page 8: Always have everything proven to work

Feel free to interrupt

Object, ask, comment when you feel like it.

Page 9: Always have everything proven to work

What's happening now?● More of everything!

Page 10: Always have everything proven to work

More devices with CPUs● Printers● TVs● Set­top boxes● Cars● Phones and tablets● Fridges, toasters and washing machines?● CPUs are cheap and capable enough● When I was young ...

Page 11: Always have everything proven to work

Devices with CPUs

1993 2013

0

many

Page 12: Always have everything proven to work

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” ...

Page 13: Always have everything proven to work

32 bit processors sold

1993 2013

0

many

Page 14: Always have everything proven to work

MIPS per die

http://www.r-bloggers.com/cpu-and-gpu-trends-over-time/

1993 2013

0

many

Page 15: Always have everything proven to work

More software is open source

● Embedded OS: 2 to 1● Linux is defacto by chip vendors● Internet servers● Phones, Routers, Printers, Tvs and 

cars

Page 16: Always have everything proven to work

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

Page 17: Always have everything proven to work

Open source adoption

1993 2013

0

many

Page 18: Always have everything proven to work

More open source● The term coined 1998● Number of projects virtually 

doubled every year since

Page 19: Always have everything proven to work

More open source projects

1993 2013

0

many

http://dirkriehle.com/publications/2008-2/the-total-growth-of-open-source/

Page 20: Always have everything proven to work

More open source projects

http://dirkriehle.com/publications/2008-2/the-total-growth-of-open-source/

Page 21: Always have everything proven to work

Software grows bigger

… and do so very fast

Page 22: Always have everything proven to work

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/

Page 23: Always have everything proven to work

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

Page 24: Always have everything proven to work

Lines of source code

1993 2013

0

many

Page 25: Always have everything proven to work

More releases over time● Producers and users want tighter 

release cycles● Switch hardware platform more 

often● Use more commodity hardware● Increase code re­use

Page 26: Always have everything proven to work

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.”

Page 27: Always have everything proven to work

New products per time

1993 2013

0

many

Page 28: Always have everything proven to work

More● More devices with CPUs● More CPUs per device● More CPUs with software● More software is open source● Bigger software● More releases per time

Page 29: Always have everything proven to work

Tomorrow...

Most of these trends are ongoing with no signs of slowing down...

Page 30: Always have everything proven to work

Coping● Make sure the code is always 

good● Lower thresholds for releasing● Release even more often● Use and do open source

Page 31: Always have everything proven to work

The most important factor for OSS adoption

The 2013 Future of Open Source Survey Results – Black duck

Page 32: Always have everything proven to work

Quality in an age of speed

Non­stop automatic testing

Maintain quality

Be able to release often

Page 33: Always have everything proven to work

Build on every commit

Page 34: Always have everything proven to work

Test on every 

platform

Page 35: Always have everything proven to work

Even cross­compiled

On a fully cross­compiled linux distro, “make test” isn't straight forward

Ptest –  is one way to fix this. For Yocto / OpenEmbedded

Page 36: Always have everything proven to work

Daily snapshots and git

Kids today wants the latest now. 

Give it to them or get replaced.

Page 37: Always have everything proven to work

Let problems be known● Alert on IRC● Email the proper people● Show status on web sites

Page 38: Always have everything proven to work

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!

Page 39: Always have everything proven to work

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.

Page 40: Always have everything proven to work

Thank you!

Questions?

daniel.haxx.se