Quality & Testing in Agile PV260 Software Quality
11.04.2016Page 2/35 Jan VernerQuality and testing in agile About me… Ing. Jan Verner Head of Development @janverner cz.linkedin.com/in/janverner
11.04.2016Page 3/35 Jan VernerQuality and testing in agile What can you expect • What is quality? • Agile development in nutshell • Project deviations • Barriers of quality improvement • Automation • Dashboards • Reviews • ISO and CMMI
11.04.2016Page 4/35 Jan VernerQuality and testing in agile What is quality?
11.04.2016Page 5/35 Jan VernerQuality and testing in agile
11.04.2016Page 6/35 Jan VernerQuality and testing in agile
11.04.2016Page 7/35 Jan VernerQuality and testing in agile What is quality? • No bugs • Fast and responsive software • Satisfied user or customer • Compliance with legislatives • Compliance with internal rules • …
11.04.2016Page 8/35 Jan VernerQuality and testing in agile What is quality? Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications. Software structural quality refers to how it meets non-functional requirements that support the delivery of the functional requirements.
11.04.2016Page 9/35 Jan VernerQuality and testing in agile What is agile development? Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. http://agilemanifesto.org/
11.04.2016Page 10/35 Jan VernerQuality and testing in agile When should we use agile?
11.04.2016Page 11/35 Jan VernerQuality and testing in agile Agile process in detail agileforall.com
11.04.2016Page 12/35 Jan VernerQuality and testing in agile Project deviation time
11.04.2016Page 13/35 Jan VernerQuality and testing in agile Project deviation time
11.04.2016Page 14/35 Jan VernerQuality and testing in agile Project deviation time
11.04.2016Page 15/35 Jan VernerQuality and testing in agile Project deviation Fail fast Learn fast
11.04.2016Page 16/35 Jan VernerQuality and testing in agile Three key messages for agile • Communication within team is basis [email, communicator, face to face meeting, minutes of meeting] • Product owner is key role [training, will to change mindset, non-waterfall approach] • Retrospective quality is essential [focus on improvements, focus on positives]
11.04.2016Page 17/35 Jan VernerQuality and testing in agile Barriers of agile adaptation VersionOne Survey 2012
11.04.2016Page 18/35 Jan VernerQuality and testing in agile Quality-focused thinking It is about mindset of the people It is about cultural change Positive results generate positive results Start doing the quality already during interviews [early detection, ability to solve difficult situations, creativity test] You have to invest into development of the people [one to one, coaching, feedbacks]
11.04.2016Page 19/35 Jan VernerQuality and testing in agile Barriers of agile adaptation VersionOne Survey 2012
11.04.2016Page 20/35 Jan VernerQuality and testing in agile The truth is We are lazy. We will not repeat processes. We want to improve. We make errors, it is natural. We fall ill time to time. We may leave the project.
11.04.2016Page 21/35 Jan VernerQuality and testing in agile Realize human weaknesses Do you have a new idea? Does your idea work? Automate it!
11.04.2016Page 22/35 Jan VernerQuality and testing in agile Automatic tests • Can not tell you that you have not done a bug. • Save time for developers. • Save time for testers. • Specially suitable for unit tests. • Can be used to calculate test coverage. • Advances motivation of testers. • Maintenance of tests is needed.
11.04.2016Page 23/35 Jan VernerQuality and testing in agile Dashboards – SonarQube
11.04.2016Page 24/35 Jan VernerQuality and testing in agile Dashboards – Team Foundation Server
11.04.2016Page 25/35 Jan VernerQuality and testing in agile Dashboards - physical
11.04.2016Page 26/35 Jan VernerQuality and testing in agile Pair programming It is expensive! Is it expensive?
11.04.2016Page 27/35 Jan VernerQuality and testing in agile Code reviews Search for errors Share know how Train in new members faster Review architecture Make user interface review Define common coding guidelines Use dashboards statistics as input
11.04.2016Page 28/35 Jan VernerQuality and testing in agile Code reviews … software testing alone has limited effectiveness -- 25 – 45% … effectiveness of design and code inspections are 55 and 60 percent. • In a group of 11 programs developed by the same group of people, the first 5 were developed without reviews. The remaining 6 were developed with reviews. After all the programs were released to production, the first 5 had an average of 4.5 errors per 100 lines of code. The 6 that had been inspected had an average of only 0.82 errors per 100. Reviews cut the errors by over 80 percent. • The Aetna Insurance Company found 82 percent of the errors in a program by using inspections and was able to decrease its development resources by 20 percent. • A study of an organization at AT&T with more than 200 people reported a 14 percent increase in productivity and a 90 percent decrease in defects after the organization introduced reviews. link
11.04.2016Page 29/35 Jan VernerQuality and testing in agile UI reviews • It is the very same process as code review. • Can be used to improve visual side of the product. • It is good way to check that nothing is forgotten
11.04.2016Page 30/35 Jan VernerQuality and testing in agile UX testing • Talk about emotions • Measure time to complete a task
11.04.2016Page 31/35 Jan VernerQuality and testing in agile Code refactoring Improve existing code Set of techniques You should have automated tests You can use tools (e.g. ReSharper)
11.04.2016Page 32/35 Jan VernerQuality and testing in agile Code refactoring
11.04.2016Page 33/35 Jan VernerQuality and testing in agile ISO and CMMI
11.04.2016Page 34/35 Jan VernerQuality and testing in agile Feedback form surveymonkey.com/r/J3BTG6V
11.04.2016Page 35/35 Jan VernerQuality and testing in agile Contact Jan Verner Siemens Corporate Technology Intelligent Traffic Systems Olomoucká 7/9 618 00 Brno E-mail: jan.verner@siemens.com

