Hallo, Habr!
Wir haben ein neues wichtiges Thema â die qualitativ hochwertige Entwicklung von IT-Produkten. Oft sprechen wir auf HighLoad++ darĂŒber, wie man stark belastete Dienste schnell macht, und auf der Frontend Conf ĂŒber groĂartige BenutzeroberflĂ€chen, die nicht ruckeln. RegelmĂ€Ăig haben wir Themen zum Testen, und bei DevOpsConf geht es um die Integration verschiedener Prozesse, einschlieĂlich Testing. Aber darĂŒber, was man insgesamt QualitĂ€t nennen kann und wie man umfassend daran arbeitet â das fehlt.
Wir werden das Ă€ndern in  â wir werden eine Kultur entwickeln, die es wichtig findet, ĂŒber die QualitĂ€t des Endprodukts fĂŒr den Benutzer in jeder Entwicklungsphase nachzudenken. Die Gewohnheit, sich nicht nur auf seinen Verantwortungsbereich zu konzentrieren, und QualitĂ€t nicht nur mit Testern zu assoziieren.
Im Folgenden sprechen wir mit der Leiterin des Programmausschusses, der Leiterin des Testteams bei Tinkoff.Business und der GrĂŒnderin der russischsprachigen QA-Community Anastasia Aseeva-Nguyen ĂŒber den Zustand der QA-Branche und die Mission der neuen Konferenz.

