Vem ansvarar för kvaliteten?

Hej, Habr!

Vi har ett nytt viktigt Ă€mne – kvalitetsutveckling av IT-produkter. Vi pratar ofta pĂ„ HighLoad++ om hur man gör belastade tjĂ€nster snabba, och pĂ„ Frontend Conf om en hĂ€ftig anvĂ€ndargrĂ€nssnitt som inte laggar. Vi har regelbundet Ă€mnen om testning och DevOpsConf om att förena olika processer, inklusive testning. Men nĂ€r det kommer till vad man kan kalla kvalitet i helhet och hur man arbetar med det pĂ„ ett heltĂ€ckande sĂ€tt – finns det inget.

Vi fixar det till QualityConf – vi kommer att utveckla kulturen av att tĂ€nka pĂ„ kvaliteten av den slutliga produkten för anvĂ€ndaren i varje utvecklingsstadium. En vana att inte fastna i sitt eget ansvarsomrĂ„de och att associera kvalitet inte bara med testare.

Under rubriken pratar vi med ordföranden för programkommittén, testledaren pÄ Tinkoff Business, skaparen av den rysktalande QA-gemenskapen Anastasia Aseeva-Nguyen om tillstÄndet inom QA-branschen och syftet med den nya konferensen.

Vem ansvarar för kvaliteten?

– Hej Nastya. BerĂ€tta gĂ€rna lite om dig sjĂ€lv.

Vem ansvarar för kvaliteten?Anastasia: Jag leder testningen pĂ„ banken, ansvarar för ett mycket stort team – vi Ă€r fler Ă€n 90 personer. Vi har ett viktigt affĂ€rsomrĂ„de, vi ansvarar för ekosystemet för juridiska personer.

Jag studerade pÄ matematik och mekanik och ville frÄn början bli programmerare. Men nÀr jag fick ett intressant erbjudande bestÀmde jag mig för att prova pÄ att vara testare. Konstig nog visade det sig vara mitt kall. Nu ser jag hela mitt arbete som en del av denna bransch.

Jag Àr en entusiastisk föresprÄkare av Quality Assurance-disciplinen. Det betyder mycket för mig vilka produkter som skapas, hur man förhÄller sig till kvalitet inom företaget, i teamet och i princip i utvecklingsprocessen.

För mig Àr det uppenbart att gemenskapen inom detta omrÄde Àr inte tillrÀckligt mogen, Ätminstone i Ryssland. Vi förstÄr inte alltid att kvalitetssÀkring inte bara handlar om sjÀlva testandet av en applikation mot krav. Jag skulle vilja förÀndra denna situation.

– Du anvĂ€nder orden Quality Assurance och testning. I allmĂ€nhetens ögon överlappar dessa tvĂ„ termer ofta. Hur skiljer de sig Ă„t om man grĂ€ver djupare?

Anastasia: Nej, de skiljer sig faktiskt inte. Testning Ă€r en del av kvalitetssĂ€kring, det Ă€r en omedelbar aktivitet – sjĂ€lva faktum att jag testar nĂ„got. Det finns faktiskt mĂ„nga olika typer av testning, och olika typer av testning hanteras av olika personer. Men i Ryssland, nĂ€r vĂ„gen av outsourcingföretag dök upp som tillhandahĂ„ller testare till företag, har testning reducerats till en enda typ.

I de flesta fall begrÀnsar man sig till funktionell testning: man kontrollerar att det som utvecklarna har kodad motsvarar specifikationen och inget mer.

– BerĂ€tta gĂ€rna, vilka andra discipliner finns det inom kvalitetssĂ€kring? Vad mer, förutom testning, ingĂ„r hĂ€r?

Anastasia: KvalitetssĂ€kring handlar först och frĂ€mst om att skapa en kvalitetsprodukt. Det vill sĂ€ga, vi stĂ€ller oss frĂ„gan vilka kvalitetsegenskaper vĂ„r produkt bör ha. Om vi förstĂ„r detta kan vi ocksĂ„ identifiera vem som pĂ„verkar dessa kvalitetsegenskaper. Det spelar ingen roll, utvecklare, projektledare eller produktĂ€gare – Ă€r den personen som pĂ„verkar produktens utveckling, dess backlog och dess strategi.

