Professional Documents
Culture Documents
Qa 4
Qa 4
4 გაკვეთილი
ტესტირების პროცესის სასიცოცხლო ციკლი
(Software Testing Life Cycle)
Exit criteria - ანუ რა მდგომარეობას უნდა მივაღწიოთ იმისთვის, რომ დავასრულოთ ტესტირება. ( ეჯაილ
დეველოპმენტში ეწოდება definition of done ).
Exit criteria:
★ დაგეგმილი ტესტ ქეისების განხორციელება.
★ წინასწარ განსაზღვრულ დონემდე დაფარული requirements, user stories, acceptance criteria, risks,
code.
★ გადაუჭრელი დეფექტების რაოდენობა, უნდა შეესაბამებოდეს განსაზღვრულ რაოდენობას.
★ სავარაუდოდ დარჩენილი დეფექტების რაოდენობა უნდა იყოს დაბალი.
★ ხარისხის მაჩვენებელი დონეები (reliability, usability, security, )უნდა იყოს დამაკმაყოფილებელი.
★ ბიუჯეტი ან ბაზარზე გასვლის ვადა ამოიწურა.
Test monitoring and control
Test monitoring and control, იწყება test planning -ის შემდეგ და გრძელდება ტესტირების პროცესის
ბოლომდე, სანამ არ დასრულდება პროდუქტზე მუშაობა.
Control - იღებს ინფორმაციას მიმდინარე სიტუაციის შესახებ monitoring -სგან. მაგალითად, რა გაიტსტა,
რა მუშაობას, რა არ მუშაობს, კიდევ რა სამუშაოები არის დარჩენილი, როდის მივაღწევთ exit criteria -ს
და ამ ინფორმაციის საფუძველზე იღებს გადაწყვეტილებებს. მაგალითად, გუნდში ამატებს ახალ წევრებს,
ან ამცირებს გასატესტ ფუნქციონალს, ამცირებს სატესტო დივაისებს / ბრაუზერებს, ზრდის
ტესტირებისთვის გამოყოფილ დროს და ასე შემდეგ.
კონტროლს უზრუნველყოფს ტესტირების გუნდის ხელმძღვანელი ან ტესტ მენეჯერი, რომელიც
აზუსტებს მიმდინარე სიტუაციას ტესტერთან და იღებს შემსაბამის გადაწყვეტილებებს.
Test analysis
Test analysis - ეს არის ამოცანის და დიზაინის გაცნობა, გააზრება, კითხვების დასმა და ანალიზი.
ეს ეტაპი პასუხობს კითხვას ‘რა გავტესტოთ ?’ (what to test? )
ეს ეტაპი პასუხობს კითხვას ‘ყველაფერი გვაქვს იმისთვის, რომ დავიწყოთ ტესტირება ?’ (do we now have
everything in place to run the tests? )
Test execution - ეს არის უშუალოდ ტესტირების პროცესი, როდესაც ტესტ ქეისების მიხედვით
ვტესტავთ და ვანიჭებთ მას passed / failed. როდესაც ტესტ ქეისის სტატუსი არის failed, რა თქმა უნდა
ვქმნით შესაბამის ბაგ რეპორტს სისტემაში.
Test completion - ეს არის ეტაპი როდესაც ვემზადებით რელიზისთვის და არის code freeze -ს ეტაპი,
ანუ როდესაც კოდში არ შეგვაქვს ცვლილებები და არ ვასწორებთ ხარვეზებს. ეჯაილ პროექტებში ეს არის
იტერაციების დასრულების ეტაპი.
★ Requirements
★ Analysis
★ Architecture, Design
★ Development, Coding
★ Testing
★ Deployment
★ Maintenance
Software Development Lifecycle Models
Requirements - ეს არის პირველი ეტაპი და ბიზნეს ანალიტიკოსი
აგროვებს აღმოცენებული იდეის შესახებ მოთხოვნებს
კლიენტისგან/დამკვეთისგან.
დამკვეთი შეიძლება იყოს კომანიის შიდა განყოფილების წევრი ან გარე პირი
(სხვა კომპანიიდან).
პროგრამული უზრუნველყოფის შინაარსიდან გამომდინარე დიზაინის შექმნის ეტაპი შესაძლოა იყოს როგორც
ძალიან
მნიშვნელოვანი(როდესაც პროდუქტი განკუთვნილია საჯარო მოხმარებისთვის), ასევე
მეორეხარისხოვანი(პროდუქტი არის შიდა მოხმარებისთვის, მაგ, ბანკში ოპერატორებისთვის).
შეუსაბამო UI :
https://torontocupcake.com/resources.html
შეუსაბამო ფერები:
https://www.pennyjuice.com/childcare-juice-concentrates
Software Development Lifecycle Models
იტერაციული - განმეორებითი
ინკრემენტული - თანდათანობითი,
ზრდადობითი
Software Development Lifecycle Models
დადებითი მხარეები:
● ადვილად ხდება პროდუქტის შექმნის კონტროლი (ანუ დანკვეთმა ყოველთვის იცის
რითია დაკავებული გუნდი, ეტევა თუ არა ვადებსა და ბიუჯეტში),
● პროექტის ბიუჯეტი განსაზღვრულია წინასწარ ხელშეკრულების გაფორმებისთანავე,,
● პროდუქტის შემნა ხდება უწყვეტად თავიდან ბოლომდე.
უარყოფითი მხარეები:
● ცვლილების სურვლის შემთხვევაში არ შეგვიძლია უკან დაბრუნება (შესაძლებელია
მხოლოდ ერთი ფაზით წინ დაბრუნება).
● დამკვეთი საბოლოო პროდუქტს ნახულობს მხოლოდ ბოლოში და უკუკავშირს
გვახნობებს ამ ეტაპზე,
● ტესტერები ჩართული არიან მხოლოდ ბოლოსკენ ტესტირების ეტაპზე და არ ხდება
მოთხოვნების ტესტირება,
● დეველოპერები ქმნიან ბევრ დოკუმენტაციას და ფერხდება პროცესი.
Software Development Lifecycle Models
დადებითი მხარეები:
● ტესტირება იწყება ადრეულ ეტაპებიდანვე და ტესტირება ჩართულია
დეველოპმენტის ყველა ეტაპზე.
● შეცდომები თავად არქიტექტურაში მინიმუმამდეა დაყვანილი.
უარყოფითი მხარეები:
● თუ არქიტექტურის შემუშავებისას იქნა დაშვებული შეცდომა, უკან დაბრუნება და
გამოსწორება დაჯდება ძალიან ძვირი.
Agile
სკრამში გვაქვს :
Product backlog ეს არის დავალებების სია მთელი პროდუქტის შექმნისთვის და
Sprint backlog - ყოველი სპრინტისთვის ცალ-ცალკე.
ბექლოგი ძირითადად შედგება იუზერ სთორებისგან, ტასკებისგან.
ბექლოგზე პასუხისმგებელი არის პროდაქტ ოუნერი და ისვე ახორციელებს დავალებების პრიორიტიზაციასაც.
ყოველ დავალებას აქვს თავისი story point (სირთულის შეფასება).
Scrum
Scrum
ამ პროცესის ყოველ მონაწილეს აქვს თავისი როლები (ყველა როლი
თანასწორია) :
● Product owner - პროდუქტის მფლობელი . ადამიანი,
რომელიც კარგად იცნობს კლიენტის მხარეს, იცნობს ბაზარს,
კლიენტთან აქვს ხშირი ურთიერთობა. იცის ბიზნესს რა სურს
და ეს დაკვეთა მოაქვს გუნდთან. პროდუქტის მფლობელი
მომხმარებლის სურვილებს აქცევს იუზერ სთორიებად
(მომხმარებლის ისტორიებად). იუზერ სთორის აქვს შემდეგი
ფორმულირება: “ მე როგორც იუზერს მინდა ეს …, რომ მივიღო
ეს …
● development team - ვინც მუშაობს პროექტზე
(დეველოპერები, დიზაინერები, ანალლიტიკოსი, ტესტერი … ).
მინიმუმ 3 და მაქსიმუმ 9 წევრისგან.
● Scrum-master - ვინც ზრუნავს, რომ სკრამის პრინციპები
დაცული იყოს. (ეს როლი შეიძლება მოირგოს პროექტ
მენეჯერმა, ან გუნდის რომელიმე წევრმა ან QA-მ ), ეხმარება
გუნდს დაბრკოლების გადალახვაში.
Scrum
სკრამში არსებობს სხვადასხვა სახის შეხვედრები/ღონისძიებები:
● Sprint Planning - ტარდება სპრინტის დასაწყისში და განისაზღვრება სამუშაოს მოცულობა და სამუშაოს
შესრულების ხერხები. ამ შეხვედრას ესწრება მთელი გუნდი.
ამ შეხვედრაზე ისმება 3 კითხვა: რატომ, რა, როგორ? რატომ და რა-ზე პასუხს სცემს პროდაქტ ოუნერი, ხოლო
როგორ გაკეთდება, ამას ამბობს დეველოპერი.
დიდი ბექლოგის მიხედვით იქმნება სპრინტის ბექლოგი და ეს ბექლოგი არის უკვე დეველოპმენთ გუნდის.
● Stand-up (daily scrum)- მოკლე შეხვედრა, რომელიც ტარდება ყოველ დღე და მონაწილეობას იღებს გუნდის ყველა
წევრი.
გუნდის ყოველი წევრი პასუხობს 3 კითხვაზე: რა გავაკეთე? რას გავაკეთებ? რამე ხომ არ მაფერხებს?
გრძელდება დაახლოებით 15 წუთი.
● Sprint review - დამკვეთს ვუკეთებთ პრეზენტაციას და წარვუდგენთ ჩვენს მიერ მიღებულ ინკრემენტს, რომელიც
მივიღეთ სპრონტის ფარგლებში.
● Sprint retrospective - ტარდება სპრინტის ბოლოს. მისი არსი მდგომარეობს იმაში, რომ მოხდეს იდენტიფიცირება
რა წარიმართა სწორად და რა არის გასაუმჯობესებელი.
რესტროსპეაატივა გვეხმარება განვსაზღვროთ, რა მუშაობს (რომ გუნდი კონცენტრირდეს ამ ასპექტებზე), და რა არ
მუშაობს (დრო დაუთმონ , რომ გაუმჯობესების გზები მოიძებნოს).
Scrum
Scrum Framework -ის შემთხვევაში პროექტი თანმიმდევრულად გადის ქვემოთ ჩამოთვლილ ეტაპეს:
• Product owner -ი ეტაპობრივად ამატებს ახალ მოთხოვნებს product backlog -ში და ახდენს მათ
პრიორიტეტიზაიას.
• Sprint planning -ზე, პრიორიტეტული მოთხოვნები product backlog -დან გადმოდის sprint backlog -
ში.
• Development team მუშაობს sprint backlog -ში არსებულ მოთხოვნებზე, მინიმუმ 1 და მაქსიმუმ 4
კვირის მანძილზე.
• Sprint review -ზე, ხდება მიღებული ინკრემენტის წარდგენა დამკვეთთან.
ყოველი სპრინტის დასრულების შემდეგ, ახალ ფუნქციონალს და გაუმჯობესებულ შედეგს იღებს როგორც
დამკვეთი, ასევე საბოლოო მომხმარებელ
Scrum
სკრამის უპირატესობებია:
● დამკვეთს შშეუძლია დააკვირდეს შედეგს პროდუქტის შექმნის პროცესში
● გვაქვს ყოველდღიური კონტროლი პროდუქტის შექმნის პროცესზე
● პროდუქტის შექმნის პროცესში შეგვიძლია ცვლილებების შეტანა
● დალაგებული ურთიერთობა ყველა გუნდის წევრთან
● დოკუმენტაციის მინიმალური რაოდენობა
● ტესტირების პროცესი იწყება ადრე და გრძელდება პროექტის დასრულებამდე
● პროდუქტის ხარისხზე პასუხისმგებელი არის არა მხოლოდ ტესტერი, არამედ მთელი გუნდი
1. როდესაც საქმე გვაქვს დიდ და ინოვაციურ პროექტთან, რომლის შემთხვევაში დამვკეთი წინასწარ ვერ
ახერხებს მოთხოვნების სრულად ჩამოყალიბებას, რადგან ის თავის მხრივ დამოკიდებულია საბოლოო
მომხმარაებლის მოთხოვნებზე და კონკურებტებზე. ანუ, დამკვეთი აკვირდება და აანალიზებს საბოლოო
მომხმარებლის უკუკავშირს (feedback) და ითვალისწინებს მათ რჩევებს, შენიშვნებს და სურვილებს.
2. როდესაც დამკვეთს უნდა, რომ პროდუქტი გაეშვას რაც შეიძლება მალე, თუნდაც მინიმალური
ფუნქციონალით (Minimum Viable Product - MVP) და შემდეგ ყოველ 1 - 4 კვირაში მოხდეს მისი განვითარება
და ახალი ფუნქციონალის დამატება.
P.S კონკურენტულ გარემოში მნიშვნელოვანია, რომ პროდუქტი გაეშვას რაც შეიძლება მალე, რადგან ფრაზა“
„პირველები ვართ ბაზარზე“ ძალიან ღირებულია.