Wer ist verantwortlich fĂŒr die QualitĂ€t?

Hallo, Habra!

Wir haben ein neues wichtiges Thema – die qualitativ hochwertige Entwicklung von IT-Produkten. Wir sprechen oft auf HighLoad++, darĂŒber, wie man belastbare Dienste schnell macht, und auf der Frontend Conf – ĂŒber großartige BenutzeroberflĂ€chen, die nicht ruckeln. RegelmĂ€ĂŸig haben wir Themen ĂŒber Testing und bei DevOpsConf ĂŒber die Integration verschiedener Prozesse, einschließlich Testing. Was die QualitĂ€t als Ganzes betrifft und wie man wirklich umfassend daran arbeitet – darĂŒber gibt es nichts.

Wir werden das Ă€ndern in QualityConf – wir werden die Kultur fördern, ĂŒber die QualitĂ€t des Endprodukts fĂŒr die Benutzer in jeder Phase der Entwicklung nachzudenken. Die Gewohnheit, sich nicht nur auf das eigene Verantwortungsbereich zu beschrĂ€nken, und QualitĂ€t nicht nur mit Testern zu assoziieren.

Im Folgenden sprechen wir mit der Vorsitzenden des Programmkomitees, der Leiterin der Testing-Abteilung bei Tinkoff.Biz, der Schöpferin der russischsprachigen QA-Community Anastasia Aseeva-Nguyen ĂŒber den Zustand der QA-Branche und die Mission der neuen Konferenz.

Wer ist verantwortlich fĂŒr die QualitĂ€t?

– Nastya, hallo. ErzĂ€hl bitte etwas ĂŒber dich.

Wer ist verantwortlich fĂŒr die QualitĂ€t?Anastasia: Ich leite das Testing bei der Bank und bin verantwortlich fĂŒr eine sehr große Mannschaft – wir sind ĂŒber 90 Personen. Wir haben eine wichtige GeschĂ€ftslinie, wir sind verantwortlich fĂŒr das Ökosystem fĂŒr juristische Personen.

Ich habe Mathematik und Mechanik studiert und wollte ursprĂŒnglich Programmiererin werden. Aber als ich ein interessantes Angebot bekam, habe ich mich entschieden, es als Testerin auszuprobieren. MerkwĂŒrdigerweise stellte sich heraus, dass das meine Berufung war. Jetzt sehe ich meine gesamte Arbeit genau in dieser Branche.

Ich bin ein ĂŒberzeugter Verfechter der Quality Assurance-Disziplin. Mir liegt es am Herzen, welche Produkte erstellt werden, wie zur QualitĂ€t im Unternehmen, im Team und im Allgemeinen im Entwicklungsprozess steht.

Es ist mir offensichtlich, dass die Community in diesem Bereich nicht ausreichend reif ist, zumindest in Russland. Nicht immer verstehen wir, dass QualitÀtssicherung nicht nur das Testen der Anwendung auf die Einhaltung der Anforderungen ist. Ich möchte diese Situation Àndern.

– Du verwendest die Begriffe Quality Assurance und Testing. In den Augen der Öffentlichkeit ĂŒberschneiden sich diese beiden Begriffe sehr oft. Wo liegt der Unterschied, wenn man tiefer grĂ€bt?

Anastasia: Im Wesentlichen unterscheiden sie sich nicht. Testing ist ein Teil der Disziplin QualitĂ€tssicherung, es ist eine unmittelbare AktivitĂ€t – die Tatsache, dass ich etwas teste. Es gibt tatsĂ€chlich sehr viele Arten des Testens, und fĂŒr die verschiedenen Arten des Testens sind ganz unterschiedliche Personen verantwortlich. Aber in Russland, als die Welle von Outsourcern kam, die Tester in Unternehmen lieferten, reduzierte sich das Testen auf eine einzige Art.

In den meisten FĂ€llen beschrĂ€nkt man sich nur auf funktionales Testen: Man ĂŒberprĂŒft, ob das, was die Entwickler programmiert haben, der Spezifikation entspricht und das war's.