Testaren börjar bÀttre förstÄ sin roll. Han eller hon inser att uppgiften inte bara handlar om att testa mot krav, utan ocksÄ om att testa kraven, ifrÄgasÀtta formuleringar som kommer frÄn produktÀgaren, identifiera alla underliggande krav och kundens förvÀntningar. NÀr vi levererar ny funktionalitet till vÄr kund mÄste vi verkligen uppfylla deras förvÀntningar och lösa deras problem. Om vi tÀnker pÄ alla kvalitetsegenskaper kommer kunden att vara nöjd och förstÄ att företaget vars produkt han eller hon anvÀnder verkligen bryr sig om deras intressen, och inte bara arbetar utifrÄn principen 'bara slÀppa en funktion'.

– Det verkar som det du just beskrev – det Ă€r produktĂ€garens uppgift. Det handlar egentligen inte om testning och inte om kvalitet – det handlar överhuvudtaget om produktledning, eller hur?

Anastasia: Delvis. KvalitetssÀkring Àr inte en disciplin som ansvarar för en specifik person. Nu finns det en populÀr inriktning inom testning, en metodik som kallas Agil testningI definitionen stÄr det direkt att detta Àr ett teamorienterat tillvÀgagÄngssÀtt för testning som omfattar en viss uppsÀttning metoder. Genomförandet av detta tillvÀgagÄngssÀtt ansvarar hela teamet för, det Àr inte nödvÀndigt att det finns en testare i teamet. Hela teamet Àr fokuserat pÄ att leverera vÀrde till kunden och att detta vÀrde motsvarar hans förvÀntningar.

— SĂ„ kvalitet korsar sig med nĂ€stan alla omgivande discipliner och sĂ€tter ramar för allt omkring?

Anastasia: Precis. NÀr vi tÀnker pÄ att skapa en kvalitetsprodukt börjar vi tÀnka pÄ olika kvalitetsattribut. Till exempel, hur ska vi kontrollera att vi verkligen har gjort en funktion som vÄr kund behöver.

DĂ„ dyker en typ av testning upp som UAT (anvĂ€ndartestning). TyvĂ€rr praktiseras detta sĂ€llan i Ryssland, men förekommer ibland i SCRUM-team som en demo för slutkunden. I utlĂ€ndska företag Ă€r detta en ganska vanlig typ av testning. Innan vi öppnar funktionaliteten för alla kunder gör vi först UAT, det vill sĂ€ga vi bjuder in slutanvĂ€ndaren som genomför tester och ger omedelbar feedback — om produkten verkligen uppfyller förvĂ€ntningarna och löser problemet. Först efter detta sker en skalning till alla andra kunder.

SÄ vi fokuserar pÄ affÀrer, pÄ slutkunden, men glömmer inte heller teknologin. Teknologi pÄverkar ocksÄ starkt produktens kvalitet. Om vi har en dÄlig arkitektur kan vi inte snabbt slÀppa funktioner och motsvara kundens förvÀntningar. Det kan uppstÄ mÄnga buggar vid försök att skala, eller vid försök att göra refaktorisering kan vi rÄka bryta nÄgot. Allt detta kommer att pÄverka kundens tillfredsstÀllelse.Ur detta perspektiv bör arkitekturen vara sÄdan att vi kan skriva ren kod som gör det möjligt att snabbt göra Àndringar utan att vara rÀdda för att vi förstör allt. För att iterationer av förbÀttringar inte ska strÀcka sig över flera mÄnader endast pÄ grund av att vi har sÄ mycket legacy och behöver genomföra lÄnga testfaser.

— Sammanfattningsvis Ă€r utvecklare, arkitekter, produktentusiaster, produktchefer och sjĂ€lva testarna redan involverade. Vem mer Ă€r involverad i processen för att sĂ€kerstĂ€lla kvalitet?

— Totalt Ă€r det redan utvecklare, arkitekter, produktutvecklare, produktchefer och testare involverade. Vem mer Ă€r involverad i processen för kvalitetskontroll?

Anastasia: LÄt oss nu förestÀlla oss att vi har levererat funktionen till kunden. Det Àr uppenbart att vi mÄste övervaka produktens kvalitet nÀr den vÀl Àr i produktion. Vid denna tidpunkt kan situationer med ovÀntade scenarier och sÄ kallade buggar uppstÄ.

