Robot Framework
en CI/CD
Christian Bos & Guido Demmenie | RF meetup 05-10-2020
Deel 1: definitie en context
Het eeuwige dilemma…
Software in productie…
DevOps
Hoe dan?
Continuous Integration/Deployment
Continuous Integration (CI)
Waarom CI?
• Code regelmatig integreren met codebase
• voorkomen (grote) merge problemen
• bugs snel detecteren (regressie)
• Snelle feedback loop
• keep the build fast
• minimaal 1x per dag per developer
• elke commit wordt gebuild (self-testing)
• Laatste stabiele versie
Samenvatting
Deel 2: TA en CI/CD
Wat betekent CI/CD voor testen?
• Continuous testing
• vaak dezelfde testcases uitvoeren (regressietesten)
• testen tijdens alle ‘faseovergangen’
• dezelfde testen in meerdere omgevingen (testdata)
• Wees kritisch: moet ik elke testcase runnen?
• zorg voor een goede test(automation)strategie!
• pesticide paradox
Wat betekent CI/CD voor testen?
• Gescheduled draaien van testen
• nightly build
• wijzigingen in code base (regressie)
• wijzigingen buiten eigen code
• Welke testcase run ik als eerste?
• grootste faalkans
• snelste testcase
Test(automatiserings)strategie
• Welke test worden (niet) geautomatiseerd?
• testdekking (coverage) – testontwerptechnieken!
• business- en technische risico’s (PRA)
• frequentie van uitvoeren
• Op welk niveau wordt iets getest?
• niet alles op GUI niveau!
• test automation pyramid
Test(automatiserings)strategie
• Wie is verantwoordelijk?
• Teamverantwoordelijkheid!
• afstemming met stakeholders
• hoe ziet rapportage eruit?
• Niet alles kan geautomatiseerd worden
• 100% TA moet nooit het doel zijn!
• exploratory testing
• Testcases schrijven voor defects/incidents?
Agile testing
Stappenplan voor CI…
1. Testautomatisering stabiel
• begin met een kleine set
• scripts leesbaar en onderhoudbaar (clean code)
• logging leesbaar en bij fouten behulpzaam
• kies juiste tool voor TA ☺
2. Versiebeheer
• TA scripts in een versiebeheer tool (git)
• branching strategie
• TA code bij SUT code? of apart?
Stappenplan voor CI…
3. Scheduling
• draai tests gescheduled (nightly build)
• bekijk ook dagelijks de resultaten!
• begin ook hier met een kleine set
4. Vergroot de test coverage
• voeg waardevolle (business value) testcases en controles toe
• splitsen jobs in CI tool
• meerdere omgevingen
• monitoring
Stappenplan voor CI…
5. Triggers
• laat git commits automatisch builden
• gebruik nieuwe build als trigger voor TA
6. Onderhoud
• bekijk periodiek (elke sprint) welke testcases nog werken
• wees ook kritisch: welke testcases kunnen weg?
• parallel draaien van testcases?
Tools voor CI
Tools voor CI
Deel 3: Demo Jenkins

Robot framework en ci v2

  • 1.
    Robot Framework en CI/CD ChristianBos & Guido Demmenie | RF meetup 05-10-2020
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    Waarom CI? • Coderegelmatig integreren met codebase • voorkomen (grote) merge problemen • bugs snel detecteren (regressie) • Snelle feedback loop • keep the build fast • minimaal 1x per dag per developer • elke commit wordt gebuild (self-testing) • Laatste stabiele versie
  • 10.
  • 11.
    Deel 2: TAen CI/CD
  • 12.
    Wat betekent CI/CDvoor testen? • Continuous testing • vaak dezelfde testcases uitvoeren (regressietesten) • testen tijdens alle ‘faseovergangen’ • dezelfde testen in meerdere omgevingen (testdata) • Wees kritisch: moet ik elke testcase runnen? • zorg voor een goede test(automation)strategie! • pesticide paradox
  • 13.
    Wat betekent CI/CDvoor testen? • Gescheduled draaien van testen • nightly build • wijzigingen in code base (regressie) • wijzigingen buiten eigen code • Welke testcase run ik als eerste? • grootste faalkans • snelste testcase
  • 14.
    Test(automatiserings)strategie • Welke testworden (niet) geautomatiseerd? • testdekking (coverage) – testontwerptechnieken! • business- en technische risico’s (PRA) • frequentie van uitvoeren • Op welk niveau wordt iets getest? • niet alles op GUI niveau! • test automation pyramid
  • 15.
    Test(automatiserings)strategie • Wie isverantwoordelijk? • Teamverantwoordelijkheid! • afstemming met stakeholders • hoe ziet rapportage eruit? • Niet alles kan geautomatiseerd worden • 100% TA moet nooit het doel zijn! • exploratory testing • Testcases schrijven voor defects/incidents?
  • 16.
  • 17.
    Stappenplan voor CI… 1.Testautomatisering stabiel • begin met een kleine set • scripts leesbaar en onderhoudbaar (clean code) • logging leesbaar en bij fouten behulpzaam • kies juiste tool voor TA ☺ 2. Versiebeheer • TA scripts in een versiebeheer tool (git) • branching strategie • TA code bij SUT code? of apart?
  • 18.
    Stappenplan voor CI… 3.Scheduling • draai tests gescheduled (nightly build) • bekijk ook dagelijks de resultaten! • begin ook hier met een kleine set 4. Vergroot de test coverage • voeg waardevolle (business value) testcases en controles toe • splitsen jobs in CI tool • meerdere omgevingen • monitoring
  • 19.
    Stappenplan voor CI… 5.Triggers • laat git commits automatisch builden • gebruik nieuwe build als trigger voor TA 6. Onderhoud • bekijk periodiek (elke sprint) welke testcases nog werken • wees ook kritisch: welke testcases kunnen weg? • parallel draaien van testcases?
  • 20.
  • 21.
  • 22.
    Deel 3: DemoJenkins