— ErzĂ€hle bitte, welche anderen Disziplinen der QualitĂ€tssicherung es noch gibt? Was gehört außer dem Testen noch dazu?

Anastasia: QualitĂ€tssicherung dreht sich in erster Linie um die Schaffung eines qualitativ hochwertigen Produkts. Das heißt, wir stellen uns die Frage, welche QualitĂ€tsmerkmale unser Produkt haben sollte. Wenn wir das verstehen, können wir feststellen, wer diese QualitĂ€tsmerkmale beeinflusst. Es spielt keine Rolle, ob Entwickler, Projektmanager oder Produktverantwortlicher — das ist die Person, die das Produkt, sein Backlog und seine Strategie beeinflusst.

Der Tester beginnt, seine Rolle besser zu erkennen. Er versteht, dass seine Aufgabe nicht nur darin besteht, auf Übereinstimmung mit den Anforderungen zu testen, sondern auch die Anforderungen zu testen, die Formulierungen zu hinterfragen, die vom Produktverantwortlichen kommen, alle nicht-expliziten Anforderungen und Erwartungen des Kunden aufzudecken. Wenn wir unserem Kunden neue FunktionalitĂ€ten bieten, mĂŒssen wir wirklich seine Erwartungen erfĂŒllen und sein Problem lösen. Wenn wir an alle QualitĂ€tsmerkmale denken, wird der Kunde zufrieden sein und verstehen, dass das Unternehmen, dessen Produkt er nutzt, tatsĂ€chlich an seinen Interessen interessiert ist und nicht nach dem Prinzip „hauptsache eine Funktion herausbringen“ arbeitet.

— Es scheint, dass das, was du gerade beschrieben hast, die Aufgabe des Produktverantwortlichen ist. Das betrifft im Grunde nicht das Testen und nicht die QualitĂ€t – das ist ganz allgemein das Produktmanagement, oder?

Anastasia: Unter anderem. QualitĂ€tssicherung ist keine Disziplin, fĂŒr die eine bestimmte Person verantwortlich ist. Aktuell gibt es einen populĂ€ren Ansatz im Testen, der als Agile Testing. In seiner Definition steht ausdrĂŒcklich, dass es sich um einen teamorientierten Ansatz fĂŒr das Testen handelt, der einen bestimmten Satz von Praktiken umfasst. Die Verantwortung fĂŒr die Umsetzung dieses Ansatzes liegt beim gesamten Team, es ist nicht unbedingt erforderlich, dass ein Tester im Team ist. Das gesamte Team ist darauf ausgerichtet, dem Kunden einen Mehrwert zu bieten, und dass dieser Mehrwert seinen Erwartungen entspricht.

— Das bedeutet, dass die QualitĂ€t nahezu alle umliegenden Disziplinen berĂŒhrt und Rahmenbedingungen fĂŒr alles um uns herum setzt?

Anastasia: Richtig. Wenn wir darĂŒber nachdenken, ein qualitativ hochwertiges Produkt zu schaffen, beginnen wir, ĂŒber verschiedene QualitĂ€tsattribute nachzudenken. Zum Beispiel, wie wir ĂŒberprĂŒfen können, dass wir wirklich eine Funktion umgesetzt haben, die unserem Kunden benötigt.

Hier kommt eine Art von Testen ins Spiel, die UAT (User Acceptance Testing) genannt wird. Leider wird dies in Russland selten praktiziert, ist aber manchmal in SCRUM-Teams als Demo fĂŒr den Endkunden vorhanden. In auslĂ€ndischen Unternehmen ist dies eine weit verbreitete Testform. Bevor wir die FunktionalitĂ€t fĂŒr alle Kunden freigeben, fĂŒhren wir zuerst UAT durch, das heißt, wir laden den Endverbraucher ein, der das Testen durchfĂŒhrt und sofort Feedback gibt – ob das Produkt wirklich den Erwartungen entspricht und ein Problem löst. Erst danach erfolgt das Scaling fĂŒr alle anderen Kunden.