Den första frÄgan Àr hur vi arbetar med dessa buggar efter att produkten redan har slÀppts? Hur reagerar vi till exempel pÄ belastning? Kunden kommer inte att vara sÀrskilt nöjd om sidan laddas i mer Àn 30 sekunder.

HÀr spelar drift eller, som det nu kallas, DevOps. I praktiken handlar det om mÀnniskor som ansvarar för produktens drift nÀr den vÀl Àr i produktion. Det inkluderar olika typer av övervakning. Det finns till och med en underkategori av testning - produkttestning, dÀr vi tillÄter oss att inte testa nÄgot före lanseringen och testar det direkt i produktionen. Det handlar om ÄtgÀrder nÀr det gÀller att organisera infrastrukturen som möjliggör snabba reaktioner pÄ incidenter, pÄverkar dem och ÄtgÀrdar dem.

Infrastrukturen Àr ocksÄ viktig. Det Àr ofta sÄ att under testningen kan vi inte vara sÀkra pÄ att vi verkligen har allt det som vi skulle vilja ge kunden. Vi slÀpper ut i produktion - och börjar fÄnga ovÀntade situationer. Allt beroende pÄ att infrastrukturen i testen inte stÀmmer överens med infrastrukturen i produktionen. HÀrifrÄn hÀrstammar en ny typ av testning - infrastrukturtestning. Det handlar om olika konfigurationer, instÀllningar, databas-migrering och sÄ vidare.

HÀr uppstÄr frÄgan - kanske teamet behöver anvÀnda infrastruktur som kod.

Jag tror att infrastrukturen direkt pÄverkar produktens kvalitet.

Jag hoppas att det kommer att finnas en presentation med en verklig fallstudie pÄ konferensen. Skriv till oss om du Àr redo att dela med dig av din erfarenhet om hur infrastruktur som kod pÄverkar kvaliteten. Infrastruktur som kod gör det enklare att kontrollera alla instÀllningar och testa vad som annars Àr omöjligt. DÀrför involveras driften i utvecklingsprocessen av kvalitetsprodukter.

– Och hur Ă€r det med analys och dokumentation?

Anastasia: Det handlar mer om enterprise-system. NÀr vi pratar om enterprise, dyker genast sÄdana personer som analytiker och systemanalytiker upp i tankarna. Ibland kallas de tekniska skribenter. De fÄr i uppdrag att skriva en specifikation och utför den, till exempel under en mÄnad.

Det har upprepade gÄnger bevisats att skrivande av sÄdan dokumentation leder till mycket lÄnga utvecklingsiterationer och lÄnga iterationer av revideringar, eftersom buggar upptÀcks under testningen och det blir returer. Resultatet blir mÄnga loopar som ökar utvecklingskostnaden. Dessutom kan detta introducera sÄrbarheter. Vi har visserligen skrivit referenskod, men sedan har vi gjort Àndringar som bryter den perfekt genomtÀnkta arkitekturen.

Slutprodukten blir inte helt kvalitativ eftersom arkitekturen redan har fÄtt lappar, koden Àr inte tillrÀckligt testad pÄ vissa stÀllen för att tidsfristen Àr pressande och allt mÄste fixas snabbare. Allt detta beror pÄ att inte alla punkter som behöver genomföras togs upp i den ursprungliga specifikationen.

Utvecklare Àr inte skadliga och skriver inte medvetet kod med fel.

Om vi hade tÀnkt igenom specifikationen frÄn början dÀr alla nödvÀndiga punkter belyses skulle allt ha genomförts precis som det skulle. Men det Àr en utopi.

Det Àr nog omöjligt att skriva en perfekt specifikation pÄ 100 sidor. DÀrför mÄste vi tÀnka pÄ alternativa sÀtt att skriva dokumentation, specificera, stÀlla upp uppgifter som skulle föra oss nÀrmare att utvecklaren gör exakt vad som behövs.

DĂ„ kommer jag att tĂ€nka pĂ„ metoder frĂ„n Agile – anvĂ€ndarberĂ€ttelser med acceptanskriterier. Detta Ă€r mer tillĂ€mpligt för team som utvecklas i smĂ„ iterationer.

– Vad kan vi sĂ€ga om anvĂ€ndartester, anvĂ€ndbarheten av produkten, designen?

