In IVITERA, we deployed and configured many automated tests and monitoring to keep high quality standards. I would like to describe software and configuration that we used.

Unit tests, feature tests

Integration and system tests

Beta, Pilot tests, Acceptance tests

  • Every bigger project for customers
  • Often special version of SAP connected to devel environment
  • Test communication, firewall rules, emails, login to app, data transfer
  • Dozens of people testing process, webpages, email notifications (from thousands users in real deployment)
  • Agile processes, customer consultations (almost) every week, customer as a part of devel team, changes implemented immediately
  • Guacamole - HTML5 RDP gateway - http://guac-dev.org/ - how to present developer desktop to customer via webapp (no need of client software, no problems with firewalls). Shared cursor and display
  • Good, when someone from development participate every meeting in customer company to get better idea, what customer needs and what expects

Continuous integration

Webshots

  • Our service for testing webapps in different browsers. Defined set of URLs, three different browsers (IE8, IE10, Firefox), 3 virtualized systems, Selenium server, Java application as a controller
  • First version based on wkhtmltopdf , second on real browsers controlled from selenium. Third version rewritten from Python to Java. Result of test is web application displaying 3 screenshots at one page (same url, different browsers). After success, manual add of “OK” tag in stable branch (signal to automatic deployment that everything is prepared for deploy this night).
  • Czech, free, public service for screenshots (in time machine form): http://webshotter.com/

Webshots3 environment

(Schema of Webshots3 environment)

 

Webshots results app

(Webshots results app - one URL in three different browsers)

Selenium testing

  • http://www.seleniumhq.org/
  • Run from CI server, command line tool, virtual framebuffer and real browser (Firefox). Sets of commands, verifing page content in every step. Good for testing scenarios (add a course to database through web interface, verify that course is listed in webpage, delete course)

Data for testing and development

User testing

Bug tracking

Monitoring infrastructure

 

centreon