Das heißt, wir orientieren uns am GeschĂ€ft, am Endkunden, aber dabei vergessen wir nicht die Technologie. Auch die Technologie hat einen großen Einfluss auf die QualitĂ€t des Produkts. Wenn wir eine schlechte Architektur haben, können wir keine Funktionen schnell veröffentlichen und den Erwartungen des Kunden entsprechen. Es kann viele Fehler geben, wenn wir versuchen zu skalieren, oder beim Versuch, Refactoring durchzufĂŒhren, können wir etwas kaputtmachen. Das alles wird sich auf die Zufriedenheit des Kunden auswirken.

Aus dieser Sicht sollte die Architektur so beschaffen sein, dass wir sauberen Code schreiben können, der es uns ermöglicht, schnell Änderungen vorzunehmen und keine Angst zu haben, dass wir alles zerbrechen. Damit die Iterationen der Überarbeitung sich nicht ĂŒber mehrere Monate hinziehen, nur weil wir so viel Legacy haben und lange Testphasen erforderlich sind.

— Also sind bereits Entwickler, Architekten, Produktmanager, Product Owner, die Tester selbst, eingebunden. Wer ist noch am Prozess der QualitĂ€tssicherung beteiligt?

Anastasia: Stellen wir uns vor, dass wir das Feature bereits an den Kunden geliefert haben. Es ist offensichtlich, dass die QualitĂ€t des Produkts ĂŒberwacht werden muss, auch wenn es bereits in der Produktion eingesetzt wird. In dieser Phase können Situationen mit nicht offensichtlichen Szenarien, die sogenannten Bugs, auftreten.

Die erste Frage ist: Wie gehen wir mit diesen Bugs um, nachdem wir das Produkt bereits veröffentlicht haben? Wie reagieren wir zum Beispiel auf Lasten? Der Kunde wird nicht sehr zufrieden sein, wenn die Seite lÀnger als 30 Sekunden lÀdt.

Hier kommt der Betrieb ins Spiel oder, wie man heute sagt, DevOps. TatsĂ€chlich sind das die Personen, die fĂŒr den Betrieb des Produkts verantwortlich sind, wenn es schon in der Produktion ist. Dazu gehört eine Vielzahl von Monitoring-Methoden. Es gibt sogar eine Unterkategorie des Testens – das sogenannte Testing in der Produktion, bei dem wir uns erlauben, etwas nicht bis zur Veröffentlichung zu testen und es sofort in der Produktion testen. Dies umfasst eine Reihe von Maßnahmen aus Sicht der Infrastrukturorganisation, die es ermöglichen, schnell auf einen Vorfall zu reagieren, darauf Einfluss zu nehmen und ihn zu beheben.

Die Infrastruktur ist ebenfalls wichtig. Oft gibt es Situationen, in denen es wĂ€hrend der Tests nicht möglich ist zu ĂŒberprĂŒfen, dass wir tatsĂ€chlich alles haben, was wir dem Kunden zur VerfĂŒgung stellen wollten. Wir rollen es in der Produktion aus – und beginnen, nicht offensichtliche Situationen zu erkennen. Das liegt daran, dass die Infrastruktur im Test nicht der Infrastruktur in der Produktion entspricht. Daraus ergibt sich eine neue Art des Testens – Infrastruktur-Testing. Dazu gehören verschiedene Konfigurationen, Einstellungen, Migration von Datenbanken usw.

Daraus ergibt sich die Frage – vielleicht muss das Team Infrastruktur als Code verwenden.

Ich glaube, dass die Infrastruktur einen direkten Einfluss auf die QualitÀt des Produkts hat.

Ich hoffe, dass es auf der Konferenz einen Vortrag mit einem echten Fallbeispiel geben wird. Schreiben Sie uns, wenn Sie bereit sind, aus Ihrer eigenen Erfahrung zu erzĂ€hlen, wie Infrastruktur als Code die QualitĂ€t beeinflusst. Infrastruktur als Code ermöglicht es, alle Einstellungen einfacher zu ĂŒberprĂŒfen und das zu testen, was andernfalls einfach unmöglich wĂ€re. Daher wird auch der Betrieb in den Prozess der Entwicklung eines hochwertigen Produkts einbezogen.

– Und was ist mit der Analyse und Dokumentation?

