KUnit: Linux ერთეულის ტესტირების ახალი ჩარჩო

ტუქსი

Გასულ სამშაბათს, Google– ის ინჟინერმა ბრენდან ჰიგინსმა გამოაცხადა ექსპერიმენტული კომპლექტი 31 პატჩიდან KUnit– ის შემოღებისას როგორც ახალი Linux ბირთვის ერთეულის ტესტირების ჩარჩო, რომელიც ხელს შეუწყობს ბირთვის კოდის შენარჩუნებას და გაუმჯობესებას.

პატჩების ეს ნაკრები გვთავაზობს, რომ KUnit არის ტესტირების ჩარჩო Linux ბირთვისთვის.

განსხვავებით Autotest და kselftest, KUnit არის ნამდვილი ტესტის ჩარჩო, რომელიც არ საჭიროებს ბირთვის ინსტალაციას საცდელ მანქანაზე ან ვირტუალურ მანქანაზე და ის ასევე არ საჭიროებს ტესტების ჩაწერას მომხმარებლის სივრცეში, რომელიც მუშაობს ჰოსტზე.

KUnit– ის შესახებ

KUnit არის მსუბუქი დისკის სიმულაციური და ტესტირების ჩარჩო, რომელიც შექმნილია Linux Kernel- ისთვის. ერთეულის ტესტებს აუცილებლად აქვს უფრო წვრილი მარცვლოვნება, მათ აქვთ საშუალება შეამოწმოთ ყველა კოდის ბილიკი, ადვილად ამოხსნან შეცდომების მართვის კოდის გამოყენების სირთულე კლასიკური.

ერთეული ეს ძალიან შთაგონებულია JUnit- ით, Python- ის unittest.mock- ით და Googletest / Googlemock- ით C ++ - ისთვის. KUnit უზრუნველყოფს საშუალებებს, რათა განისაზღვროს ერთეულის საცდელი შემთხვევები, დააკავშიროთ საცდელი შემთხვევები საცდელ კომპლექტებად, უზრუნველყოს საერთო ინფრასტრუქტურა ტესტების გასაშვებად, მაკეტებისთვის, ჯაშუშობისთვის და მრავალი სხვა.

როგორც ბრენდან ჰიგინსი აღწერს მას:

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

გარდა ამისა, ვინაიდან არ არსებობს გარე დამოკიდებულება, არ არსებობს ტალღების გადასასვლელი ჰოოპები. ასევე, იგი ერთეულთა ტესტებს განსაზღვრავს - წარუმატებელი ერთეულის ტესტი ყოველთვის მიუთითებს პრობლემაზე.

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

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

ტესტის ბირთვი

ბრენდე წერს:

”პლუს, KUnit არის სწრაფი: გამოძახებიდან დასრულებამდე, KUnit– ს შეუძლია აწარმოოს რამდენიმე ათეული ტესტი წამზე ნაკლებ დროში. ამჟამად, KUnit– ის მთლიანი ტესტის პაკეტი KUnit– ისთვის გაშვებულია თავდაპირველი გამოძახებიდან წამზე ნაკლებ დროში (შედგენის დრო გამორიცხულია) «

კითხვაზე, ჩაანაცვლებს თუ არა KUnit Linux ბირთვის ტესტის სხვა ჩარჩოებს, ბრენდენმა უარყო ეს და თქვა:

”Linux ბირთვის არსებული ტესტების უმეტესობა არის ბოლოდან დასასრული ტესტები, რომლებსაც თავიანთი ადგილი აქვთ. კარგად აპრობირებულ სისტემას აქვს მრავალი ერთეულის ტესტი, ინტეგრაციის ტესტის გონივრული რაოდენობა და რამდენიმე ბოლოდან დასასრული ტესტი.

KUnit მხოლოდ ცდილობს მიმართოს დისკის ტესტირების ადგილს, რომელსაც ამჟამად არ მიმართავენ.

ერთიანი გამოსავალი Linux- ის ტესტირებისთვის 

KUnit წყვეტს პრობლემას შეძლოს ტესტების ჩატარება ვირტუალური მანქანის ან რეალური აპარატურის საჭიროების გარეშე, როგორიცაა ARM, x86, X64 და სხვა.

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

KUnit არის სწრაფი. გარდა კომპილირების დროს, შესრულებიდან დასრულებამდე, KUnit– ს შეუძლია აწარმოოს რამდენიმე ათეული ტესტი მხოლოდ 10-20 წამში.

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

KUnit– ის გარეთ, ამჟამად ბირთვისთვის არ არსებობს ტესტის ჩარჩოები, რომლებიც არ საჭიროებს ბირთვის დაინსტალირებას სატესტო აპარატზე ან VM და ყველა მათგანი მოითხოვს ტესტების ჩაწერას ბირთვში გაშვებულ მომხმარებლის სივრცეში; ეს ეხება Autotest– ს და kselftest– ს, ან რომელიმე მათგანის დისკვალიფიკაცია განიხილება, როგორც ერთეულის ტესტის ჩარჩოები.


სტატიის შინაარსი იცავს ჩვენს პრინციპებს სარედაქციო ეთიკა. შეცდომის შესატყობინებლად დააჭირეთ ღილაკს აქ.

იყავი პირველი კომენტარი

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო. აუცილებელი ველები აღნიშნულია *

*

*

  1. მონაცემებზე პასუხისმგებელი: მიგელ ანგელ გატონი
  2. მონაცემთა მიზანი: სპამის კონტროლი, კომენტარების მართვა.
  3. ლეგიტიმაცია: თქვენი თანხმობა
  4. მონაცემთა კომუნიკაცია: მონაცემები არ გადაეცემა მესამე პირებს, გარდა სამართლებრივი ვალდებულებისა.
  5. მონაცემთა შენახვა: მონაცემთა ბაზა, რომელსაც უმასპინძლა Occentus Networks (EU)
  6. უფლებები: ნებისმიერ დროს შეგიძლიათ შეზღუდოთ, აღადგინოთ და წაშალოთ თქვენი ინფორმაცია.