რეგრესიული ტესტირება
- რა არის რეგრესიული ტესტირება?
- რას ვაკეთებთ რეგრესიული ტესტირებისას?
- რეგრესიული ტესტირების ტიპები
- რეგრესიული ტესტირების ტექნიკები
- როგორ უნდა წარვმართოთ რეგრესიული ტესტირება?
- ვინ უნდა წარმართოს რეგრესიული ტესტირება?
რა არის რეგრესიული ტესტირება?
სიტყვა რეგრესიას ლექსიკონები განმარტავენ, როგორც უკუსვლას, პირვანდელ ან უწინდელ მდგომარეობაში დაბრუნებას ან გაუარესებას. შესაბამისად ტესტირების პროცესი, რომლის მიზანიც უკვე გატესტილ პროგრამულ უზრუნველყოფაში ხარვეზების გამოვლენაა რეგრესიული ტესტირება ჰქვია. ასეთი ტესტირებისას აღმოჩენილ ხარვეზებს "რეგრესიებად" მოიხსენიებენ.
მსგავსი ტიპის ხარვეზები შეიძლება გამოწვეული იყოს ხარვეზების აღმოფხვრით (bug fixes), ახალი ფუნქციონალის დამატებით ან პროდუქტის მოთხოვნების ცვლილებით, ანუ ნებისმიერი ცვლილებით, რაც ციფრული პროდუქტის კოდში ცვლილებას შეტანას იწვევს. სწორედ ამიტომ რეგრესიული ტესტირების მიზანია პროდუქტის სრული ან ნაწილობრივი ტესტირებით იმის დადასტურება, რომ ცვლილებებს უარყოფითი გავლენა არ მოუხდენია და არ გამოუწვევია ახალი ხარვეზები არსებულ, წარსულში გამართულ ფუნქციონალში.
რეგრესიული ტესტირება ხანდახან ეშლებათ ხშირ ხელახალ ტესტირებაში (retesting) ან სისტემურ ტესტირებაში, თუმცა ისინი სხვადასხვა მიზნის მქონე განსხვავებული ტესტირების მეთოდებია. რატომ შეიძლება გაიგივდეს რეგრესული და სისტემური ტესტირება? გაიგივების მიზეზი შესაძლოა იყოს პროდუქტის კომპლექსურობის ისეთი დონე, როდესაც ნებისმიერი ცვლილება აჩენს რეგრესიების მაღალ რისკს მთლიან პროდუქტში. შესაბამისად კოდის დონეზე ნებისმიერი ცვლილების შემდეგ ჩნდება აუცილებლობა, სრულად გაიტესტოს პროდუქტი. სრული ტესტირება კი სისტემური ტესტირების დონეზე ხდება. თუმცა მნიშვნელოვანია გვესმოდეს, რომ სისტემური ტესტირება არის ტესტირების დონე, ხოლო რეგრესიული ტესტირება არის ტესტირების მეთოდი. შესაბამისად რეგრესულ ტესტირებას, რომელიც შესაძლოა ტესტირების ნებისმიერ დონეზე წარიმართოს, თავისი კონკრეტული მიზანი გააჩნია: გამოავლინოს ცვლილებით გამოწვეული ცდომილებები, ხარვეზები პროდუქტში.
რას ვაკეთებთ რეგრესიული ტესტირებისას?
დეველოპმენტის პროცესში, ძირითადი საფიქრალი რაც დეველოპერებს, ტესტერებსა თუ დამკვეთებს აქვთ, არის ხარისხი და ახალი ფუნქციონალის გამართულობა. ამ დროს ნაკლები ყურადღება ექცევა უკვე არსებულ ფუნქციონალს, რადგან ის უკვე არაერთხელაა გატესტილი და სტაბილურია. თუმცა ახალი ფუნქციონალის დამატებისას, საწყის ეტაპზე მომხმარებელი უფრო ხშირად ძველ ფუნქციონალს იყენებს, ვიდრე ახალს.
დეველოპერები, რომლების ახალი ფუნქციონალის დეველოპმენტზე მუშაობენ ახდენენ მის ინტეგრაციას უკვე არსებულ სისტემაში და საჭიროებისას აუცილებელი ცვლილებები შეაქვთ მასში სრული თავსებადობისათვის. ამ დროს არსებობს რისკი, რომ არსებული ფუნქციონალი დაზიანდეს.
ცვლილებების მიუხედავად, არსებული ფუნქციონალის გამოყენება მომხმარებლებმა ძველებურად უნდა შეძლონ. ამის მისაღწევად კი რეგრესიული ტესტირების წარმართვა აუცილებელი პირობაა. ტესტ ქეისები რეგრესიული ტესტირების პაკეტისთვის უნდა შეირჩეს უკვე არსებული ქეისებიდან.
რეგრესიული ტესტირების ტიპები
რეგრესიული ტესტირების ორი ტიპი არსებობს - სრული და ნაწილობრივი.
სრული რეგრესიული ტესტირება
სრული რეგრესიული ტესტირებაა, როდესაც რეგრესული ტესტირების პაკეტი სრულად ეშვება. ეს შეიძლება რამდენიმე სცენარში მოხდეს:
- რეგრესული ტესტირების პაკეტი სრულად ავტომატიზებულია და მისი შესრულება ნებისმიერი ცვლილებისას არის შესაძლებელი.
- რეგრესიული ტესტირება სრულდება რამდენიმე ცვლილების შემდეგ, როდესაც არსებობს რეგრესიის მაღალი ალბათობა.
- როდესაც განხორციელებული ცვლილებები არ მოითხოვენ ტესტ ქეისების განახლებას.
ნაწილობრივი რეგრესიული ტესტირება
ნაწილობრივი ტესტირება რეგრესიული ტესტირების პაკეტის არასრულ შესრულებას გულისხმობს. ეს შეიძლება რამდენიმე შემთხვევაში მოხდეს:
- როდესაც ცვლილებები არ მოითხოვს სრულ რეგრესულ ტესტირებას.
- როდესაც პროექტის დანერგვა უნდა მოხდეს სწრაფად გარკვეული ხარვეზების გამოსწორების შემდეგ.
რეგრესიული ტესტირების ტექნიკები
პროექტის ტიპისა და საჭიროების შესაბამისად შესაძლებელია სხვადასხვა ტიპის რეგრესიული ტესტირების ტექნიკის გამოყენება. ეს ტექნიკებია:
რეგრესიული ტესტირების პაკეტის სრული შესრულება
რეგრესიული ტესტირების ეს ტექნიკა გულისხმობს რეგრესიული ტესტირების პაკეტში შემავალი ყველა ტესტ ქეისის შესრულებას. თავისთავად ეს პროცესი უზარმაზარ დროსა და რესურსს მოითხოვს.
შერჩევითი რეგრესიული ტესტირება
შერჩევითი რეგრესიული ტესტირების ტექნიკა მხოლოდ ტესტ ქეისების ნაწილის შესრულებას გულისხმობს. ამ შემთხვევაში მხოლოდ ის ქეისები სრულდება, რომლებიც ცვლილებების ქვეშაა მოქცეული.
რეგრესიული ტესტირება პრიორიტეტის მიხედვით
რეგრესიული ტესტ ქეისების პრიორიტეტიზაცია მნიშვნელოვანი ფაქტორია რეგრესიული ტესტირების შესრულებისას. ჩვენ ვახდენთ ქეისების პრიორიტეტიზაციას კრიტიკულობიდან და ბიზნესზე გავლენიდან გამომდინარე. ასეთ შემთხვევაში შესაძლებელია რეგრესიული ტესტირების პაკეტის საგრძნობი შემცირება.
ჰიბრიდული ტესტირება
ჰიბრიდული რეგრესიული ტესტირება გულისხმობს როგორც შერჩევით ტესტირებას, ისე ტესტირებას პრიორიტეტის მიხედვით.
როგორ უნდა წარვმართოთ რეგრესიული ტესტირება?
რეგრესიული ტესტირება შესაძლოა წარიმართოს მანუალურად, თუ მასში შემავალი ტესტ ქეისების რაოდენობა მცირეა. თუმცა თუ ამ ქეისების მოცულობა ძალიან დიდია, რეგრესიული ტესტირების ავტომატიზაცია საუკეთესო გამოსავალია. მაგრამ ამავე დროს გასათვალისწინებელია, რომ დაავტომატიზებული უნდა იყოს სტაბილური ფუნქციონალის ტესტ ქეისები.
ვინ უნდა წარმართოს რეგრესიული ტესტირება?
რეგრესიული ტესტირების წარმატებული შესრულებისათვის მნიშვნელოვანია ტესტერების სწორად შერჩევა. ამ ამოცანის მინდომა შესაძლებელია იმ ტესტერებისთვის, რომლებსაც:
- შესაძლოა არ მიუღიათ პროდუქტის ტესტირებაში მონაწილეობა, თუმცა შეუძლიათ ტესტირების შესრულება დოკუმენტირებული ტესტ ქეისების მიხედვით. განახლებადი ტესტ ქეისების ახალ ტესტერებსაც აძლევს შესაძლებლობას, რომ ამ პროცესში ჩაერთონ.
- არ მიუღიათ მონაწილეობა ფუნქციონალურ ტესტირებაში, თუმცა პროდუქტის შესახებ აქვთ რეგრესიული ტესტირების წარმართვისათვის საჭირო ცოდნა.
- ტესტერებს, რომლებსაც მიღებული აქვთ მონაწილეობა იმ ფუნქციონალის ტესტირებაში, რომლის რეგრესიული ტესტირებაც იგეგმება.