Anastasia: Das bezieht sich mehr auf Enterprise-Systeme. Wenn wir ĂŒber Enterprise sprechen, kommen sofort solche Personen wie Analysten und Systemanalysten in den Sinn. Manchmal werden sie auch technische Schriftsteller genannt. Sie erhalten den Auftrag, eine Spezifikation zu schreiben, und setzen diesen beispielsweise innerhalb eines Monats um.

Es wurde immer wieder nachgewiesen, dass das Schreiben solcher Dokumentationen zu sehr langen Entwicklungszyklen und ausgedehnten Überarbeitungen fĂŒhrt, weil im Testprozess Bugs entdeckt werden und RĂŒckgaben anfangen. Infolgedessen gibt es sehr viele Schleifen, die die Entwicklungskosten erhöhen. Außerdem kann dies SicherheitsanfĂ€lligkeiten einfĂŒhren. Wir haben scheinbar den Referenzcode geschrieben, aber dann Änderungen vorgenommen, die die perfekt durchdachte Architektur brechen.

Das Ergebnis ist ein nicht ganz qualitativ hochwertiges Produkt, weil die Architektur bereits Patches aufweist, der Code an einigen Stellen nicht ausreichend getestet ist, weil die Fristen drĂ€ngen und alle Bugs schneller behoben werden mĂŒssen. Das liegt daran, dass in der ursprĂŒnglichen Spezifikation nicht alle Aspekte berĂŒcksichtigt wurden, die implementiert werden mĂŒssen.

Entwickler sind keine ÜbeltĂ€ter und schreiben nicht absichtlich fehlerhaften Code.

HÀtten wir die Spezifikation von Anfang an durchdacht, in der alle notwendigen Aspekte beleuchtet worden wÀren, dann wÀre alles genau so umgesetzt worden, wie es nötig ist. Aber das ist eine Utopie.

Wahrscheinlich ist es unmöglich, eine ideale Spezifikation auf 100 Seiten zu schreiben. Deshalb mĂŒssen wir ĂŒber alternative Möglichkeiten nachdenken, Dokumentation, Spezifizierung und Aufgabenstellung zu schreiben, die uns nĂ€her bringen, dass der Entwickler genau das macht, was nötig ist.

Hier fallen einem AnsĂ€tze aus Agile ein – User Stories mit Akzeptanzkriterien. Das ist eher fĂŒr Teams geeignet, die in kleinen Iterationen arbeiten.

– Was ist mit Usability-Tests, der Benutzerfreundlichkeit des Produkts, dem Design?

Anastasia: Das ist ein sehr wichtiger Punkt, denn im Team gibt es Designer. Oftmals werden Designer als Service genutzt – entweder eine Designerabteilung oder ein Designer im Outsourcing. Es kommt hĂ€ufig vor, dass der Designer scheinbar den Produktmanager gehört hat und das gemacht hat, was er verstanden hat. Aber wenn wir mit der Iteration beginnen, stellt sich heraus, dass tatsĂ€chlich nicht das gemacht wurde, was erwartet wurde: Der Designer hat etwas vergessen, das Verhalten nicht bis ins Detail durchdacht, weil er nicht im Team und nicht im Kontext ist, oder der Frontend-Entwickler hat sein Layout nicht ganz verstanden. Möglicherweise sind mehrere Iterationen notwendig, nur weil es ein Problem mit dem VerstĂ€ndnis des Designs durch den Frontend-Entwickler gibt.

Außerdem gibt es ein weiteres Problem. Derzeit gewinnen Designsysteme an PopularitĂ€t. Sie sind im Trend, aber ihr Nutzen ist nicht ganz offensichtlich.

Ich stoße auf die Meinung, dass Designs, einerseits, die Entwicklung vereinfachen, andererseits aber auch sehr viele EinschrĂ€nkungen fĂŒr die Schnittstelle auferlegen.

Letztendlich entwickeln wir nicht die Funktion, die der Kunde möchte, sondern die, die uns bequem ist, weil wir bestimmte Bausteine bereits haben, aus denen wir sie erstellen können.