â Nastya, hallo. ErzĂ€hl uns bitte etwas ĂŒber dich.
Anastasia: Ich leite die Testabteilung in einer Bank und bin fĂŒr ein groĂes Team von ĂŒber 90 Personen verantwortlich. Wir haben eine wichtige GeschĂ€ftszeile und sind fĂŒr das Ăkosystem fĂŒr juristische Personen zustĂ€ndig.
Ich habe Mathematik und Informatik studiert und wollte ursprĂŒnglich Programmiererin werden. Als sich jedoch eine interessante Gelegenheit ergab, entschied ich mich, in die Rolle der Testerin hineinzuschnuppern. Ăberraschenderweise stellte ich fest, dass dies mein Ruf war. Jetzt sehe ich meine gesamte Arbeit genau in dieser Branche.
Ich bin eine leidenschaftliche Verfechterin der Disziplin Quality Assurance. Es liegt mir am Herzen, welche Produkte entwickelt werden und wie das Thema QualitÀt im Unternehmen, im Team und allgemein im Entwicklungsprozess behandelt wird.
FĂŒr mich ist es offensichtlich, dass die Gemeinschaft in diesem Bereich nicht ausreichend ausgereift ist, zumindest in Russland. Oft verstehen wir nicht, dass QualitĂ€tssicherung nicht nur das Testen einer Anwendung auf Ăbereinstimmung mit den Anforderungen bedeutet. Ich wĂŒrde gerne diese Situation Ă€ndern.
â Du verwendest die Begriffe Quality Assurance und Testing. FĂŒr den Normalverbraucher ĂŒberschneiden sich diese beiden Begriffe hĂ€ufig. Worin unterscheiden sie sich, wenn man tiefer grĂ€bt?
Anastasia: Eigentlich unterscheiden sie sich nicht. Testing ist ein Teil der Disziplin Quality Assurance und stellt eine konkrete TĂ€tigkeit dar â der Fakt, dass ich etwas teste. Es gibt in der Tat sehr viele Testarten, und fĂŒr verschiedene Testarten sind die unterschiedlichsten Personen verantwortlich. Doch in Russland, als die Welle der Outsourcing-Unternehmen entstand, die Tester in Firmen vermitteln, wurde das Testing auf eine einzige Art reduziert.
In den meisten FĂ€llen beschrĂ€nkt man sich nur auf funktionales Testing: Es wird ĂŒberprĂŒft, ob das, was die Entwickler programmiert haben, der Spezifikation entspricht und das war's.
â ErzĂ€hl mir bitte, welche weiteren Disziplinen zur QualitĂ€tssicherung gehören? Was gehört noch neben Testing dazu?
Anastasia: Quality Assurance bedeutet in erster Linie, ein qualitativ hochwertiges Produkt zu schaffen. Das heiĂt, wir fragen uns, welche QualitĂ€tsmerkmale unser Produkt haben sollte. Wenn wir das verstehen, können wir herausfinden, wer diese QualitĂ€tsmerkmale beeinflusst. Es spielt keine Rolle, ob es sich um einen Entwickler, einen Projektleiter oder einen Produktmanager handelt. â Das ist die Person, die Einfluss auf die Produktentwicklung, auf das Backlog und auf die Strategie hat.
Der Tester beginnt besser zu verstehen, welche Rolle er spielt. Er erkennt, dass seine Aufgabe nicht nur darin besteht, die Anforderungen zu testen, sondern auch die Anforderungen selbst zu hinterfragen, Formulierungen, die vom Produktmanager kommen, kritisch zu prĂŒfen und alle impliziten Anforderungen sowie Erwartungen des Kunden offenzulegen. Wenn wir unserem Kunden neue FunktionalitĂ€ten bereitstellen, mĂŒssen wir seine Erwartungen tatsĂ€chlich erfĂŒllen und seine Probleme lösen. Wenn wir ĂŒber alle QualitĂ€tsattribute nachdenken, wird der Kunde zufrieden sein und verstehen, dass das Unternehmen, dessen Produkt er nutzt, sich wirklich um seine Interessen kĂŒmmert und nicht nach dem Prinzip "nur eine Funktion bereitstellen" arbeitet.
â Es scheint, dass das, was du gerade beschrieben hast, die Aufgabe des Produktmanagers ist. Das geht doch im Grunde nicht um Tests und nicht um QualitĂ€t â es geht doch insgesamt um Produktmanagement, oder?
Anastasia: Zum Teil. QualitĂ€tssicherung ist keine Disziplin, fĂŒr die eine bestimmte Person verantwortlich ist. Derzeit gibt es einen beliebten Ansatz in der Tests, der als Agile Testing. In seiner Definition wird klar, dass es sich um einen teamorientierten Ansatz fĂŒr Tests handelt, der einen bestimmten Satz von Praktiken umfasst. Die Umsetzung dieses Ansatzes obliegt dem gesamten Team, was nicht zwingend einen Tester in der Mannschaft erfordert. Das gesamte Team ist darauf ausgerichtet, dem Kunden Wert zu bieten, der seinen Erwartungen entspricht.
â Das bedeutet, dass QualitĂ€t fast alle umgebenden Disziplinen umfasst und die Rahmenbedingungen fĂŒr alles andere setzt?
Anastasia: Richtig. Wenn wir darĂŒber nachdenken, was wir schaffen möchten, um ein qualitativ hochwertiges Produkt zu entwickeln, fangen wir an, ĂŒber verschiedene QualitĂ€tsattribute nachzudenken. Zum Beispiel, wie wir sicherstellen können, dass die Funktion, die wir entwickelt haben, tatsĂ€chlich fĂŒr unseren Kunden benötigt wird.
Hier kommt eine Testart ins Spiel, die UAT (User Acceptance Testing). Leider wird diese Methode in Russland selten angewendet, kommt aber manchmal in SCRUM-Teams vor, zum Beispiel als Demo fĂŒr den Endkunden. In Unternehmen im Ausland ist dies eine verbreitete Testmethode. Bevor wir die FunktionalitĂ€t fĂŒr alle Kunden freigeben, fĂŒhren wir zunĂ€chst UAT durch, das heiĂt, wir laden den Endverbraucher ein, der die Tests durchfĂŒhrt und direkt Feedback gibt â erfĂŒllt das Produkt tatsĂ€chlich die Erwartungen und löst es ein Problem? Erst danach erfolgt das Rollout fĂŒr alle anderen Kunden.
Das heiĂt, wir orientieren uns am GeschĂ€ft und am Endkunden, dabei vergessen wir die Technologie nicht. Auch die Technologie hat einen starken Einfluss auf die QualitĂ€t des Produkts. Wenn wir eine schlechte Architektur haben, können wir keine Funktionen schnell implementieren und die Erwartungen der Kunden nicht erfĂŒllen. Es kann viele Bugs geben, wenn wir versuchen, zu skalieren, oder beim Refactoring könnten wir etwas kaputt machen. Das alles wirkt sich auf die Kundenzufriedenheit aus.
Aus dieser Perspektive muss die Architektur so gestaltet sein, dass wir sauberen Code schreiben können, der schnelle Ănderungen ermöglicht, ohne Angst haben zu mĂŒssen, dass wir alles zerbrechen. Damit die Iterationen zur Verbesserung sich nicht ĂŒber mehrere Monate ziehen, nur weil wir so viel Legacy haben und lange Testphasen durchfĂŒhren mĂŒssen.
â Insgesamt sind bereits Entwickler, Architekten, Produktverantwortliche, Produktmanager und die Tester selbst beteiligt. Wer ist noch im Prozess der QualitĂ€tssicherung involviert?
Anastasia: Stellen wir uns nun vor, dass wir die Funktion bereits an den Kunden ausgeliefert haben. Es ist offensichtlich, dass wir die QualitĂ€t des Produkts auch im laufenden Betrieb im Auge behalten mĂŒssen. In dieser Phase können sich Situationen mit nicht offensichtlichen Szenarien zeigen, die sogenannten Bugs.
Die erste Frage ist, wie wir mit diesen Bugs umgehen, nachdem wir das Produkt bereits veröffentlicht haben. Wie reagieren wir, wenn beispielsweise die Last steigt? Der Kunde wird nicht sehr zufrieden sein, wenn die Seite lÀnger als 30 Sekunden zum Laden braucht.
Hier kommt der Betrieb ins Spiel oder, wie man heutzutage sagt, DevOps. TatsĂ€chlich sind das Menschen, die fĂŒr den Betrieb des Produkts verantwortlich sind, sobald es live ist. Dazu gehören verschiedene Arten von Monitoring. Es gibt sogar eine Unterkategorie des Testens â das Testing im Live-Betrieb, bei dem wir uns erlauben, etwas bis zur Ausrollung nicht zu testen und es sofort live erproben. Dies umfasst eine Reihe von MaĂnahmen zur Organisation der Infrastruktur, die es ermöglichen, schnell auf VorfĂ€lle zu reagieren, sie zu beeinflussen und zu beheben.
Die Infrastruktur ist ebenfalls wichtig. Oft gibt es Situationen, in denen wir wĂ€hrend eines Tests nicht sicherstellen können, dass wir tatsĂ€chlich alles haben, was wir dem Kunden anbieten möchten. Wenn wir dann live gehen, stoĂen wir auf unvorhergesehene Situationen. Das liegt daran, dass die Infrastruktur im Test nicht mit der Live-Infrastruktur ĂŒbereinstimmt. Daraus ergibt sich eine neue Art des Testens â Infrastruktur Testing. Dazu gehören verschiedene Konfigurationen, Einstellungen, Datenbankmigration usw.
Deshalb stellt sich die Frage â möglicherweise sollte das Team Infrastruktur als Code nutzen.
Ich glaube, dass die Infrastruktur direkten Einfluss auf die QualitÀt des Produkts hat.
Ich hoffe, dass es auf der Konferenz einen Vortrag mit einem echten Anwendungsfall geben wird. Schreiben Sie uns, wenn Sie bereit sind, Ihre Erfahrungen darĂŒber zu teilen, wie Infrastructure as Code die QualitĂ€t beeinflusst. Infrastructure as Code ermöglicht es, alle Einstellungen einfacher zu ĂŒberprĂŒfen und das zu testen, was sonst einfach nicht möglich wĂ€re. Daher wird auch der Betrieb in den Prozess der Entwicklung qualitativ hochwertiger Produkte einbezogen.
â Was ist mit Analytik und Dokumentation?
Anastasia: Das bezieht sich eher auf Enterprise-Systeme. Wenn wir ĂŒber Enterprise sprechen, denken wir sofort an Personen wie Analysten und Systemanalytiker. Manchmal werden sie technische Autoren genannt. Sie erhalten den Auftrag, eine Spezifikation zu schreiben, und setzen dies beispielsweise innerhalb eines Monats um.
Es ist vielfach bewiesen, dass das Schreiben solcher Dokumentationen zu sehr langen Entwicklungszyklen und langen Iterationen bei der Ăberarbeitung fĂŒhrt, da wĂ€hrend des Testprozesses Bugs entdeckt werden und RĂŒckgaben beginnen. Infolgedessen entstehen viele Schleifen, die die Entwicklungskosten erhöhen. DarĂŒber hinaus können dabei Schwachstellen entstehen. Wir glauben, wir haben den Referenzcode geschrieben, doch dann haben wir Ănderungen vorgenommen, die die perfekt durchdachte Architektur destabilisieren.
Das Ergebnis ist ein nicht ganz qualitativ hochwertiges Produkt, da die Architektur bereits mit Flickstellen versehen ist und der Code an einigen Stellen nicht ausreichend getestet ist, weil die Fristen drĂ€ngen und alle Bugs schneller behoben werden mĂŒssen. Und das alles, weil in der ursprĂŒnglichen Spezifikation nicht alle Aspekte berĂŒcksichtigt wurden, die umgesetzt werden mussten.
Entwickler sind keine SchÀdlinge und schreiben nicht absichtlich fehlerhaften Code.
Wenn wir zu Beginn eine Spezifikation durchdacht hÀtten, die alle notwendigen Aspekte beleuchtet, wÀre alles genau so umgesetzt worden, wie es nötig ist. Aber das ist Utopie.
Wahrscheinlich ist es unmöglich, eine ideale Spezifikation auf 100 Seiten zu erstellen. Daher Man sollte ĂŒber alternative Möglichkeiten zur Erstellung von Dokumentation nachdenken., Spezifizierung, Aufgabenstellung, die uns nĂ€herbringt, damit der Entwickler genau das macht, was nötig ist.
Hier kommen agile AnsĂ€tze in den Sinn â Benutzerstories mit Akzeptanzkriterien. Das ist eher fĂŒr Teams anwendbar, die sich in kleinen Iterationen weiterentwickeln.
â Wie steht es um Usability-Tests, die Benutzerfreundlichkeit des Produkts, das Design?
Anastasia: Das ist ein sehr wichtiger Punkt, denn im Team gibt es Designer. HĂ€ufig werden Designer als Dienstleistung in Anspruch genommen â entweder durch eine Designabteilung oder durch einen externen Designer. Es kommt oft vor, dass der Designer scheinbar den Produktmanager gehört hat und das gemacht hat, was er verstanden hat. Aber wenn wir zur Iteration ĂŒbergehen, stellt sich heraus, dass tatsĂ€chlich nicht das umgesetzt wurde, was erwartet wurde: Der Designer hat etwas vergessen oder das Verhalten nicht vollstĂ€ndig durchdacht, weil er nicht im Team und nicht im Kontext ist, oder der Frontend-Entwickler hat sein Layout nicht vollstĂ€ndig verstanden. Es kann mehrere Iterationen erfordern, nur weil es ein VerstĂ€ndnisproblem zwischen dem Design und dem Frontend-Entwickler gibt.
Es gibt noch ein weiteres Problem. Momentan gewinnen Design-Systeme an PopularitÀt. Sie sind im Trend, aber der Nutzen ist nicht ganz offensichtlich.
Ich stoĂe auf die Meinung, dass Design-Systeme einerseits die Entwicklung vereinfachen, andererseits jedoch viele EinschrĂ€nkungen fĂŒr die BenutzeroberflĂ€che mit sich bringen.
Letztendlich erstellen wir nicht die Funktion, die der Kunde möchte, sondern die, die fĂŒr uns bequem ist, weil wir bereits bestimmte Bausteine haben, aus denen wir sie zusammensetzen können.
Ich denke, man sollte dieses Thema in Betracht ziehen und ĂŒberlegen, ob wir in dem Versuch, die Designarbeit zu vereinfachen, wirklich das Problem des Kunden lösen.
â Es gibt erstaunlich viele Themen im Zusammenhang mit Quality Assurance. Gibt es in Russland eine Konferenz, auf der all dies diskutiert werden kann?
Anastasia: Es gibt eine der Ă€ltesten Konferenzen zum Testen, die in diesem Jahr zum 25. Mal stattfindet und die QualitĂ€tssicherungs-Konferenz SQA Days genannt wird. PrimĂ€r werden dort Werkzeuge und konkrete TestansĂ€tze fĂŒr Funktionstester diskutiert. In den VortrĂ€gen auf den SQA Days werden typischerweise spezifische Bereiche innerhalb der Verantwortung der Tester tiefgehend behandelt, jedoch keine umfassenden Themen.
Das hilft enorm dabei, sich in verschiedenen Werkzeugen und AnsĂ€tzen zurechtzufinden, wie man Datenbanken, APIs usw. testet. Auf der anderen Seite motiviert es jedoch nicht, auch andere Aspekte in die Schaffung eines qualitativ besseren Produkts einzubeziehen, und die Tester werden nicht aktiver in den Prozess einbezogen, um ĂŒber die globale Zielsetzung des Produkts und dessen GeschĂ€ftsaspekte nachzudenken.
Ich leite eine groĂe Abteilung und fĂŒhre viele VorstellungsgesprĂ€che, die tatsĂ€chlich einen Ăberblick ĂŒber den Zustand der Branche insgesamt geben. Unsere Mitarbeiter arbeiten in der Regel im Enterprise-Bereich und haben klare Verantwortlichkeiten. Kollegen, die an internationalen Projekten arbeiten, nutzen verschiedene Testmethoden: Sie können Lasttests, Leistungstests und manchmal sogar Sicherheitstests (Security Testing) durchfĂŒhren, da sie dem Team helfen, die QualitĂ€t des Produkts zu gewĂ€hrleisten.
Ich wĂŒrde mir wĂŒnschen, dass auch in Russland die Leute anfangen, darĂŒber nachzudenken, dass die Branche nicht nur mit Funktionstests endet.
â DafĂŒr organisieren wir die neue Konferenz QualityConf, die der QualitĂ€t als ganzheitlicher Disziplin gewidmet ist. ErzĂ€hl mir mehr ĂŒber die Idee, was ist das Hauptziel der Konferenz?
Anastasia: Wir möchten eine Gemeinschaft von Menschen schaffen, die daran interessiert sind, qualitativ hochwertige Produkte zu entwickeln. Wir wollen eine Plattform bieten, auf die sie kommen können, um VortrĂ€ge zu hören und nach der Konferenz mit einem klaren VerstĂ€ndnis darĂŒber zu gehen, was sie Ă€ndern mĂŒssen, um die QualitĂ€t zu verbessern.
Ich höre oft Anfragen aus der Beratung, was zu tun ist, wenn es Probleme beim Testen und mit der QualitĂ€t gibt. Wenn man mit den Teams spricht, wird deutlich, dass das Problem nicht bei den Testern liegt, sondern darin, wie der Prozess gestaltet ist. Zum Beispiel, wenn Entwickler glauben, dass sie nur fĂŒr das Schreiben von Code verantwortlich sind, endet ihre Verantwortung genau in dem Moment, in dem sie die Aufgabe in die Tests ĂŒbergeben.
Nicht alle denken daran, dass schlecht geschriebener, qualitativ minderwertiger Code mit einer schlechten Architektur groĂe Probleme fĂŒr das Projekt mit sich bringen kann. Sie denken nicht an die Kosten von Fehlern und daran, dass Bugs, die in die Produktion gelangen, erhebliche Kosten fĂŒr das Unternehmen und das Team verursachen können. Es fehlt an einer Kultur, ĂŒber all das nachzudenken. Ich möchte, dass wir auf der Konferenz damit beginnen, diese Kultur zu verbreiten.
Ich verstehe, dass das keine Neuerung ist. Edward Deming, der Autor der 14 QualitĂ€tsgrundsĂ€tze, schrieb bereits im letzten Jahrhundert ĂŒber die Kosten von Fehlern. Auf diesem Buch basiert die Disziplin der QualitĂ€tssicherung. Leider vergisst die moderne Entwicklung das jedoch.
â Werdet ihr auch konkret Themen ĂŒber das Testen und die Tools ansprechen?
Anastasia: Ich gehe davon aus, dass es VortrĂ€ge ĂŒber Werkzeuge geben wird. Es gibt recht universelle Werkzeuge, mit denen Unternehmen und Teams das Produkt beeinflussen können.
Alle VortrÀge werden global unter einer gemeinsamen Mission vereint: dem Publikum zu vermitteln, dass wir durch diesen Ansatz, dieses Werkzeug, diese Methode, diesen Prozess oder diese Art des Testens die ProduktqualitÀt beeinflusst und das Leben der Kunden verbessert haben.
Wir werden definitiv keine VortrĂ€ge ĂŒber Werkzeuge nur um der Werkzeuge willen haben. Alle VortrĂ€ge, die im Programm enthalten sind, werden ein gemeinsames Ziel verfolgen.
â Wer wird an dem interessiert sein, worĂŒber du sprichst? Wen siehst du als GĂ€ste der Konferenz?
Anastasia: Wir werden VortrĂ€ge fĂŒr Entwickler haben, die um das Schicksal ihres Projekts, Produkts oder Systems besorgt sind. Ebenso wird es fĂŒr Tester interessant sein und, wie ich denke, insbesondere fĂŒr Manager. Mit Managern meine ich Personen, die Entscheidungen treffen und das Schicksal sowie die Entwicklung des Produkts, Systems und Teams beeinflussen können.
Das sind die Menschen, die sich fragen, wie sie die ProduktqualitĂ€t und die Systeme verbessern können. Auf unserer Konferenz werden sie verschiedene MaĂnahmen kennenlernen und verstehen, was jetzt nicht stimmt und was geĂ€ndert werden muss.
Ich denke, das Hauptkriterium ist das Bewusstsein, dass mit der QualitÀt etwas nicht stimmt, und der Wunsch, darauf Einfluss zu nehmen. Wahrscheinlich werden wir es nicht schaffen, beim ersten Mal die Menschen zu erreichen, die glauben, dass alles gut so ist.
â Was denkst du, hat die Branche im Allgemeinen den Reifegrad erreicht, um nicht nur ĂŒber Tests, sondern auch ĂŒber eine Kultur der QualitĂ€t zu sprechen?
Anastasia: Ich glaube, sie hat es erreicht. Viele Unternehmen wenden sich derzeit vom traditionellen Waterfall-Ansatz hin zu Agile. Es gibt eine Ausrichtung auf den Kunden, und die Menschen in den Teams beginnen wirklich darĂŒber nachzudenken, wie sie ein qualitativ hochwertiges Produkt erstellen können. Selbst in Enterprise-Unternehmen findet eine Umorientierung zur QualitĂ€tssteigerung statt.
Anhand der Anzahl der Anfragen, die in der Gemeinschaft auftauchen, denke ich, dass es bereits an der Zeit ist. Ich bin mir zwar nicht sicher, ob es eine groĂangelegte Revolution sein wird, aber ich wĂŒrde mir wĂŒnschen, dass dieser Umbruch im Bewusstsein stattfindet.
â Wir haben einen Deal! Wir werden die Kultur fördern und das Bewusstsein verĂ€ndern.
Konferenz ĂŒber die qualitativ hochwertige Entwicklung von IT-Produkten stattfinden in Moskau am 7. Juni. Wissen Sie, aus welchen Phasen ein qualitativ hochwertiges Produkt besteht, wir haben erfolgreiche Beispiele fĂŒr den Umgang mit Bugs in der Produktion und haben in unserer Praxis bewĂ€hrte Methoden getestet â wir benötigen Ihre Erfahrung. Ihre Bewerbungen bis zum 1. Mai, und das Programmkomitee hilft dabei, das Thema fĂŒr die allgemeine KohĂ€renz der Konferenz zu fokussieren.
Treten Sie dem , in dem wir Fragen zur QualitĂ€t und zur Konferenz diskutieren, abonnieren Sie , um ĂŒber Neuigkeiten im Programm informiert zu bleiben.
Quelle: habr.com
