QAOps-ის დეტალური განხილვა
By Beka Sazuashvili
7th October 2023
ბოლო პერიოდში აქტუალური ხდება DevOps-ის მიმართულება. ამ სფეროს განვიტარებამ თავისი მხრივ წარმოშვა ტესტირების ახალი მეთოდი რომელსაც QAOps ვუწოდებთ.
ამ სტატიაში გავიცნობთ რა არის QAOps, როგორ მუშაობს და რა მნიშვნელობა აქვს Agile თიმში.
რა არის QAOps?
ცოტა მოკლედ რომ ავხსსათ ეს არის DevOps-ის და Continuous Testing-ის ერთგვარი კოლაბორაცია. ტესტირების პროცესი QAOps-ში ძირითადი მახასიათებელები ძალიან ემთხვევა DevOps-ის და Continuous Testing-ის პრონციპებს. გვთავაზობს ავტომატური ტესტირების ძირითად პრონციპებს: teting early, testing often and testing throughout the software development lifecycle. QAOps-მა დაამკვიდრა ერთგვარი სამუშაო კულტურა, როდესაც software developers და QA ინჟინრები მუშაობენ ერთად, რაც ანიჭებს პროდუქტს მაღალ შეფასებას, აძლიერებს ხარისხსს და ხელს უწყობს მომხმარებლამდე სწრაფად მიტანას.
QAOps მიზნად ისახავს DevOps– ს ტესტირების სასიცოცხლო როლის გაზრდას, პროდუქციის ხარისხისა და საიმედოობის გაზრდის მიზნით. QAOps უზრუნველყოფს უწყვეტ უკუკავშირს აპლიკაციის პრობლემებზე ტესტერებისგან, პროდუქტის განვითარების მთელ ეტაპზე. ეს ამცირებს ბიზნესის რისკს და შემდგომ ეტაპებზე ბაგების აღმოჩენის შესაძლებლობას.
QAOps-ის ძირითადი მანიფესტის მიხედვით: “QAOps-ის მიზანი არაა Dev და Ops გამოყოს განაცალკეოს ერთმანეთისგან, არამედ უბრალოდ ტესტერების და ტესტირების ხილვადობის ამაღლება, როგორც DevOps ხარისხის კულტურის განუყოფელი ნაწილები“.
QAOps, DevOps-ის მსგავსად არის უწყვეტი გაუმჯობესების ცილკლური პროცესი და მოიცავს მრავალ ეტაპს უნაკლოდ განვითარებული საბოლოო პროდუქტის მისაღწევად. განვიხილოთ ეტაპები:
a. Product Management: მოთხოვნების აღების და ჩამოთვლის პროცესი, ასევე მათი მიზანმიმართულობა და პრიოორიტეტიზაცია
b. Software Development: ამ პერიოდის განმავლობაში ხორცწიელდება დიზაინის ანალიზი, დეველოპმენტი და unit ტესტების დაწერა
c. Test Management: ფუნქციოონალის სპეციფიკის ანალიზი, test case-ების მოფიქრება, დახვეწა და შესრულება, რაც პროგრამის ეფექტურობას შეგვიმოწმებს.
d. Continuous Integration: დეველოპერები მერჯავენ მთავარ ცვლილებებს რეპოზიტორიში, რომელიც უკვე ასახავს ცვლილებებს კონკრეტულ გარემოზე. ავტომატიზაციის ინჟინრები უშვებენ ტესტებს რომ დარწმუნდნენ რაიმე ახალი კომიტი ხომ არ არსებობს რომელიც გაუტესტავი დარჩა
e. Continuous Deployment: პროგრამული უზრუნველყოფა შემუშავებულია სპრინტის ფარგლებში იმ დონეზე რომ ყოველი სპრინტის დახურვის შემდეგ გატესტილი და რეალუზებადია ნებისმიერ მომენტში. ეს მიზნად ისახავს პროგრამული უზრუნველყოფის შექმნას ტესტირებას და გაშვებას უფრო მეტი წარმადობით
f. Continuous Monitoring: გვეხმარება ვაწარმოოთ მუდმივი feedback მას შემდეგ რაც პროგრამულ უზრუნველყოფას გავუშვებთ production-ზე, აწვდის ინფორმაციას გამოყენების(UX) და პროგრამის გამართტული მუშაობის შესახებ, დევ თიმი მუშაობს მიღებულ ინფორმაციაზე და მაქსიმალურად მოკლე დროში ცდილობენ პრობლემეის მოგვარებას და იმ საკითხების გამართვაში რომ მომხმარებვლისთვის აღარ იყოს „პრობლემური“.
QAOps-ის მანიფესტი
ვიკიპეედიაში მანიფესტი განმარტებული არის როგორც, ორგანიზაციის მიერ პრონციპებისა და განზრახვების საჯარო დეკლარაცია. QAOps-იც ასევე დაინერგა თავისი მანიფესტებით, მასშში შედის 5 ძირითადი მითითება:
- მანიფესტი 1: Continuous testing over testing at the end
- მანიფესტი 2: Embracing all testing activities over only automated functional testing
- მანიფესტი 3: Testing what gives value over testing everything
- მანიფესტი 4: Testing across the team over testing in siloed testing departments
- მანიფესტი 5: Product coverage over code coverage
QAOps - ახალი ფილოსოფია ეჯაილ თიმისთვის
QAOps ტექნოლოგიის დანერგვამ ხელი შეუწყო ძველი და ტრადიციული დეველოპმენტის განვითარებარებას, სადაც QA-ს ჩართულობა იწყება კოდის დასრულების შემდეგ. QAOps ყურადღებას ამახვილებს პროგრამის ტესტირებაზე, პროგრამული პროდტის შემუშავების დაწყებიდან მის განვითარება / გაშვებამდე. ეს პროცესში ჩვენში ცნობილია Continuous testing-ის სახელით. Continuous testing-მა ერთგვარი რევოილუცია განიცადა დეველოპმენტში დღევანდელ ბაზარზე, რადგან ერთის მხრივ ხელს უწყობს დროულ უკუკავშირს დეველოპერებსა და მეორე მხრივ მომხმარებლებს შორის, რაც ამცირებს ნებვისმიერი ხარვეზის გამოსწორების ღირებულებას და თავის მხრივ პროესყქტს უფრო ღირებულს ხდის. როგორც ვიცით ტრადიციული SDLC შეიქმნა ისე რომ ტესტირება განხორციელდეს მხოლოდ დეველოპმენტის დასრულების შემდეგ,შესაბამისად ხარვეზების გასწორება ხდება უშუალოდ ბოლო სტადიაში, რაც აჭიანურებდა გაშვების დროის გასაწევას ზოგჯზერ განუსაზღვრელი თარიღითაც. ასეთ დროს ყოველი ახალი ბაგის აღმოჩენა უფრო რთული იყო და რა თქმა უნდა მისი გასწორებაც. QAOps-მა მნიშვნელოვანი როლი შეასრულა პროდუქტის განვითარებასა და ჩაბარების დაჩქარებაში. QAOps ტექნოლოგიამ ასევე ხელი შეუწყო დეველოპერებს, ტესტერებსა და ოპერაციულ გუნდს შორის გარკვეული განსხვავებების გადალახვაში, რადგან მაინც ყველა გუნდის განუყოფელი ნაწილია და სამივე სექტორი პროდუქტის განვითარებაში განუყოფელი როლი აქვთ. ტრადიციული მიდგომებისგან განსხვავებით, აქ პროდუქტს ყველა ფლობს და თანაბრად ნაწილდება პასუხისმგებლობები როგორც მის გაუმართავ ასევე გამართულ მუშაობაზე და არა მხოლოდ დეველოპერებზე. QAOps ასევე ეხმარება კომუნიკაციის სწორ წარმართვაში, იმის გათვალისწინებით რომ დეველოპერები ტესტერები და საოპერაციო თიმი ერთად მუშაობენ და უფრო მარტივად ხდიან user-friendly პროდუქტს.
როგორ მუშაობს QAOps
QAOps-მა უზწრონველყო ის, რომ continuous testing და DevOps ერთმანეთთან მაქსიმალურად უმტკივნეულოდ შერწყმულიყო ის, რომ არცერთი ფრეიმვორკი არ დაზარალებულიყო და ამით იმაზე მეტი მნიშვნელობა მიენიჭებინა ტესტირებისთვბის ვიდრე ოდესმე ქონია. QAOps-მა შეცვალა ტესტერის პერსპექტივა და როლი agile software ინდუსტრიაში. დღეს უკვე ტესტერები გახდნენ წამყვანი რგოლები ნებისმიერი პროგრამული უზრუნველყოფის შემუშავებაში. ისინი მნიშვნელოვან როლს ასრულებენ განვითარების მთელი პროცესის განმავლობაში. QAOps-ის პრონციპი ასევე მოითხოვს რომ ორგანიზაციებმა არ გამოიყენონ მხოლოდ ავტომატიზაციის ტესტები, არამდეგ მიიღონ ყველა სახის ტესტირება კონკრეტული პროდუქტუს შემუშავების პროცესში.
ტესტირების ტიპები უნდა შეიცავდეს ტესტირების ტიპების კომბინაციას:
- Exploratory testing: ეს ტესტირება ეფუძნება ტესტერის წინა გამოცდილებას, რომელიც მუშაობდა მსგავსი ტიპის პროექტზე, ეს ხელს უწუობს აპლიკაციაში ისეთი ხარვეზების დაფიქსირებას რომელიც შეიძლება გამორჩენილი იყოს სცენარის წერისა და ტესტირების ფაზაში
- Ad-hoc testing: ეს არის არაფორმალური ტესტირება და არ ემყარება ტესტ ქეისებით ტესტირებას. ამ ტესტირების მიზანია პროექტის მიმდინარე ბილდის „განადგურება“/გაფუჭება. Ad-hoc ტესტირების დამსახურებაა სწორედ ის, რომ მრავალი შეცდომა, რომელსაც როგორც წესი ვერ ვხედავთ ფორმალური ტესტირებისას, ad-hoc-ის დროს თითქოს ზედა პლანზე ამოტივდივდება. ძირითადად ამო დროს შეიძლება დაფიქრისბული იქნას UX ის პრობლემები.
- Manual testing: როგორც ყველამ ვიცით, ფუნქცია არ შეიძლევა ავტომატიზდეს მანამ სანამ არ მოხდება ხელით ტესტირება და იმ ფუნქციონალის დადგენა, თუ რომელი არის სტაბილური ფუნქცია ავტომატიზაციისთვის. მაშინაც კი თუკი ორგანიზაცია/დამსაქმებელი შეეცდება, რომ რაც შეიძლება ბევრი ავტომატიუზაციის ტესტები გაგაკეთებინოთ ყოველთვის იქნება ის ქეისები, რომლის ტესტირებაც ფიზიკურად არ მოხდება, ამრიგად ხელით ტესტირებით წვლილი არის შეუცვლელი და მისი უგულებელყოფა თუნდაც QAOps-ში არ შეიძლება.
- Automation testing: საქმიანობა, რომელიც შრომატევადია, განმეორებადია და ყოველდღიურად უნდა შესრულდეს, დასაავტომატიზირებადია პირველ რიგში. ეს დაგეხმარებათ დაზოგოთ ძვირფასი დრო და გადაიტანოთ ტესტერის ფოკუსირება პროექტში სხვა მნიშვნელოვან სფეროებზე ვიდრე ეს არის ყოველდღიური რუტინული შრომა, რადგან QAOps-ში ტესტირება ხორციელდება ყველა ეტაპზე და პროცესების უმეტესუობა სრულად ავტომატიზირებულია.
შეჯამება
QAOps არის მეთოდოლოგია, რომელიც დაგეხმარებათ პროგრამული უზრუნველყოფის მიწოდების დაჩქარებაში DevOps პროცესში ტესტირებისა და ხარისხის უზრუნველყოფის ინტეგრირებით. მას შეუძლია დაეხმაროს განვითარების ციკლის დროის შემცირებას, დეველოპერებსა და ტესტერებს შორის თანამშრომლობის გაუმჯობესებას და პროგრამული უზრუნველყოფის ხარისხის გაუმჯობესებას. მაკლია რაღაც დასასრულის ნაწილი - ქონქლუჟენი და კდიევ ზემოთ დავწერე რეფერენსის ლინკები ცუდი არ იქნებოდა.