Ich denke, dass es sich lohnt, auf dieses Thema zu achten und darĂŒber nachzudenken, ob wir wirklich die Kundenprobleme lösen, wenn wir versuchen, die Arbeit am Design zu vereinfachen.

— Es gibt erstaunlich viele Themen, die mit QualitĂ€tssicherung verbunden sind. Gibt es in Russland eine Konferenz, bei der man all dies besprechen kann?

Anastasia: Es gibt die Ă€lteste Konferenz zur Testung, die in diesem Jahr zum 25. Mal stattfindet und einfach "SQA Days" heißt. In erster Linie werden dort Werkzeuge und spezifische AnsĂ€tze zum Testen fĂŒr funktionale Tester diskutiert. In der Regel werden auf den SQA Days spezifische Bereiche im Verantwortungsbereich der Tester detailliert behandelt, aber keine umfassenden Veranstaltungen.

Es hilft sehr, sich in verschiedenen Werkzeugen und AnsĂ€tzen wie der Testung von Datenbanken, APIs usw. zurechtzufinden. Aber andererseits motiviert es nicht dazu, mehr Leute in die Schaffung eines qualitativ hochwertigen Produkts einzubeziehen, nicht nur durch das Testen. Und andererseits werden Tester nicht motivierter, ĂŒber die globale Produktziele und dessen GeschĂ€ftsaspekte nachzudenken.

Ich leite eine große Abteilung, fĂŒhre viele Interviews, die es tatsĂ€chlich ermöglichen, den Zustand der Branche insgesamt zu beurteilen. In der Regel arbeiten unsere Leute im Enterprise-Bereich und haben einen klaren Verantwortungsbereich. Kollegen, die an internationalen Projekten arbeiten, nutzen verschiedene Arten des Testens: sie können Lasttests, Leistungstests und sogar manchmal Sicherheitstests durchfĂŒhren, weil sie wirklich dem Team helfen, die ProduktqualitĂ€t zu gewĂ€hrleisten.

Ich wĂŒnschte mir, dass unsere Leute in Russland auch anfangen wĂŒrden, darĂŒber nachzudenken, dass die Branche nicht mit funktionalen Tests endet.

— Zu diesem Zweck organisieren wir die neue Konferenz QualityConf, die sich der QualitĂ€t als ganzheitlicher Disziplin widmet. 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. Eine Plattform anbieten, wo sie kommen, VortrĂ€ge hören und nach der Konferenz mit einem konkreten VerstĂ€ndnis gehen können, was sie Ă€ndern mĂŒssen, um die QualitĂ€t zu verbessern.

Ich höre oft Anfragen aus dem Consulting, was zu tun ist, wenn es Probleme mit dem Testen und der QualitĂ€t gibt. Wenn man beginnt, mit den Teams zu kommunizieren, sieht man, dass das Problem nicht bei den Testern selbst liegt, sondern darin, wie der Prozess aufgebaut ist. Zum Beispiel, wenn Entwickler glauben, dass sie nur fĂŒr das Schreiben des Codes verantwortlich sind, endet ihre Verantwortung genau in dem Moment, in dem sie die Aufgabe zum Testen ĂŒbergeben.

Nicht jeder denkt darĂŒber nach, dass schlecht geschriebener, minderwertiger Code mit schlechter Architektur große Probleme fĂŒr das Projekt mit sich bringen kann. Sie denken nicht ĂŒber die Kosten von Fehlern nach, darĂŒber, dass Bugs, die in die Produktion gelangen, zu hohen Kosten fĂŒr das Unternehmen und das Team fĂŒhren können. Es gibt keine Kultur, darĂŒber nachzudenken. Ich möchte, dass wir auf der Konferenz anfangen, diese Kultur zu verbreiten.

Ich verstehe, dass dies keine Innovation ist. Edward Deming, der Autor der 14 QualitĂ€tsprinzipien, schrieb bereits im letzten Jahrhundert ĂŒber die Kosten von Fehlern. Auf diesem Buch basiert die QualitĂ€tssicherung als Disziplin, aber leider vergisst die moderne Entwicklung oft darĂŒber.

