Wer hat den Teufelskreis aus Testing und Debugging noch nicht erlebt:
In zwei Wochen ist Release-Date und die Tester finden täglich neue Fehler.
Jeder Fehler führt zu einer Änderung im Programm.
Und jede Änderung kann selbst wieder Fehler verursachen und muss deshalb getestet werden...
Software-Fehler kosten die deutsche Wirtschaft bis zu 10 Mrd Euro im Jahr. Deshalb macht Testen derzeit ca. 20% der Kosten einer neuen Software aus, Tendenz steigen. Alleine für Java-Software sind das in Deutschland ca. 3,4 Mrd. Euro im Jahr. Diese Kosten entstehen hauptsächlich durch manuelles Testen bzw. manuelle Testfallerstellung. Der Automatisierungsgrad beim Testen liegt derzeit bei ca. 15%. Was wenn man automatisch Testen könnte? Und d.h. nicht manuell erstellte Tests (die will sowieso keiner erstellen und erst recht keiner pflegen) automatisch ablaufen lassen, sondern wirklich vollautomatisch Testen?
Monkey-Testing bezeichnet zufallsbasiertes Testen von Software über die Benutzeroberfläche, und findet vollautomatisch und kostengünstig Fehler. In diesem Vortrag zeige ich, wie jeder Anwesende mit ein paar Zeilen Code einen eigenen primitiven Affen zum automatischen Testen programmieren kann. Davon ausgehend zeige ich Ansätze und Konzepte, wie man diesen Affen (u.a. mit genetischen Algorithmen) immer weiter verbessern kann, bis er teilweise bessere Ergebnisse als menschliche Tester bringt. Dazu gibt es Demos und Erfahrungsberichte aus großen Projekten.
Diskussionen über die Bandbreite der unterschiedlichen Web Analytics Lösungen die angeboten werden, rufen stets großes Interesse hervor. Hier die richtige Lösung zu wählen gehört zu den zentralen Entscheidungen, die ein Unternehmen treffen muss! Auch wenn wir die Wichtigkeit dieser Entscheidung nicht bestreiten, sind wir davon überzeugt, dass dabei der wichtigste Faktor die Menschen sind, die mit dieser Lösung arbeiten werden. Wir werden später noch ausführlicher darauf eingehen
Vortrag von Stephanie über dialogorientierte Markenkomunikation im Rahmen der Veranstaltung "Social Media und Mittelstand" des Bundesverband Mttelständische Wirtschaft.
Themen:
1. Änderungen von Wirtschaft und Märkten durch Internet und Social Media
2. Übersicht über Social Media - Angebote und Möglichkeiten
3. Soziale Systeme und deren Gesetzmäßigkeiten, Kybernetik 2ter Ordnung
4. Systemische Markenführung am praktischen Beispiel
Diskussionen über die Bandbreite der unterschiedlichen Web Analytics Lösungen die angeboten werden, rufen stets großes Interesse hervor. Hier die richtige Lösung zu wählen gehört zu den zentralen Entscheidungen, die ein Unternehmen treffen muss! Auch wenn wir die Wichtigkeit dieser Entscheidung nicht bestreiten, sind wir davon überzeugt, dass dabei der wichtigste Faktor die Menschen sind, die mit dieser Lösung arbeiten werden. Wir werden später noch ausführlicher darauf eingehen
Vortrag von Stephanie über dialogorientierte Markenkomunikation im Rahmen der Veranstaltung "Social Media und Mittelstand" des Bundesverband Mttelständische Wirtschaft.
Themen:
1. Änderungen von Wirtschaft und Märkten durch Internet und Social Media
2. Übersicht über Social Media - Angebote und Möglichkeiten
3. Soziale Systeme und deren Gesetzmäßigkeiten, Kybernetik 2ter Ordnung
4. Systemische Markenführung am praktischen Beispiel
Per Knopfdruck in die Cloud – Composite C1 mit dem Azure Publisher parallel i...CGN Cloud Company
In dieser Präsentation geht es um das Deployment und Publishing einer C1 Website in verteilten Windows Azure Datencentern mit Hilfe des Composite C1 Azure Publishers.
Ingenieurinnen und Informatikerinnen aufgepasst – finden Sie Ihren Traumjob bei einem der Branchenführer! Auf dem access Women in Technology Career Event bringen wir Sie mit den besten Arbeitgebern zusammen, die speziell technikbegeisterte Frauen fördern und fordern wollen.
In diesem Webinar zeigen wir Ihnen, warum der Women in Technology Career Event anders ist als gewöhnliche Jobmessen. Natürlich geben wir Ihnen auch Tipps für den richtigen Auftritt beim Career Event und beantworten alle Ihre Fragen.
In PostgreSQL kann man sich mit "explain" ansehen, welchen Execution Plan PostgreSQL für eine Query verwendet. Das hilft beim Suchen von Performance Problemen und hilft, den Durchsatz der Database zu steigern.
Per Knopfdruck in die Cloud – Composite C1 mit dem Azure Publisher parallel i...CGN Cloud Company
In dieser Präsentation geht es um das Deployment und Publishing einer C1 Website in verteilten Windows Azure Datencentern mit Hilfe des Composite C1 Azure Publishers.
Ingenieurinnen und Informatikerinnen aufgepasst – finden Sie Ihren Traumjob bei einem der Branchenführer! Auf dem access Women in Technology Career Event bringen wir Sie mit den besten Arbeitgebern zusammen, die speziell technikbegeisterte Frauen fördern und fordern wollen.
In diesem Webinar zeigen wir Ihnen, warum der Women in Technology Career Event anders ist als gewöhnliche Jobmessen. Natürlich geben wir Ihnen auch Tipps für den richtigen Auftritt beim Career Event und beantworten alle Ihre Fragen.
In PostgreSQL kann man sich mit "explain" ansehen, welchen Execution Plan PostgreSQL für eine Query verwendet. Das hilft beim Suchen von Performance Problemen und hilft, den Durchsatz der Database zu steigern.
Warum ECMAScript 6 die Welt ein Stückchen besser machtSebastian Springer
Wo die Neuerungen von ECMAScript 5 recht unspektakulär waren, sind die Features des neuen Sprachstandards umso interessanter. ECMAScript 6 versucht einige Anforderungen zu erfüllen, mit denen man als JavaScript-Entwickler täglich konfrontiert ist. Klassische Beispiele sind hier Promises zum Umgang mit asynchronen Funktionen, ein Module Loader zur Strukturierung der Applikation, Generatoren und Iteratoren oder aber ein neuer Gültigkeitsbereich für Variablen. Aber nicht nur große Änderungen, sondern auch sinnvolle Erweiterungen bestehender Objekte wie String und Array halten mit dem neuen Standard Einzug in den Browser. Problematisch wird die Situation jedoch, wenn man in den Genuss verschiedener Features kommen möchte, die aktuell noch von keinem Browser unterstützt werden. Hier schafft Traceur, der ECMAScript-6-Compiler von Google, Abhilfe.
Reaktive Programmierung In Java. Warum? Wie?QAware GmbH
Meetup JUG Mainz, März 2018: Vortrag von Alex Krause (@alex0ptr, Cloud Developer bei cosee GmbH)
Abstract:
Reaktive Programmierung wird in Form der Reactive Streams Spezifikation nun auch in Java 9 zum offiziellen Standard. Unter anderem eignet sich das Paradigma zum Orchestrieren von Zustandsänderungen und ist hierdurch sogar einer der Gründe für die Deprecation des Observable Interfaces. In der Java Welt wird Reaktive Programmierung häufig entweder mit den Vorteilen Reaktiver Systeme nach Art des Reaktiven Manifests oder mit der besseren Effizienz durch Nutzung von nicht-blockierender Netzwerkkommunikation motiviert. Dabei bietet das Programmierparadigma ganz eigene Vorteile, die viel zu häufig vernachlässigt werden. Wir beginnen die erste Hälfte des Vortrages mit einer seichten Einführung in die Konzepte Reaktiver Programmierung und den Vorteilen gegenüber anderen Ansätzen – unabhängig von der konkreten Plattform. Im zweiten Teil zeigen wir geeignete Anwendungsmöglichkeiten und typische Stolperfallen Reaktiver Programmierung anhand von RxJava.
Die Folien zu meinem Vortrag "Clean Test Code" auf den Clean Code Days 2014 in München: http://www.cleancode-days.de/vortraege/articles/clean-test-code.html
nagiosplugin - eine Python-Bibliothek für Monitoring-Plugins Christian Kauhaus
Auch wenn in der letzten Zeit sehr viel Bewegung in die Monitoring-Szene gekommen ist (#monitoringsucks etc.), werden die Platzhirsche Nagios/Icinga und ihre Standards auf absehbare Zeit nicht verschwinden. Das Nagios-Plugin-API stellt eine sehr weit verbreitete Schnittstelle zur Anbindung einzelner Checks an Monitoring-Systeme dar. Obwohl das API in den Grundzügen sehr einfach ist, ist der Programmieraufwand für vollständig konforme Plugins erstaunlich hoch.
Die nagiosplugin-Bibliothek nimmt dem Entwickler viele Details ab, so dass er sich auf den Inhalt seiner Checks konzentrieren kann. Der Vortrag führt in das Schreiben von Nagios-kompatiblen Plugins ein, zeigt den typischen Aufbau von Nagios-Plugins und das Grundprinzip eigener Plugins. Die Konfiguration und der Betrieb von Monitoring-Systemen im Großen sollen nicht thematisiert werden.
Video: http://pyvideo.org/video/1460/nagiosplugin-eine-python-bibliothek-fur-monitor
Konferenzseite: https://2012.de.pycon.org/programm/schedule/sessions/45/
Projekt-Homepage: https://projects.gocept.com/projects/nagiosplugin/wiki
Testgetriebene Entwicklung mit Jasmine und Karma hat sich mittlerweile schon als defacto-Standard etabliert. Routinen ohne Abhängigkeiten lassen sich damit ohne Probleme testen. Die Schwierigkeiten beginnen jedoch schon, wenn es um die Auflösung von Abhängigkeiten geht. In diesem Vortrag werden verschiedene Strategien und Werkzeuge vorgestellt, mit denen Abhängigkeiten zu Objekten und Funktionen oder zum Server abgedeckt werden können. Aber nicht nur Abhängigkeiten stellen Schwierigkeiten bei der testgetriebenen Entwicklung dar, auch der Umgang mit Fixtures ist bei der testgetriebenen Entwicklung mit JavaScript relevant. Abgerundet wird dieser Vortrag mit einigen Best Practices für die testgetriebenen Entwicklung mit JavaScript.
Funktionale Programmierung und mehr mit Scalathoherr
Anhand von Beispielen werden einige Konzepte der funktionalen Programmierung im Allgemeinen und die objekt-funktionale Sprache Scala im Besonderen vorgestellt.
Vortrag von 42ways im Rahmen der IT-Weiterbildungsveranstaltungen bei der SwissLife AG, Niederlassung für Deutschland, München.
Jeder Programmierer kennt die Situation: Ein Programm läuft nicht so, wie es soll. Ich stelle Techniken vor, die automatisch
(a) die Ursachen eines Fehlverhaltens finden - indem wir genau die Aspekte isolieren, die das Zustandekommen eines Fehlers verursachen;
(b) Programmfehler finden - indem wir aus dem Code "normale" Anweisungsfolgen lernen und nach Abweichungen suchen; und
(c) vorhersagen, wo in Zukunft Fehler auftreten werden - indem wir maschinell lernen, welche Code- und Prozesseigenschaften bisher mit Fehlern korrelierten.
Fallstudien an echten Programmen mit echten Fehlern, von AspectJ über Firefox zu Windows demonstrieren die Praxistauglichkeit der vorgestellten Verfahren.
Andreas Zeller ist Professor für Softwaretechnik an der Universität des Saarlandes in Saarbrücken. Sein Forschungsgebiet ist die Analyse großer Software-Systeme und deren Fehler. Sein Buch "Why Programs Fail - A Guide to Systematic Debugging" wurde 2006 mit dem Jolt Software Development Productivity Award ausgezeichnet.
Vortrag der GI Regionalgruppe Rhein-Neckar 2008-06-19
Software die verwendet wird, muss irgendwann geändert werden. Das ist keine neue Erkenntnis.
Dennoch finden wir uns sehr oft in der Situation wieder, dass sich einfache Anforderungen nur mit erheblichem Aufwand umsetzen lassen oder zu unerwarteten Ergebnissen führen.
SOLID Prinzipien können uns helfen das Design unserer Anwendungen zu verbessern.
Die Programmiersprache C++ gehört immer noch zu den wichtigsten Programmiersprachen überhaupt. Gerade im Embedded Bereich vollzieht sich langsam die Abkehr von C zu C++ und ist dort alternativlos. Es hatte jedoch jahrelang den Anschein, als würde diese Sprache seit Jahren nicht weiterentwickelt und von den Features und Ausdrucksmöglichkeiten hinter neueren Sprachen zurückzufallen. In diesem Vortrag zeige ich an Codebeispielen, welche Revolution tatsächlich seit C++11 stattgefunden hat und dass die Sprache keinesfalls mehr mit der zu vergleichen ist, die man vielleicht vor Jahren kennen (und vielleicht hassen) gelernt hat. Die Umgestaltung der Sprache ist dabei keineswegs abgeschlossen sondern zeigt weitere, vielversprechende Konzepte am Horizont.
Ähnlich wie Bei uns testen lauter Affen - Das Ende der Banensoftware (19)
The more potent AI becomes, the more important it becomes to get it right. Todays most pressing problem is bias in AI. Here you can find an indepth analysis about the current status of bias mitigation algorithms and the exciting new findings that some bias can not be mitigates (impossibility theorem).
Recheck-web ( https://github.com/retest/recheck-web) is a free Open Source test automation tool on basis of Selenium. It implements Golden Master testing, which makes for
– easy to create and maintain tests
– that are more complete
– and less fragile.
And on top of that it can make your test almost unbreakable and elements easy to address with a constant virtual id.
Learn how recheck-web works and train hands-on with some examples.
https://www.hustef.hu/speakerslist2019/speaker_dr-jeremias-rosler/
GUI test automation is broken — because regression testing is not testing, but version control of the behavior of the software.
Gradually, an insight is gaining ground in the testing world: Test automation without assertions works better! Whether ApprovalsTest, Jest (Facebook, Open Source) or recheck (retest, Open Source) – the number of tools that work according to the approach of Golden Master Testing / Characterization Testing / Approval Testing is constantly increasing. This approach promises more robust tests with less effort for creation and maintenance, while all the while testing much more completely. What this means, which different tools are available (mostly Open Source), and where the strengths and weaknesses of this approach lie, will be explained in this presentation.
Don’t miss the next trend in test automation…
Slides as presented on All Things Open: https://allthingsopen.org/talk/test-automation-without-assertions/
GUI test automation is broken — because regression testing is not testing, but version control of the behavior of the software.
Gradually, an insight is gaining ground in the testing world: Test automation without assertions works better! Whether Approvals Test, Jest (Facebook, Open Source) or recheck (retest, Open Source) - the number of tools that work according to the approach of Golden Master Testing / Characterization Testing / Approval Testing is constantly increasing. This approach promises more robust tests with less effort for creation and maintenance, while all the while testing much more completely. What this means, which different tools are available (mostly Open Source), and where the strengths and weaknesses of this approach lie, will be explained in this presentation.
Don’t miss the next trend in test automation…
recheck and the Sorcerer's Stone: Turning Selenium into AdamantiumSAP SE
Ever had that: after a simple change, suddenly 50+ tests are failing! Brittle tests that hinge on GUI specifics and result in the dreaded NoSuchElementException are a main headache when testing with Selenium.
The open source project recheck offers a simple and elegant solution. Not only is a virtual identifier unaffected by UI changes, you can define it for otherwise hard to specify elements, i.e. that would require complex xpath or CSS selector expressions. And on top of that, tests are easier to create and maintain and yet much more complete in what they check. This talk gives a practical introduction to the underlying approach and the tool, complete with a life coding session.
Lightning Talk: When will AI take my Job as a TesterSAP SE
AI is coming – and fast. And one “common wisdom” is that it will replace manual testing first. Why this won’t happen and why developers should be more worried than testers … is something you will know after this talk.
Given in 5 Minutes or less at https://www.germantestingday.info/german-testing-day-2019/programm/konferenzprogramm/sessiondetails/action/detail/session/lt/title/when-will-ai-replace-my-job-as-a-tester.html?tx_dmconferences_session%5BshowRooms%5D=0&cHash=8d5e81ece4a9a62509a26aeff0e81575
Assertions sind heutzutage der Standard-Prüfmechanismus im Unit Testing. Aber wenn man sie auf Schnittstellen anwendet – insbesondere GUIs –, dann werden diese dysfunktional. Typische Probleme sind hoher Erstellungs- und Pflegeaufwand, brüchige Tests, viele "false Positives".
Es gibt jedoch Alternativen: Ob ApprovalsTest, Jest oder recheck – die Anzahl der Tools, die nach dem Ansatz des Golden Master Testing/Characterization Testing/Approval Testing funktionieren, wird immer größer. Dieser Ansatz verspricht robustere Tests bei weniger Erstellungs- und Pflegeaufwand.
Wieso das so ist, was das genau bedeutet, welche verschiedenen Tools zur Auswahl stehen (Open Source), und wo die Stärken und Schwächen dieses Ansatzes grundsätzlich liegen, wird in diesem Vortrag genau erläutert. Verpassen Sie nicht den nächsten Trend in der Testautomatisierung.
It is widely accepted that AI is the future of testing. However, because a fault lies in the eye of the beholder, it is pretty unclear how to apply AI to testing—called the Oracle problem.
There are literally thousands of UI test automation tools. But due to high efforts for creation and maintenance, together with the brittleness and unreliability of the resulting tests, testing often remains a manual task (confirming the testing pyramid). Meanwhile Software testing accounts for 30%-40% of the budget of a typical software project.
However, there is a way to circumvent the oracle problem and use AI to not only find technical errors (i.e. crashes), but to generate tests for business functionality—autonomous automation. See how AI can be trained to generate tests that are optimized towards several goals and are even better than manually created ones.
Visit the future of testing and see how AI can help us create better software!
AI has come to take our jobs—when will yours be gone?
What is behind the discussion and should you as a tester be worried about AI in testing?
At some point, AI will be able to do everything better than humans. And it is widely accepted that testers will be among the first ones that are let go. But not so fast!
Being the founder of a company that is concerned with bringing AI into testing, I might have some surprising answers for you.
I will describe the current state of AI in testing in detail, what problems we solved, what problems still lay ahead of us and when each task of a tester will be made superfluous by AI and automation. Some of the answers will surely be unexpected, as the jobs of many testers might even survive the jobs of developers...
Watch talk at https://www.youtube.com/watch?v=Ntd3MdsIsSo
Talk as given at the FrosCon 2018.
Like any other tool, AI has its benefits and its dangers. But we need to be aware of the dangers, to reap the benefits unharmed.
Everybody is talking about the benefits of AI and in which areas it could also be applied to. Only a few question if this should be done at all and which dangers might arise with widespread adoption of AI.
This non-technical talk will give insights into the different dangers of AI: From Skynet and intelligent war drones to BigBrother and a benevolent but misguided super-intelligence à la "I, Robot", different scenarios with prerequisites and probabilities are discussed. Although the ultimate end-state of AI maybe 50 years ahead, most people focus solely on that, neglecting the many different dangers on the path to get there. But there are a lot of issues we need to start to address today.
We are living in interesting times ... a slightly different talk.
Wenn KI die Zukunft des Testens ist, dann zeige ich Ihnen wie. Es gibt unzählige Automatisierungstools, aber dank hoher Erstellungs- und Wartungsaufwände ist GUI-basiertes Testen immer noch eine mehrheitlich manuelle Aufgabe (entsprechend der Testpyramide). Dabei macht Testen mittlerweile 30% des Gesamtaufwandes eines Softwareprojektes aus! Da ein Fehler im Auge des Betrachters liegt, ist es für eine KI schwer einen Fehler als solchen zu erkennen. Deshalb kann KI heute noch keine Tests automatisieren. Aber was, wenn es eine Möglichkeit gäbe dieses Problem zu umgehen? Ich zeige Ihnen, wie man heute eine KI trainieren und nutzen kann, um nicht nur technische Fehler zu finden, sonder automatisch Tests zu automatisieren! Besuchen Sie die Zukunft des Testens, und sehen Sie wie KI uns helfen kann Software besser zu machen.
Isolating Failure Causes through Test Case GenerationSAP SE
Manual debugging is driven by experiments—test runs that narrow down failure causes by systematically confirming or excluding individual factors. The BUGEX approach leverages test case generation to systematically isolate such causes from a single failing test run—causes such as properties of execution states or branches taken that correlate with the failure. Identifying these causes allows for deriving conclusions as: “The failure occurs whenever the daylight savings time starts at midnight local time.” In our evaluation, a prototype of BUGEX precisely pinpointed important failure explaining facts for six out of seven real-life bugs.