რა არის ტესტირება?

ციფრული პროდუქტი და მისი გავლენა ჩვენს ცხოვრებაზე

ციფრული პროდუქტები ჩვენი ცხოვრების განუყოფელ ნაწილად იქცა. მათ არაერთი მიზნისთვის ვიყენებთ. ამ მიზნებს შორის შესაძლოა იყოს საკუთარი ფინანსების მართვა, კომუნიკაცია, 'ჭკვიანი სახლის' კომპონენტების გამოყენება, გართობა თუ ბიზნესის მართვა. რა მიზნითაც არ უნდა ვიყენებდეთ ციფრულ პროდუქტებს, ნებისმიერ ჩვენგანს გამოუცდია მათი გაუმართაობა. რიგ შემთხვევებში ხარვეზები უბრალოდ უსიამოვნოა, რიგ შემთხვევებში კი ბევრად სერიოზული პრობლემის გამომწვევი. მაგალითად, შესაძლოა ვერ უყურო საყვარელი გუნდის თამაშს, ერთზე მეტი მცდელობა დაგჭირდეს პიცის შესაკვეთად, ონლაინ ვაჭრობისას ზედმეტი თანხა ჩამოგეჭრას, გლუკომეტრმა არასწორად გაჩვენოს სისხლში შაქრის დონე და სხვა. თუმცა აშკარაა, ხარვეზმა შეიძლება გამოიწვიოს, როგორც უბრალო უსიამოვნება, ისე სერიოზული პრობლემა, რომლის გამოც ჩვენს ჯანმრთელობას, ფინანსურ სტაბილურობასა თუ სიცოცხლეს სერიოზული საფრთხე შეექმნას. ამ ხარვეზების აცილება შესაძლებელია, თუმცა მათი შექმნის პროცესში აუცილებელია ხარისხის მართვის აქტივობების დაგეგმვა და განხორციელება, რადგან სწორედ მისი აქტივობები ხდის შესაძლებელს შეიქმნას გამართული, ხარისხიანი ციფრული პროდუქტი, რომელშიც ხარვეზებისა და გაუმართაობების რისკები შემცირებულია და მინიმუმადეა დაყვანილი. ხშირად ამ აქტივობებს, როგორც ტესტირებას ისე მოიხსენიებენ. თუმცა ამ სიტყვის მიღმა ბევრი შესაძლოა სხვადასხვა რამეს გულისხმობდეს. სწორედ ამიტომ ვისაუბრებთ ტესტირებასთან დაკავშირებით გავრცელებელ შეხედულებებზე, სტერეოტიპებსა და მითებზე, ტესტირების მიზნებზე და კონკრეტულად გავცემთ კითხვას პასუხს, თუ რა არის ტესტირება.

გავრცელებული სტერეოტიპები და მითები ტესტირებაზე

ტესტირების შესახებ არაერთი სტერეოტიპი და მითია გავრცელებული. ამ სტატიაში ორი მათგანი მიმოვიხილოთ და ვნახოთ, რამდენად განსხვავდება ის რეალობისგან.

ერთერთი ფართოდ გავრცელებული შეხედულებაა, რომ ტესტირება მხოლოდ ტესტების შერულებაა - აპლიკაციის გამოყენება და შედეგების შემოწმება. თუმცა პროგრამული უზრუნველყოფის ტესტირების პორცესი არაერთი აქტივობისგან შედგება, რომელთა შორისაც უშუალოდ აპლიკაციის შემოწმება მხოლოდ ერთერთი აქტივობაა. ტესტირების გამართული პროცესი მოიცავს ისეთ აქტივობებს, როგორიცაა ტესტირების დაგეგმვა, ანალიზი, დიზაინი, ტესტების იმპლემენტაცია, პროცესისა და შედეგების ანგარიშგება და გასატესტი ობიექტის ხარისხის შეფასება. გარდა ამისა შესაძლებელია დინამიური და სტატიკური ტესტირების წარმართვა. დინამიური ტესტირება უშუალოდ შესამოწმებელი პროგამული უზრუნველყოფის კომპონენტის ან სრული სისტემის გამოყენებითაა შესაძლებელი. სტატიკური ტესტირებისას ეს არ მოითხოვება, ამ დროს მიმდინარეობს ისეთი სამუშაო პროდუქტების შემოწმება, როგორიცაა მოთხოვნების დოკუმენტი, ბიზნეს ანალიზის დოკუმენტი თუ პროგრამული კოდი.