— Werden Sie auch Themen direkt zum Testen und zu Tools behandeln?

Anastasia: Ich gehe davon aus, dass es VortrĂ€ge ĂŒber Tools geben wird. Es gibt ausreichend universelle Werkzeuge, mit denen Unternehmen und Teams Einfluss auf das Produkt nehmen können.

Alle VortrÀge werden global durch eine gemeinsame Mission vereint: der Zielgruppe zu vermitteln, dass wir durch diesen Ansatz, dieses Werkzeug, diese Methode, diesen Prozess, diese Art des Testens die QualitÀt des Produkts beeinflusst und das Leben des Kunden verbessert haben.

Wir werden definitiv keine VortrĂ€ge ĂŒber Werkzeuge halten, nur um der Werkzeuge willen. Alle VortrĂ€ge, die ins Programm kommen, werden ein gemeinsames Ziel verfolgen.

— Wer wird an dem, was du sagst, interessiert sein, wen siehst du als GĂ€ste der Konferenz?

Anastasia: Wir werden PrĂ€sentationen fĂŒr Entwickler haben, denen das Schicksal ihres Projekts, Produkts oder Systems nicht gleichgĂŒltig ist. Auch Tester und, wie ich denke, insbesondere Manager werden interessiert sein. Mit Managern meine ich die Personen, die Entscheidungen treffen und das Schicksal sowie die Entwicklung des Produkts, Systems und der Teams beeinflussen können.

Das sind Menschen, die sich fragen, wie sie die QualitĂ€t des Produkts oder Systems steigern können. Auf unserer Konferenz erfahren sie mehr ĂŒber verschiedene Maßnahmenpakete und können verstehen, was jetzt nicht stimmt und was geĂ€ndert werden muss.

Ich denke, das Hauptkriterium ist, zu erkennen, dass mit der QualitÀt etwas nicht stimmt, und den Wunsch zu haben, etwas zu Àndern. Wahrscheinlich wird es uns nicht gelingen, beim ersten Mal durchdringen zu den Menschen, die denken, dass alles schon in Ordnung ist.

— Was denkst du, hat die Branche insgesamt den reifen Zustand erreicht, um nicht nur ĂŒber Tests, sondern ĂŒber eine Kultur der QualitĂ€t zu sprechen?

Anastasia: Ich denke schon. Viele Unternehmen entfernen sich derzeit vom traditionellen Wasserfallansatz hin zu Agile. Es erfolgt eine Orientierung am Kunden, und die Menschen in den Teams beginnen wirklich darĂŒber nachzudenken, wie man ein qualitativ hochwertiges Produkt schafft. Selbst in Unternehmen der Enterprise-Klasse gibt es eine Umorientierung hin zur Verbesserung der QualitĂ€t.

Anhand der Anzahl der Anfragen, die in der Community auftauchen, denke ich, dass es bereits an der Zeit ist. Ich bin mir nicht sicher, ob das eine umfassende Revolution sein wird, aber ich wĂŒrde mir wĂŒnschen, dass dieser Bewusstseinswandel stattfindet.

— Vereinbart! Wir werden die Kultur vermitteln und das Bewusstsein verĂ€ndern.

Konferenz ĂŒber qualitativ hochwertige Entwicklung von IT-Produkten QualityConf stattfinden in Moskau am 7. Juni. Sie wissen, aus welchen Phasen ein qualitativ hochwertiges Produkt besteht, es gibt erfolgreiche Fallstudien zur BekĂ€mpfung von Bugs in der Produktion, und in unserer eigenen Praxis haben wir beliebte Methoden ĂŒberprĂŒft – wir benötigen Ihre Erfahrungen. Schicken Sie Ihre Anmeldungen bis zum 1. Mai, und das Programmkomitee wird helfen, das Thema fĂŒr die Gesamtheit der Konferenz zu fokussieren.

Treten Sie dem Chatbei, in dem wir Fragen zur QualitĂ€t und zur Konferenz besprechen, und abonnieren Sie Telegram-Kanal, um ĂŒber Neuigkeiten zum Programm informiert zu bleiben.

Quelle: habr.com

60GB SSD 8Gb DDR4