Quality and Testing in Agile

  • 1.
    Quality & Testingin Agile PV260 Software Quality
  • 2.
    11.04.2016Page 2/35 JanVernerQuality and testing in agile About me… Ing. Jan Verner Head of Development @janverner cz.linkedin.com/in/janverner
  • 3.
    11.04.2016Page 3/35 JanVernerQuality and testing in agile What can you expect • What is quality? • Agile development in nutshell • Project deviations • Barriers of quality improvement • Automation • Dashboards • Reviews • ISO and CMMI
  • 4.
    11.04.2016Page 4/35 JanVernerQuality and testing in agile What is quality?
  • 5.
    11.04.2016Page 5/35 JanVernerQuality and testing in agile
  • 6.
    11.04.2016Page 6/35 JanVernerQuality and testing in agile
  • 7.
    11.04.2016Page 7/35 JanVernerQuality and testing in agile What is quality? • No bugs • Fast and responsive software • Satisfied user or customer • Compliance with legislatives • Compliance with internal rules • …
  • 8.
    11.04.2016Page 8/35 JanVernerQuality and testing in agile What is quality? Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications. Software structural quality refers to how it meets non-functional requirements that support the delivery of the functional requirements.
  • 9.
    11.04.2016Page 9/35 JanVernerQuality and testing in agile What is agile development? Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. http://agilemanifesto.org/
  • 10.
    11.04.2016Page 10/35 JanVernerQuality and testing in agile When should we use agile?
  • 11.
    11.04.2016Page 11/35 JanVernerQuality and testing in agile Agile process in detail agileforall.com
  • 12.
    11.04.2016Page 12/35 JanVernerQuality and testing in agile Project deviation time
  • 13.
    11.04.2016Page 13/35 JanVernerQuality and testing in agile Project deviation time
  • 14.
    11.04.2016Page 14/35 JanVernerQuality and testing in agile Project deviation time
  • 15.
    11.04.2016Page 15/35 JanVernerQuality and testing in agile Project deviation Fail fast Learn fast
  • 16.
    11.04.2016Page 16/35 JanVernerQuality and testing in agile Three key messages for agile • Communication within team is basis [email, communicator, face to face meeting, minutes of meeting] • Product owner is key role [training, will to change mindset, non-waterfall approach] • Retrospective quality is essential [focus on improvements, focus on positives]
  • 17.
    11.04.2016Page 17/35 JanVernerQuality and testing in agile Barriers of agile adaptation VersionOne Survey 2012
  • 18.
    11.04.2016Page 18/35 JanVernerQuality and testing in agile Quality-focused thinking It is about mindset of the people It is about cultural change Positive results generate positive results Start doing the quality already during interviews [early detection, ability to solve difficult situations, creativity test] You have to invest into development of the people [one to one, coaching, feedbacks]
  • 19.
    11.04.2016Page 19/35 JanVernerQuality and testing in agile Barriers of agile adaptation VersionOne Survey 2012
  • 20.
    11.04.2016Page 20/35 JanVernerQuality and testing in agile The truth is We are lazy. We will not repeat processes. We want to improve. We make errors, it is natural. We fall ill time to time. We may leave the project.
  • 21.
    11.04.2016Page 21/35 JanVernerQuality and testing in agile Realize human weaknesses Do you have a new idea? Does your idea work? Automate it!
  • 22.
    11.04.2016Page 22/35 JanVernerQuality and testing in agile Automatic tests • Can not tell you that you have not done a bug. • Save time for developers. • Save time for testers. • Specially suitable for unit tests. • Can be used to calculate test coverage. • Advances motivation of testers. • Maintenance of tests is needed.
  • 23.
    11.04.2016Page 23/35 JanVernerQuality and testing in agile Dashboards – SonarQube
  • 24.
    11.04.2016Page 24/35 JanVernerQuality and testing in agile Dashboards – Team Foundation Server
  • 25.
    11.04.2016Page 25/35 JanVernerQuality and testing in agile Dashboards - physical
  • 26.
    11.04.2016Page 26/35 JanVernerQuality and testing in agile Pair programming It is expensive! Is it expensive?
  • 27.
    11.04.2016Page 27/35 JanVernerQuality and testing in agile Code reviews Search for errors Share know how Train in new members faster Review architecture Make user interface review Define common coding guidelines Use dashboards statistics as input
  • 28.
    11.04.2016Page 28/35 JanVernerQuality and testing in agile Code reviews … software testing alone has limited effectiveness -- 25 – 45% … effectiveness of design and code inspections are 55 and 60 percent. • In a group of 11 programs developed by the same group of people, the first 5 were developed without reviews. The remaining 6 were developed with reviews. After all the programs were released to production, the first 5 had an average of 4.5 errors per 100 lines of code. The 6 that had been inspected had an average of only 0.82 errors per 100. Reviews cut the errors by over 80 percent. • The Aetna Insurance Company found 82 percent of the errors in a program by using inspections and was able to decrease its development resources by 20 percent. • A study of an organization at AT&T with more than 200 people reported a 14 percent increase in productivity and a 90 percent decrease in defects after the organization introduced reviews. link
  • 29.
    11.04.2016Page 29/35 JanVernerQuality and testing in agile UI reviews • It is the very same process as code review. • Can be used to improve visual side of the product. • It is good way to check that nothing is forgotten
  • 30.
    11.04.2016Page 30/35 JanVernerQuality and testing in agile UX testing • Talk about emotions • Measure time to complete a task
  • 31.
    11.04.2016Page 31/35 JanVernerQuality and testing in agile Code refactoring Improve existing code Set of techniques You should have automated tests You can use tools (e.g. ReSharper)
  • 32.
    11.04.2016Page 32/35 JanVernerQuality and testing in agile Code refactoring
  • 33.
    11.04.2016Page 33/35 JanVernerQuality and testing in agile ISO and CMMI
  • 34.
    11.04.2016Page 34/35 JanVernerQuality and testing in agile Feedback form surveymonkey.com/r/J3BTG6V
  • 35.
    11.04.2016Page 35/35 JanVernerQuality and testing in agile Contact Jan Verner Siemens Corporate Technology Intelligent Traffic Systems Olomoucká 7/9 618 00 Brno E-mail: jan.verner@siemens.com

