A CQSE presentation on software quality
Talks

We give talks about software quality at industrial conferences and internal workshops of our customers regularly. Depending on your requirements, we can give talks in English or German

Announcements

-- Since this post accompanies a talk in German, it is written in German, too.

 

Wenn ein System wächst, wird auch die Anzahl der automatisierten Tests größer. Das hat zur Folge, dass die Tests länger brauchen. Wir sehen in der Praxis zunehmend öfter Test-Suiten, die mehrere Stunden bis Tage laufen. Dadurch müssen Entwickler immer länger auf Feedback warten. Das erschwert die Lokalisierung der Ursachen von Testfehlschlägen und mindert dadurch den Wert der Tests.

 

Weiterlesen...

-- Since this post accompanies a talk in German, it is written in German, too.

 

Software-Qualitätssicherung ist eine Feedback-Schleife: Entwickler arbeiten an einem Software-System, und dieses System durchläuft eine Qualitätsbewertung, deren Ergebnisse dann wiederum die Entwickler bei ihrer Arbeit unterstützt. Häufig funktionieren Quality-Gates in der Praxis nicht wie gewünscht: Ihr Feedback kommt oft viel zu spät im Entwicklungsprozess, sodass der Schmerz dann zu groß ist, um wegen scheinbar wenig kritischer Qualitätsprobleme das ganze System zurück in die Entwicklung zu schieben. Außerdem bewerten Quality-Gates oft das System als Ganzes, statt konkrete Änderungen, sodass es für den einzelnen Entwickler schwer ist, auf das Feedback zu reagieren. In den letzten Jahren gab es allerdings einige Entwicklungen, die es erlauben, eine viel schlankere und wirksamere Form von Quality-Gates zu etablieren.

 

Weiterlesen...
Invited Talks

We are happy to come visit you in your office for an internal conference or a workshop. Our list of topics includes quality analyses, quality control, but also test control or introducing peer reviews. You are also welcome to pick a topic of your choice.

Request Invited Talk
Past Talks

-- Since this post accompanies a talk in German, it is written in German, too.

 

Wir wissen alle, wie Code idealerweise aussehen sollte: Kurze Methoden, keine kopierten Code-Abschnitte, vollständige Kommentierung, usw. Wir wissen aber auch, dass dieses Idealbild in der Praxis nur selten erreicht werden kann. Wir stellen einen Benchmark vor, der Systeme hinsichtlich verschiedener Qualitätseigenschaften vergleicht. Daraus lässt sich eine Erwartungshaltung ableiten, die hilft zu entscheiden, in welchen Bereichen Handlungsbedarf besteht. Zusätzlich teilen wir unsere Erfahrungen beim Erstellen eines solchen Benchmarks.

 

Weiterlesen...

-- Since this post accompanies a talk in German, it is written in German, too.

 

Machine Learning hat uns im privaten Bereich längst erreicht: Amazon schlägt mir Produkte vor, Netflix Filme. Oft treffen sie dabei sogar meinen Geschmack. Warum gibt es keine Software, die mir fundiert vorschlägt, was ich testen soll? Es gibt mehrere Ansätze in der Forschung, die das versprechen. Defect Prediction setzt beispielsweise Machine Learning auf historischen Fehlerdaten ein, um vorherzusagen, wo in meinem System mit hoher Wahrscheinlichkeit noch Fehler enthalten sein könnten. Inverse Defect Prediction identifiziert Bereiche, die vermutlich viel weniger Fehler enthalten, und eher ignoriert werden können. Aber wie gut funktioniert das wirklich in der Praxis?

 

Wir haben verschiedene dieser Ansätze selbst implementiert und eingesetzt. In diesem Vortrag stelle ich die Ergebnisse und Erfahrungen aus Forschung und Praxis vor --- sowohl die nützlichen als auch die Fehlschläge.

 

Weiterlesen...

-- Since this post accompanies a talk in German, it is written in German, too.

 

Durch Tests möchten wir Fehler finden, bevor diese in Produktion gelangen. Leider gelingt das nicht immer. Seit 2012 setzen wir deshalb mit unseren Kunden Test-Gap-Analyse ein, wodurch unsere ungetesteten Änderungen bereits während der Entwicklung vollautomatisch identifiziert werden. Im Vortrag stellen wir kurz die Grundlagen der Test-Gap-Analyse und die benötigten Datenquellen vor. Anschließend diskutieren wir verschiedene Einsatzszenarien, unterschiedliche Herausforderungen bei der Einführung und den quantitativ gemessenen Nutzen für unsere Kunden.

 

Weiterlesen...

-- Since this post accompanies a talk in German, it is written in German, too.

 

Wir testen, um neue Fehler rechtzeitig zu finden. Aber mit welcher Wahrscheinlichkeit finden meine Tests eigentlich neue Fehler?