Anastasia: Det Ă€r en mycket viktig punkt eftersom det finns designers i teamet. Oftast anvĂ€nds designers som en tjĂ€nst – antingen en designeravdelning eller en designer pĂ„ extern basis. Det Ă€r ofta situationer dĂ€r det verkar som om designern har lyssnat pĂ„ produktansvariga och gjort det som han eller hon förstod. Men nĂ€r vi börjar med iterationen visar det sig att det verkligen inte gjordes som förvĂ€ntat: designern har glömt nĂ„got, inte helt tĂ€nkt igenom beteendet eftersom han eller hon inte Ă€r i teamet och inte i kontexten, eller frontendutvecklaren har inte helt förstĂ„tt hans eller hennes skiss. Det kan behövas flera iterationer bara pĂ„ grund av att det finns ett problem med att förstĂ„ designen av frontendutvecklaren.

Det finns ocksÄ ett annat problem. Designsystem blir alltmer populÀra. De Àr pÄ hajpen, men fördelarna med dem Àr inte helt uppenbara.

Jag stöter pÄ Äsikten att designsystem Ä ena sidan förenklar utvecklingen, Ä andra sidan lÀgger de pÄ vÀldigt mÄnga begrÀnsningar för grÀnssnittet.

Resultatet blir att vi inte gör den funktion som kunden vill ha, utan en som Àr bekvÀm för oss, eftersom vi redan har vissa komponenter som vi kan anvÀnda för att skapa den.

Jag tror att det Àr vÀrt att uppmÀrksamma detta Àmne och fundera pÄ om vi verkligen löser kundens problem i vÄr strÀvan att förenkla designarbetet.

— Det finns otroligt mĂ„nga Ă€mnen kring kvalitetssĂ€kring. Finns det en konferens i Ryssland dĂ€r man kan diskutera allt detta?

Anastasia: Det finns den Àldsta konferensen för testning som i Är hÄlls för 25:e gÄngen och heter just SQA Days. DÀr diskuteras frÀmst verktyg och specifika testmetoder för funktionella testare. Vanligtvis behandlas mer specifika omrÄden inom testares ansvar, men inte de mer övergripande temana.

Det hjĂ€lper verkligen att förstĂ„ de olika verktygen och metoderna för hur man testar databaser, API och sĂ„ vidare. Men Ă„ ena sidan motiverar det inte att involvera andra i skapandet av en mer kvalitativ produkt Ă€n bara testningen. Å andra sidan blir testarna inte mer involverade i processen för att tĂ€nka pĂ„ produktens globala mĂ„l och dess affĂ€rsaspekt.

Jag leder en stor avdelning och genomför mÄnga intervjuer, vilket faktiskt ger en bild av industrins tillstÄnd som helhet. Vanligtvis arbetar vÄra killar med företag av högre standard (enterprise), och de har en tydlig ansvarszon. Kollegaer som arbetar med utlÀndska projekt anvÀnder olika typer av testning: de kan sjÀlva genomföra belastningstest, prestandatest, och till och med ibland sÀkerhetstestning (security testing), eftersom de verkligen hjÀlper teamet att sÀkerstÀlla produktens kvalitet.

Jag skulle vilja att vÄra killar i Ryssland ocksÄ börjar tÀnka pÄ att den funktionella testningen inte Àr slutet pÄ industrin.

— För detta syfte arrangerar vi den nya konferensen QualityConf, som handlar om kvalitet som en helhetsdisciplin. Kan du berĂ€tta mer om idĂ©n, vad Ă€r huvudsyftet med konferensen?

Anastasia: Vi vill skapa en gemenskap av mÀnniskor som Àr intresserade av att göra kvalitetsprodukter. Erbjuda en plattform dit de kan komma, lyssna pÄ förelÀsningar och efter konferensen gÄ dÀrifrÄn med en konkret förstÄelse för vad de behöver Àndra för att förbÀttra kvaliteten.

Jag hör ofta frÄn konsultföretag vad man ska göra nÀr det finns problem med testning och kvalitet. NÀr man börjar prata med teamen ser man att problemet inte ligger hos testarna, utan i hur processen Àr uppbyggd. Till exempel nÀr utvecklarna tror att de endast Àr ansvariga för att skriva koden, slutar deras ansvar precis i det ögonblick de överlÀmnar uppgiften för testning.