Editor's Notes

  • #4 Chci vam ukazat prakticky pohled na vec. Chci vam predat moje zkusenosti s vyvojem agile 8 let. Budeme diskutovat
  • #5 Co je pro vas kvalitni vyrobek? Jak odlisite kvalitni a nekvalitni software? Jak si vybirate jaky prehravac hudby budete pouzivat?
  • #6 Reprezentace chyby uzivateli je nesmirne dulezita k tomu, aby ji spravne prijal. YouTube priklad - Oops… Something went wrong. Team of highly trained monkeys has been dispatched to deal with this situation.
  • #7 Reprezentace chyby uzivateli je nesmirne dulezita k tomu, aby ji spravne prijal. YouTube priklad - Oops… Something went wrong. Team of highly trained monkeys has been dispatched to deal with this situation.
  • #9 Ja sam se divam na kvalitu jinak nez pomoci definice. Ja se na kvalitu divam prostrednictvim lidi.
  • #16 Zamysleme se – co vsechno je potreba pri prave bugu v developmentu a co pri produkcnim nasazeni? Kolik lidi do procesu oprav je vtazeno?
  • #19 Cross functional teams in Agile – everyone can be a tester.
  • #20 Excel na zacatku – konkurentni pristup
  • #21 Excel na zacatku – konkurentni pristup Kolik z vas programovalo nejaky Framework?
  • #24 Lines of code – nejjednodussi statistika. Graficke vyjadreni je velmi silne (viz zelena vpravo)
  • #25 Je zde moc bugu? Coz takhle si nastavit limit? Co takhle pridat semafor (cervena, zluta, zelena)?
  • #26 Muzete si fyzicky sahnout, nuti vas premyslet jinak, nuti vas udrzovat poradek a aktualizovat.
  • #27 Co nejrychleji detekovat chyby, u pair programming casto primo u zrodu – spatne volani metod, lepsi pojmenovani promennych vede k lepsim uvaham nad kodem. Ukazat prakticky priklad – test.cs
  • #29 Navrhovat kandidaty na code review behem vyvoje nebo na zaklade dashboards.
  • #30 Jak jsme delali UI review v Praze – nasli jsme 20 chyb za 2 minuty v 10 lidech!