15
Testing a New Release Every 3 mins Petr Chytil AVAST Software a.s.

Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Testing a New Release Every 3 mins

Petr Chytil

AVAST Software a.s.

Page 2: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Department map in Avast

jOpenSpace 2.11. 2013 www.avast.com 2

Page 3: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Department map with QA dept.

jOpenSpace 2.11. 2013 www.avast.com 3

Page 4: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Malware x AntiVirus Arms Race

jOpenSpace 2.11. 2013 www.avast.com 4

Page 5: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Getting Updates from the Cloud

• AVAST Streaming Updates

• Pushing new virus definitions to clients continuously

• Hybrid solution, clients still pull two or three virus definitions during the day

• Virus definition generation:– Fully automated

– 10 engines, 5 for streaming updates

– Community based

• Backend:– High performance Java application, 40 millions concurrent

connections

jOpenSpace 2.11. 2013 www.avast.com 5

Page 6: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

distribution

jOpenSpace 2.11. 2013 www.avast.com 6

Vir

us

defi

nit

ion

Delive

ry

The Cloud

Page 7: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

The Backend

• 40 millions concurrently connected users

• 2 millions connections per server in peak

jOpenSpace 2.11. 2013 www.avast.com 7

Page 8: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Testing The Cloud

– Every streaming update has to be tested

– Integrate smoke tests into existing viruslab infrastructure

– Build infrastructure implemented in perl

– Every 3-5 minutes, small package of virus definitions is distributed to over 200 million users

• But, do not break their computers

jOpenSpace 2.11. 2013 www.avast.com 8

Page 9: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Test Automation Server

jOpenSpace 2.11. 2013 www.avast.com 9

Test result

Test execution

Test

execu

tion

Test

resu

lt

VM

Contr

ol

Job e

xecuti

on

Job r

esu

lt

Job execution

Job result

Functional test execution

Virus definition testing

Server backend testing

Page 10: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Jenkins – Test Automation Server

• Centerpiece of our testing infrastructure

• We use Jenkins CI– An extendable open source continuous integration server

• Runs and monitors repeated jobs, e.g. builds software projects

– Main features:

• Quick setup and configuration

• Test results reporting, archiving

• File fingerprinting

• Tons of existing plugins

• And much more

jOpenSpace 2.11. 2013 www.avast.com 10

Page 11: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

The Cloud - solution

• Functional (or integration?) tests implemented in C#

• Tests have to be 100% reliable …

• The environment: Windows OS guests in VirtualBox

• Remote test execution using STAF framework

• Integration of Jenkins job into the perl build script using Jenkins REST API

jOpenSpace 2.11. 2013 www.avast.com 11

Page 12: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

The Cloud

jOpenSpace 2.11. 2013 www.avast.com 12

Test

execu

tion

Test

resu

lt

Test

execu

tion

Test

resu

lt

Delive

ry

Page 13: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Conclusion

• Even integration tests can be:– Fast

– Reliable

– Fully automated

• Do not take “it cannot be tested” as an answer

jOpenSpace 2.11. 2013 www.avast.com 13

Page 14: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Questions and Answers

Contact info

Petr Chytil [email protected]

jOpenSpace 2.11. 2013 www.avast.com 14

Page 15: Testing a New Release Every 3 mins - jOpenSpace–An extendable open source continuous integration server •Runs and monitors repeated jobs, e.g. builds software projects –Main

Appendix - Technologies

• Jenkins http://jenkins-ci.org/– Parametrized Trigger Plugin

– Build Pipeline Plugin

– Robot Framework Plugin

• STAF http://staf.sourceforge.net/

• VirtualBox https://www.virtualbox.org/

• Sikuli http://www.sikuli.org/

• Selenium http://www.seleniumhq.org/

jOpenSpace 2.11. 2013 www.avast.com 15