Inte alla tÀnker pÄ att dÄligt skriven, kvalitetsmÀssigt undermÄlig kod med dÄlig arkitektur kan leda till stora problem för projektet. De tÀnker inte pÄ kostnaderna för misstag, pÄ att buggar som hamnar i produktion kan leda till stora kostnader för företaget och teamet. Det finns ingen kultur för att tÀnka pÄ detta. Jag vill att vi pÄ konferensen ska börja sprida denna kultur.

Jag förstÄr att detta inte Àr en innovation. Edward Deming, författaren till de 14 kvalitetsprinciperna, skrev om kostnaden för misstag redan förra seklet. Denna bok ligger till grund för Quality Assurance som disciplin, men tyvÀrr glömmer modern utveckling detta.

— Kommer ni att ta upp Ă€mnen direkt relaterade till testning och verktyg?

Anastasia: Jag antar att det kommer att finnas förelÀsningar om verktyg. Det finns tillrÀckligt universella verktyg som företag och team kan anvÀnda för att pÄverka produkten.

Alla förelÀsningar kommer övergripande att förenas av ett gemensamt uppdrag: att förmedla till publiken att med hjÀlp av denna metod, detta verktyg, denna process eller typ av testning har vi pÄverkat produktens kvalitet och förbÀttrat kundens liv.

Vi kommer absolut inte att ha förelÀsningar om verktyg för verktygets skull. Alla förelÀsningar som kommer att inkluderas i programmet kommer att förenas av ett gemensamt syfte.

— Vem kommer att vara intresserad av det du pratar om, vilka ser du som gĂ€ster pĂ„ konferensen?

Anastasia: Vi kommer att ha presentationer för utvecklare som bryr sig om sina projekt, produkter och system. Detta kommer Àven vara intressant för testare och, som jag ser det, sÀrskilt för chefer. Med chefer menar jag personer som fattar beslut och kan pÄverka ödet och utvecklingen av produkter, system och team.

Det Ă€r personer som stĂ€ller sig frĂ„gan – hur kan vi höja kvaliteten pĂ„ produkter och system. PĂ„ vĂ„r konferens kommer de att fĂ„ veta om olika aktivitetskomplex och kunna förstĂ„ vad som inte stĂ„r rĂ€tt till, vad som behöver Ă€ndras.

Jag tror att det frÀmsta kriteriet Àr att förstÄ att det Àr nÄgot fel med kvaliteten och att vilja pÄverka det. Antagligen kommer det inte att vara möjligt att nÄ fram till dem som anser att allt Àr okej pÄ första försöket.

– Vad tycker du, har branschen i stort mognat till att prata om inte bara testning, utan om kvalitetkultur?

Anastasia: Jag anser att den har mognat. MĂ„nga företag gĂ„r nu ifrĂ„n den traditionella Waterfall-metoden mot Agile. Det sker en orientering mot kunden, och folk i teamen börjar verkligen tĂ€nka pĂ„ hur man kan skapa kvalitetsprodukter. Även inom storföretag sker en omorientering mot att höja kvaliteten.

Baserat pÄ antalet förfrÄgningar som uppstÄr i samhÀllet, anser jag att det Àr dags. Jag Àr dock inte sÀker pÄ att det kommer att bli en storskalig revolution, men jag skulle vilja att denna förÀndring i medvetande intrÀffar.

– Överens om det! Vi ska föra in kulturen och förĂ€ndra medvetandet.

Konferens om kvalitativ utveckling av IT-produkter QualityConf ska i Moskva den 7 juni. Vet ni vilka steg som utgör en kvalitativ produkt, vi har fallstudier av framgĂ„ngsrik kamp mot buggar i produktion, vi har testat populĂ€ra metoder i vĂ„r egen praktik – vi behöver er erfarenhet. Skicka era ansökningar senast den 1 maj, och den programkommittĂ©n kommer att hjĂ€lpa till att fokusera Ă€mnet för konferensen sĂ„ att den blir en helhet.

Följ med i chatten, dÀr vi diskuterar kvalitetsfrÄgor och konferensen, följ gÀrna vÄr Telegram-kanal, för att hÄlla er uppdaterade om programmets nyheter.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster