always have everything proven to work

40
Always have everything proven to work November 27, 2013

Upload: daniel-stenberg

Post on 27-Jun-2015

2.114 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

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