In diesem Vortrag stelle ich verschiedene Ansätze vor, um diese Frage zu beantworten: Von Code-Coverage bis hin zu Mutation-Testing. Ich zeige alle Techniken an einem durchgängigen Beispiel aus der Praxis und gehe dabei auf die Grundidee der jeweiligen Technik, deren Aussagekraft und deren Grenze ein. Komplexere Analysetechniken erkaufen sich eine höhere Aussagekraft mit höherem Aufwand und einer abnehmenden Anwendbarkeit in der Praxis. Daher müssen die Techniken in den jeweiligen Kontext eingeordnet werden, in dem ihre Anwendung Sinn macht. Im Vortrag gebe ich einen konkreten Leitfaden für den Einsatz in Projekten.

Ich stelle im Vortrag sowohl traditionelle Techniken, als auch neue Forschungsergebnisse, die im Rahmen einer Promotion in unserer Gruppe entstanden sind, vor.

 

Weiterlesen...

Die typischen Beispiele für technische Schulden sind uns allen bekannt. Trotzdem werden sie in den meisten Projekten nicht ausreichend adressiert. Ein Grund dafür ist, dass die Kosten, um Qualitätsprobleme zu beheben, viel einfacher zu quantifizieren sind, als der Nutzen.

Im Vortrag stellen wir verschiedene Ansätze vor, um Konsequenzen technischer Schulden zu quantifizieren und zu visualisieren. Die Kostenmodelle stammen aus der Forschung, die Beispiele aus realen Kundenprojekten.

 

Weiterlesen...

-- Since this post accompanies a talk in German, it is written in German, too.

 

Wer Qualitätsanalysen einführen möchte oder Ressourcen für den Abbau technischer Schulden einfordert, muss oft eine Kosten-Nutzen-Rechnung liefern. Da sich der Nutzen aus vermiedenen Problemen ergibt, die ja per Definition nicht aufgetreten sind, ist eine seriöse Quantifizierung schwierig. Die Munich Re setzt Qualitätsanalysen seit über 10 Jahren erfolgreich ein. Daher existiert eine breite Datenbasis von Qualitätskennzahlen vor und nach der Einführung der Analysen. Im Vortrag präsentieren wir Kosten-Nutzen-Rechnungen auf Basis dieser Daten, sowohl für statische Analysen als auch für die Test-Gap-Analyse.

 

Weiterlesen...

Since this post accompanies a talk in German, it is written in German, too.

Quality Gates, wie sie in vielen Software-Entwicklungsprozessen definiert sind, funktionieren in der Praxis meist nicht wie gewünscht, da sie zu schwergewichtig sind und ihr Feedback viel zu spät kommt.

In diesem Vortrag zeige ich auf, wie jüngere Entwicklungen im Bereich Code-Collaboration-Platforms (GitHub, Bitbucket, GitLab und Co.) es erlauben, eine viel schlankere und wirksamere Form von Quality Gates zu etablieren.

Weiterlesen...

-- Since this post accompanies a talk in German, it is written in German, too.

 

Machine Learning hat uns im privaten Bereich längst erreicht: Amazon schlägt mir Produkte vor, Netflix Filme. Oft treffen sie dabei sogar meinen Geschmack. Warum gibt es keine Software, die mir fundiert vorschlägt, was ich testen soll? Es gibt mehrere Ansätze in der Forschung, die das versprechen. Defect Prediction setzt beispielsweise Machine Learning auf historischen Fehlerdaten ein, um vorherzusagen, wo in meinem System mit hoher Wahrscheinlichkeit noch Fehler enthalten sein könnten. Inverse Defect Prediction identifiziert Bereiche, die vermutlich viel weniger Fehler enthalten, und eher ignoriert werden können. Aber wie gut funktioniert das wirklich in der Praxis?

 

Wir haben verschiedene dieser Ansätze selbst implementiert und eingesetzt. In diesem Vortrag stelle ich die Ergebnisse und Erfahrungen aus Forschung und Praxis vor --- sowohl die nützlichen als auch die Fehlschläge.

 

Weiterlesen...

-- Since this post accompanies a podcast in German, it is written in German, too.

 

In dieser Folge des "Genau mein Agil - Podcast" geht es Qualität und Qualitätssicherung im Agilen Umfeld. Hierzu spricht Philipp Diebold mit Sven Amann über das Verständnis von Qualität und Qualitätssicherung im Rahmen von Agiler (Software) Entwicklung. Wie wendet man gute Qualitätssicherung in einem solchen Umfeld an? Ist Qualitätssicherung in der Agilen Entwicklung schon automatisch integriert? Mit diesen und weiteren Fragen beschäftigen wir beide uns in der aktuellen Folge.

 

Weiterlesen...

-- Since this post accompanies a talk in German, it is written in German, too.

 

Jede*r von euch sollte ein Netzwerk haben und pflegen. Damit meine ich nicht, dass ihr auf Netzwerk Events Cocktails schlürfen oder die Zahl eurer „Freunde“ auf Facebook und eurer Follower auf Twitter, Insta & Co maximieren sollt. Das ist Quatsch in bringt euch nicht weiter. Euer Netzwerk besteht aus persönlichen, langfristigen Beziehungen.

Weiterlesen...