სხვა არასწორი შეხედულება ტესტირების შესახებ ისაა, რომ ის სრულად არის ფოკუსირებული მოთხოვნებისა თუ სხვა მახასიათებლების შემოწმებაზე. თუმცა მიუხედავად იმისა, რომ ტესტირება ამ აქტივობასაც მოიცავს, ის ასევე მოიცავს სისტემის ვალიდაციას მომხმარებლისა და სხვა დაინტერესებული მხარეების მოთხოვნებთან მიმართებით.

ტესტირების აქტივობები გადანაწილებულია პროგრამული უზრუნველყოფის სასიცოცხლო ციკლის სხვადასხვა ეტაპზე და ეს აქტივობები შესაძლოა სხვადასხვანაირადაც წარიმართოს.

ტესტირების მიზნები

ტესტირებას შესაძლოა სვადასხვა მიზანი ქონდეს, თუმცა ნებისმიერი პროექტისათვის ეს მიზნები მოიცავენ შემდეგს:

თუმცა ტესტირების მიზანი შესაძლოა განსხვავებული იყოს კონტექსტიდან, ტესტირების დონიდან ან SDLC მოდელიდან გამომდინარე. მაგალითად ეს სხვაობა შესაძლოა იყოს:

ტესტირება და დებაგი

ტესტირება და დებაგი განსხვავებული ცნებებია და ორივე მათგანს მნიშვნელოვანი ადგილი უკავია პროგრამული უზრუნველყოფის სასიცოცხლო ციკლში.

ტესტირება გვაჩვენებს შეცდომებს, ხარვეზებს და ჩავარდნებს. ტესტების შესრულებას შეუძლია გვაჩვენოს ჩავარდნები, რომლებიც გამოწვეულია პროგრამულ უზრუნველყოფაში არსებული ხარვეზებით. თუმცა, ტესტირება არ მოიცავს ხარვეზების გამოსწორებას. ხარვეზების მიწოდება ხდება დეველოპერებთან, რომლებმაც უნდა აღმოფხვრან ხარვეზები. ის რასაც ტესტირება მოიცავს არის დარწმუნება, იმაში რომ ცვლილებები და შესწორებები შემოწმებულია შესაძლო გავლენებზე სისტემის ან კომპონენტის ჭრილში.

დებაგი არის დეველოპმენტის პროცესის შემადგენელი აქტივობა, რომლის დროსაც ხდება ხარვეზის გამომწვევი მიზეზის პოვნა, ანალიზი და გასწორება. დებაგზე პასუხისმგებლები არიან დეველოპერები და საჭიროებს დაკავშირებული კომპონენტების ტესტირებასა და კომპონენტის ინტეგრაციის ტესტირებას. ტესტერი პასუხიმგებელია საწყის ტესტირებაზე და და საბოლოო, დამადასტურებელ ტესტირებაზე. დამადასტურებელი ტესტირება ამოწმებს აღმოფხვრა თუ არა შესწორებამ ხარვეზი სწორად და სისტემა მუშაობს ისე, როგორც მოსალოდნელია.

ISO სტანდარტი ISO/IEC/IEEE 29119-1 მოიცავს მეტ ინფორმაციას პროგრამული უზრუნველყოფის ტესტირების კონცეფციის შესახებ (ISO/IEC/IEEE 29119-1:2022 Software and systems engineering — Software testing — Part 1: General concepts)