- ერთეულის ტესტირება Vs ინტეგრაციის ტესტი Vs ფუნქციური ტესტირება
- რა არის ერთეული ტესტირება?
- რა არის ინტეგრაციის ტესტირება ?
- ერთეულის ტესტირება ინტეგრაციის ტესტირების წინააღმდეგ
- ფუნქციური ტესტირება
- დასკვნა
- რეკომენდებული საკითხავი
ერთეულის, ინტეგრაციისა და ფუნქციური ტესტირების დეტალური შედარება:
ნებისმიერი პროგრამული აპლიკაციისთვის, როგორც ერთეულის ტესტირება, ასევე ინტეგრაციის ტესტირება, ძალიან მნიშვნელოვანია, რადგან თითოეული მათგანი იყენებს უნიკალური პროცესი პროგრამული აპლიკაციის შესამოწმებლად.
მაგრამ რომელიმე ან თუნდაც ორივე ვერ ჩაანაცვლებს ფუნქციონალურ ტესტირებას ნებისმიერ ეტაპზე.
ერთეულის ტესტირება Vs ინტეგრაციის ტესტი Vs ფუნქციური ტესტირება
ერთეულის ტესტირება ნიშნავს აპლიკაციის ცალკეული მოდულების ტესტირებას იზოლირებულად (დამოკიდებულებებთან ყოველგვარი ურთიერთქმედების გარეშე) დაადასტურეთ, რომ კოდი სწორად მუშაობს.
ინტეგრაციის ტესტირება ნიშნავს იმის შემოწმებას, მუშაობს თუ არა სხვადასხვა მოდული კარგად ჯგუფურად გაერთიანებისას.
ფუნქციური ტესტირება ნიშნავს ფუნქციონალური ნაწილის ტესტირებას სისტემაში (შეიძლება ურთიერთქმედება დამოკიდებულებებთან), რათა დაადასტუროს, რომ კოდი აკეთებს სწორ მოქმედებებს.
ფუნქციური ტესტები დაკავშირებულია ინტეგრაციის ტესტებთან, თუმცა, ისინი ნიშნავს ტესტებს, რომ შეამოწმეთ აპლიკაციის მთელი ფუნქციონალობა ყველა კოდით ერთად გაშვებული, თითქმის სუპერ ინტეგრაციის ტესტი.
ერთეულის ტესტირება ითვალისწინებს სისტემის ერთი კომპონენტის შემოწმებას, ხოლო ფუნქციონალური ტესტირება ითვალისწინებს აპლიკაციის მუშაობის შემოწმებას დანიშნულთან შედარებით. სისტემური მოთხოვნების სპეციფიკაციაში აღწერილი ფუნქციონირება. მეორეს მხრივ, ინტეგრაციის ტესტირება ითვალისწინებს შემოწმებასსისტემაში ინტეგრირებული მოდულები.
და, რაც მთავარია, ინვესტიციის უკუგების (ROI) ოპტიმიზაციისთვის, თქვენი კოდის ბაზას უნდა ჰქონდეს რაც შეიძლება მეტი ერთეული ტესტი, ნაკლები ინტეგრაციის ტესტები და ფუნქციონალური ტესტების მინიმალური რაოდენობა.
ეს საუკეთესოდ ილუსტრირებულია შემდეგ სატესტო პირამიდაში:
ერთეული ტესტები უფრო ადვილად იწერება და უფრო სწრაფად სრულდება. ტესტების განხორციელებისა და შენარჩუნების დრო და ძალისხმევა იზრდება ერთეულის ტესტირებიდან ფუნქციურ ტესტირებამდე, როგორც ეს ნაჩვენებია ზემოთ პირამიდაში.
მაგალითი:
მოდით გავიგოთ ტესტირების ეს სამი ტიპი ზედმეტად გამარტივებული მაგალითით.
მაგ. . ფუნქციონალური მობილური ტელეფონისთვის საჭირო ძირითადი ნაწილებია „ბატარეა“ და „სიმ ბარათი“.
ერთეულის ტესტირების მაგალითი – ბატარეის შემოწმება ხდება მისი სიცოცხლისუნარიანობის, სიმძლავრის და სხვა პარამეტრების მიხედვით. SIM ბარათი მოწმდება მის გააქტიურებაზე.
ინტეგრაციის ტესტირების მაგალითი – ბატარეა და სიმ ბარათი ინტეგრირებულია, ანუ აწყობილია მობილური ტელეფონის დასაწყებად.
ფუნქციონალური ტესტირების მაგალითი – მობილური ტელეფონის ფუნქციონირება მოწმდება მისი მახასიათებლებისა და ბატარეის მოხმარების, ასევე სიმ ბარათის შესაძლებლობების თვალსაზრისით.
ჩვენ ვნახეთ მაგალითი ხალხური პირობები.
ახლა, ახლა ავიღოთ შესვლის გვერდის ტექნიკური მაგალითი:
თითქმის ყველა ვებ აპლიკაცია მოითხოვს თავის მომხმარებლები/მომხმარებლები შევიდნენ. ამისათვის ყველა აპლიკაცია უნდაგქონდეთ „შესვლა“ გვერდი, რომელსაც აქვს შემდეგი ელემენტები:
- ანგარიში/მომხმარებლის სახელი
- პაროლი
- შესვლა/შესვლის ღილაკი
ერთეულის ტესტირებისთვის შემდეგი შეიძლება იყოს ტესტის შემთხვევები:
- ველის სიგრძე – მომხმარებლის სახელი და პაროლის ველები.
- შეყვანის ველის მნიშვნელობები უნდა იყოს მართებული.
- შესვლის ღილაკი ჩართულია მხოლოდ მას შემდეგ, რაც ორივე ველში შეიყვანება სწორი მნიშვნელობები (ფორმატი და სიგრძე).
ინტეგრაციის ტესტირებისთვის, შეიძლება შემდეგი იყოს ტესტის შემთხვევები:
- მომხმარებელი ხედავს მისასალმებელ შეტყობინებას მოქმედი მნიშვნელობების შეყვანის და შესვლის ღილაკის დაჭერის შემდეგ.
- მომხმარებელი უნდა იყოს ნავიგაცია მისასალმებელ გვერდზე ან მთავარ გვერდზე სწორი შესვლისა და დაწკაპუნების შემდეგ. შესვლის ღილაკი.
ახლა, ერთეულისა და ინტეგრაციის ტესტირების დასრულების შემდეგ, ვნახოთ დამატებითი ტესტის შემთხვევები, რომლებიც განიხილება ფუნქციური ტესტირებისთვის:
- მოსალოდნელი ქცევა მოწმდება, ანუ შეუძლია თუ არა მომხმარებელს შესვლა ღილაკზე შესვლის დაწკაპუნებით მომხმარებლის სახელისა და პაროლის სწორი მნიშვნელობების შეყვანის შემდეგ.
- არსებობს მისასალმებელი შეტყობინება, რომელიც გამოჩნდება წარმატებული შესვლის შემდეგ?
- არსებობს შეცდომის შეტყობინება, რომელიც უნდა გამოჩნდეს არასწორი შესვლისას?
- არსებობს თუ არა შენახული საიტის ქუქიები შესვლის ველებისთვის?
- შეუძლია თუ არა ინაქტივირებულ მომხმარებელს შესვლა?
- არსებობს თუ არა „დავიწყებული პაროლი“ ბმული იმ მომხმარებლებისთვის, რომლებმაც დაავიწყდათ პაროლები?
არის ბევრად მეტი ასეთი შემთხვევაფუნქციონალური ტესტერის გონება ფუნქციური ტესტირების დროს. მაგრამ დეველოპერს არ შეუძლია მიიღოს ყველა შემთხვევა Unit-ისა და ინტეგრაციის ტესტის შემთხვევების შექმნისას.
ამგვარად, არსებობს უამრავი სცენარი, რომლებიც ჯერ კიდევ არ არის გამოკვლეული ერთეულისა და ინტეგრაციის ტესტირების შემდეგაც კი.
ახლა დროა გამოვიკვლიოთ ერთეული, ინტეგრაცია და ფუნქციონალური ტესტირება სათითაოდ.
რა არის ერთეული ტესტირება?
როგორც სახელიდან ჩანს, ეს დონე მოიცავს "ერთეულის" ტესტირებას.
აქ ერთეული შეიძლება იყოს აპლიკაციის უმცირესი ნაწილი, რომელიც შესამოწმებელია, იქნება ეს უმცირესი ინდივიდუალური ფუნქცია, მეთოდი და ა.შ. პროგრამული უზრუნველყოფის შემქმნელები არიან ისინი, ვინც წერენ ერთეულის ტესტის შემთხვევებს. აქ მიზანია შეესაბამებოდეს მოთხოვნებს და დანაყოფის მოსალოდნელ ქცევას.
ქვემოთ მოცემულია რამდენიმე მნიშვნელოვანი პუნქტი ერთეულის ტესტირებისა და მისი უპირატესობების შესახებ:
- ერთეულის ტესტირება კეთდება ინტეგრაციის ტესტირებამდე პროგრამული უზრუნველყოფის დეველოპერების მიერ თეთრი ყუთის ტესტირების ტექნიკის გამოყენებით.
- ერთეულის ტესტირება ამოწმებს არა მხოლოდ დადებით ქცევას, ანუ სწორ გამომავალს მართებული შეყვანის შემთხვევაში, არამედ ასევე წარუმატებლობებს, რომლებიც წარმოიქმნება არასწორი შეყვანით.
- პროექტის ადრეულ ეტაპზე პრობლემების/შეცდომის პოვნა ძალიან სასარგებლოა და ამცირებს პროექტის მთლიან ხარჯებს. ვინაიდან ერთეულის ტესტირება კეთდება კოდის ინტეგრაციამდე, ამ ეტაპზე აღმოჩენილი საკითხები შეიძლება ძალიან მარტივად მოგვარდეს და მათი გავლენა ასევე ძალიან მცირეა.
- ერთეულის ტესტი ამოწმებს კოდის მცირე ნაწილებს ან ინდივიდს.ფუნქციონირებს ისე, რომ ამ სატესტო შემთხვევებში აღმოჩენილი საკითხები/შეცდომები დამოუკიდებელია და არ ახდენს გავლენას სხვა ტესტის შემთხვევებზე.
- კიდევ ერთი მნიშვნელოვანი უპირატესობა არის ის, რომ ერთეული ტესტის შემთხვევები ამარტივებს და აადვილებს კოდის ტესტირებას. ასე რომ, უფრო ადვილი ხდება პრობლემების გადაჭრა მოგვიანებით ეტაპზეც, რადგან მხოლოდ კოდის უახლესი ცვლილება უნდა შემოწმდეს.
- ერთეულის ტესტი დაზოგავს დროსა და ხარჯებს, ასევე არის ხელახლა გამოყენებადი და მარტივი შენარჩუნება.
JUnit (Java Framework), PHPUnit (PHP Framework), NUnit (.Net Framework) და ა.შ. არის პოპულარული ერთეულის ტესტირების ხელსაწყოები, რომლებიც გამოიყენება სხვადასხვა ენებისთვის.
რა არის ინტეგრაციის ტესტირება ?
ინტეგრაციის ტესტირება არის სისტემის სხვადასხვა ნაწილის ერთად ინტეგრაციის ტესტირება. სისტემის ორი განსხვავებული ნაწილი ან მოდული ჯერ ინტეგრირებულია და შემდეგ ტარდება ინტეგრაციის ტესტირება.
ინტეგრაციის ტესტირების მიზანია შეამოწმოს სისტემის ფუნქციონალურობა, საიმედოობა და შესრულება. სისტემა, როდესაც ინტეგრირებულია.
ინტეგრაციის ტესტირება ტარდება მოდულებზე, რომლებიც ჯერ ერთეულის ტესტირებას ექვემდებარება და შემდეგ ინტეგრაციის ტესტირება განსაზღვრავს, იძლევა თუ არა მოდულების კომბინაცია სასურველ გამომავალს.
ინტეგრაციის ტესტირებას შეუძლია ან უნდა გაკეთდეს დამოუკიდებელი ტესტერების ან დეველოპერების მიერაც.
არსებობს 3 სხვადასხვა ტიპის ინტეგრაციის ტესტირების მიდგომა. მოდით განვიხილოთ თითოეული მათგანი მოკლედ:
ა) დიდი აფეთქების ინტეგრაციის მიდგომა
ამ მიდგომით, ყველა მოდული ან ერთეული ინტეგრირებულია და ტესტირება ხდება როგორც მთლიანობაში ერთდროულად. ეს ჩვეულებრივ კეთდება მაშინ, როდესაც მთელი სისტემა მზად არის ინტეგრაციის ტესტირებისთვის დროის ერთ მომენტში.
გთხოვთ, არ აურიოთ ინტეგრაციის ტესტირების ეს მიდგომა სისტემის ტესტირებასთან, მხოლოდ მოდულების ან ერთეულების ინტეგრაციის ტესტირება ხდება და არა. მთელი სისტემა, როგორც ეს ხდება სისტემის ტესტირებისას.
დიდი აფეთქების მიდგომის მთავარი უპირატესობა არის ის, რომ ყველაფერი ინტეგრირებული ტესტირება ხდება ერთ დროს.
ერთი ძირითადი მინუსი ის არის ის, რომ ძნელი ხდება წარუმატებლობის იდენტიფიცირება.
მაგალითი: ქვემოთ მოცემულ ფიგურაში, ერთეული 1-დან მე-6 ერთეულამდე ინტეგრირებულია და ტესტირება ხდება დიდი აფეთქების მიდგომის გამოყენებით.
ბ) ზემოდან ქვემოთ მიდგომა
ერთეულების/მოდულების ინტეგრაცია ტესტირება ხდება ზემოდან ქვედა დონეზე ეტაპობრივად.
პირველი ერთეული ტესტირება ხდება ინდივიდუალურად სატესტო STUBS-ის ჩაწერით. ამის შემდეგ, ქვედა დონეები სათითაოდ ინტეგრირდება, სანამ ბოლო დონე არ გაერთიანდება და გამოცდება.
ზემოდან ქვევით მიდგომა ინტეგრაციის ძალიან ორგანული გზაა, რადგან ის შეესაბამება იმას, თუ როგორ ხდება მოვლენები რეალურში. გარემო.
ერთადერთი შეშფოთება ამ მიდგომით არის ის, რომ ძირითადი ფუნქციონალობა შემოწმებულია ბოლოს.
გ) ქვედა- ზევით მიდგომა
ერთეულები/მოდულები ტესტირება ხდება ქვემოდან ზედა დონეზე, ეტაპობრივად, სანამ ერთეულების/მოდულების ყველა დონე არ იქნება ინტეგრირებულიდა ტესტირებულია როგორც ერთი ერთეული. ამ მიდგომაში გამოიყენება სტიმულატორის პროგრამები, სახელწოდებით DRIVERS . უფრო ადვილია პრობლემების ან შეცდომების გამოვლენა ქვედა დონეზე.
ამ მიდგომის მთავარი მინუსი არის ის, რომ უფრო მაღალი დონის პრობლემების იდენტიფიცირება შესაძლებელია მხოლოდ ბოლოს, როდესაც ყველა ერთეულს აქვს ინტეგრირებულია.
ერთეულის ტესტირება ინტეგრაციის ტესტირების წინააღმდეგ
როგორც გვქონდა საკმარისი დისკუსია ერთეულის ტესტირებისა და ინტეგრაციის ტესტირების შესახებ, მოდით სწრაფად გადავხედოთ ამ ორს შორის არსებულ განსხვავებებს შემდეგ ცხრილში:
ერთეულის ტესტირება | ინტეგრაციის ტესტირება |
---|---|
ამოწმებს მთელი სისტემის ერთ კომპონენტს ე.ი. ამოწმებს ერთეულს იზოლირებულად. | ამოწმებს სისტემის კომპონენტების ერთად მუშაობას, ანუ ამოწმებს რამდენიმე ერთეულის თანამშრომლობას. |
უფრო სწრაფად შესრულება | შეიძლება გაშვება ნელი |
გარედან დამოკიდებულების გარეშე. ნებისმიერი გარე დამოკიდებულების დაცინვა ან ამოღება ხდება. | საჭიროა ურთიერთქმედება გარე დამოკიდებულებებთან (მაგ. მონაცემთა ბაზა, აპარატურა და ა.შ.) |
მარტივი | კომპლექსი |
ჩატარდა დეველოპერის მიერ | ჩატარდა ტესტერის მიერ |
ეს არის თეთრი ყუთის ტესტირების ტიპი | არის შავი ყუთის ტესტირების ტიპი |
ჩატარდება ტესტირების საწყის ეტაპზე და შემდეგ შეიძლება ჩატარდეს ნებისმიერ დროს | უნდა განხორციელდეს ერთეულის ტესტირების შემდეგ და სისტემის ტესტირებამდე |
იაფიმოვლა | ძვირადღირებული მოვლა |
იწყება მოდულის სპეციფიკაციებიდან | იწყება ინტერფეისის სპეციფიკაციებიდან |
ერთეული ტესტირებას აქვს ვიწრო მასშტაბი, რადგან ის უბრალოდ ამოწმებს, აკეთებს თუ არა კოდის თითოეული პატარა ნაწილი იმას, რის გაკეთებასაც აპირებს. | მას აქვს უფრო ფართო მასშტაბი, რადგან ის მოიცავს მთელ აპლიკაციას |
ერთეულის ტესტირების შედეგი არის კოდის დეტალური ხილვადობა | ინტეგრაციის შედეგი ტესტირება არის ინტეგრაციის სტრუქტურის დეტალური ხილვადობა |
გამოავლინეთ პრობლემები მხოლოდ ცალკეული მოდულების ფუნქციონალურობაში. არ ავლენს ინტეგრაციის შეცდომებს ან სისტემის პრობლემებს. | გამოავლინეთ შეცდომები, როდესაც სხვადასხვა მოდული ურთიერთქმედებს ერთმანეთთან და ქმნის მთლიან სისტემას |
ფუნქციური ტესტირება
შავი ყუთის ტესტირების ტექნიკას, სადაც აპლიკაციის ფუნქციონალური ტესტირება ხდება სასურველი შედეგის შესაქმნელად გარკვეული შეყვანის მიწოდებისას, ეწოდება „ფუნქციური ტესტირება“.
ჩვენი პროგრამული ტესტირების პროცესებში, ჩვენ გააკეთეთ ეს ტესტის შემთხვევების დაწერით მოთხოვნებისა და სცენარების მიხედვით. ნებისმიერი ფუნქციონირებისთვის, დაწერილი ტესტის შემთხვევების რაოდენობა შეიძლება განსხვავდებოდეს ერთიდან ბევრამდე.
დასკვნა
ეს სამივე ტესტირების ტიპი დაკავშირებულია.
სრული გაშუქების მისაღწევად, ის საჭიროა გქონდეთ ერთეულის ტესტები კოდის ბილიკებისთვის/ხაზებისთვის, ფუნქციონალური და ინტეგრაციის ტესტებისთვის, რათა დაარწმუნოთ, რომ "ერთეულები"იმუშავეთ ერთობლივად.
ვიმედოვნებთ, რომ ეს სტატია მოგცემთ ნათელ წარმოდგენას ერთეულის, ინტეგრაციისა და ფუნქციონალური ტესტირების შესახებ მათ განსხვავებებთან ერთად, თუმცა ტესტირების ამ ფორმებს გაცილებით მეტი აქვს!!