ბოლო წლებში ქართულმა კომპანიებმა აქტიურად დაიწყეს ტესტირების ავტომატიზაციის დანერგვა. თუმცა, ეს პროცესი ხშირად მარტივად მიიჩნევა, რაც არასწორი მოლოდინების, საშინელი ეფექტიანობის, გაზრდილი ხარჯების და დაკარგული დროის მიზეზი ხდება. მოდი ცოტა ზედაპირულად განვიხილავთ, როგორ დავნერგოთ ავტომატიზაცია სწორი მიდგომით და ნაბიჯ-ნაბიჯ.
1. მიზნის განსაზღვრა: რა გინდათ ავტომატიზაციისგან, რას ელოდებით?
პირველ ეტაპზე, მნიშვნელოვანია დაისახოთ მიზნები და განსაზღვროთ, რატომ გჭირდებათ ავტომატიზაცია, ვინაიდან მხოლოდ ის არ კმარა რომ სხვას თუ აქვს ავტომატიზაცია შენც გინდა. მაგალითად განვსაზღროთ რამდენიმე პუნქტი:
- დროის ეკონომია: ავტომატიზაცია ამცირებს განმეორებითი ტესტირებში დახარჯულ უაზროდ დიდ დროს.
- ხარისხის გაუმჯობესება: გავაუმჯობესოთ ტესტების ხარისხით და სისწრაფით თავად პროდუქტის ხარისხი.
- განმეორებითი პროცესების ავტომატიზაცია: ის, სადაც ადამიანები ხშირად ცდებიან, ავტომატიზაციით მარტივად სრულდება რადგან კოდი არ იღლება და არ უშვებს ისეთ შეცდომებს რაც შეიძლება დაუშვას მანუალ ტესტერმა რუტინული საქმის კეთებით და გადაღლით.
- ბიზნესის მოთხოვნების დაკმაყოფილება: ავტომატიზაცია ხელს უწყობს ახალი ფუქნციონალების უფრო სწრაფ რელიზს.
2. რესურსების შეფასება და მართვა (როგორც ინდივიდუალური ისე პერსონალური)
- რა როლებია საჭირო:
- ტესტირების ავტომატიზაციის ინჟინერი: სკრიპტების შექმნის და ფრეიმვორქების არქიტექტი/ინჟინერი.
- მანუალური ტესტერი – QA: ტესტის ქეისების დიზაინზე და რეფერენსებზე პასუხისმგებელი.
- DevOps ინჟინერი ან QAOPS: CI/CD პროცესების ინტეგრაციის სპეციალისტი.
- პროდუქტის მფლობელი (PO): ბიზნეს მოთხოვნების მართვის და პრიორიტეტების დასახვის სპეციალისტი.
- დეველოპერების გუნდი (front + back): დეველოპერების გუნდი რომლებიც “დაასაპორტებენ” და გაითვალისწინებენ ავტომატიზაციის მოთხოვნებს
გუნდის ყველა ეს როლი უნდა იყოს ჩართული ავტომატიზაციაში და რა თქმა წევრებს უნდა ჰქონდეთ ავტომატიზაციის საფუძვლების ცოდნა, რაც უზრუნველყოფს უკეთეს შედეგებს. წინააღმდეგ შემთხვევაში მხოლოდ ავტომატიზაციის ინჟინრის აყვანა გუნდში ვერანაირ შედეგს მითუმეტეს გრძალვადიან შედეგს ვერ მოიტანს.
3. სწორი ხელსაწყოების და ჩარჩოს შერჩევა
ავტომატიზაციის ჩარჩო/ფრეიმვორქების უნდა შეირჩეს პროექტის სპეციფიკის და გუნდის გამოცდილების მიხედვით. სხვადასხვა ხელსაწყოები მოიცავს, მაგალითად:
- ვებ ტესტირება: Selenium, Cypress და სხვა.
- მობილური აპლიკაციების ტესტირება: Appium
- API ტესტირება: Postman, RestAssured.
- CI/CD ინტეგრაცია: Jenkins, GitHub Actions, Bitrise.
- პროგრამული ენა: java
ჩარჩო/ფრეიმვორქი უნდა იყოს:
- გადაიზრდადი: ადვილად დამატებადი ახალი ტესტების მხარდაჭერით.
- მარტივად გასაგები: დოკუმენტირებული კოდით და სტრუქტურით.
- მოქნილი: სხვადასხვა გარემოში გამოყენების შესაძლებლობით.
რა თქმა უნდა ამ ყველაფერსაც ჭირდება შესაბამისი ანალიზი რომ სწორედ მოხდეს ყველა კომპონენტის შერჩევა.
4. ავტომატიზაციის პროცესების ინტეგრაცია აჯაილ სპრინტებში
ავტომატიზაციის პროცესები უნდა იყოს აჯაილ პროცესების ნაწილიც. მაგალითად:
- თითოეულ სპრინტში უნდა განისაზღვროს პრიორიტეტული ტესტები.
- ასევე სპრინტში უნდა განისაზღვროს ტესტ ქეისების დაავტომატიზირებისთვის შესაბამისი დრო
- და კიდევ ბევრი წვრილმანიც და მსხვილმანიც 🙂
ეს მიდგომა უზრუნველყოფს გუნდის სისწრაფეს და ტესტირების სტაბილურობას (თავიდან გუნდისთვის შეიძლება დისკომფორტსაც მოიტანს) მაგრამ თუ ყველაფერი სწორედ გაკეთდება მაშინ გუნდის მიერ გაწეული შრომა ათმაგად დაფასდება და ავტომატიზაციის რგოლი დადებს იმ შედეგებს რასაც მოელიან მისგან.
5. ავტომატიზაციის მოვლა და ოპტიმიზაცია
ავტომატიზაციის სისტემა საჭიროებს მუდმივ მოვლას და რა თქმა უნდა ესეც უნდა იყოს გათვალისწინებული, სულ რომ ზედაპირულად გადავხედოთ:
- Deprecated ტესტების ამოღება: მოძველებული ტესტების გაუქმება.
- ტექნოლოგიების განახლება: ახალი ხელსაწყოების ინტეგრაცია.
- ტესტების რეგულარული განახლება: ახალი ფუნქციონალის შესაბამისად.
ასე რომ უნდა გვახსოვდეს რომ ავტომატიზაციის ინჟინრები მხოლოდ “კლიკების დაავტომატიზირებით” არ არიან დაკავებულები.
6. გრძელვადიანი სტრატეგია
ავტომატიზაციის გუნდს უნდა ქონდეს სტრატეგია თუ როგორ იმუშავებს გრძელვადიან პერიოდში, არის რამდენიმე კომპონენტი რაც ყველა შემთხვევაშია გასათვალისწინებელი, მაგალითად:
- ინოვაციური: ახალი მიდგომების ინტეგრაციით და მუდმივი განახლებებით
- მდგრადობა: მინიმალური დანახარჯებით ორიენტირებული მაღალ შედეგებზე. (რა თქმა უნდა მარტო ფინანსები არ იგულისხმება)
- ადაპტირებადი: გარემოს ცვლილებებთან ადვილად მორგებადი.
ეს სტრატეგია უზრუნველყოფს ბიზნესის მიზნების მიღწევას და ტესტირების ეფექტიანობას.