QA The Other Wayხარისხის უზრუნველყოფა AI-ის მიერ დაწერილი ტესტების ეპოქაში. QA The Other Way.
პრაქტიკული ტესტირების სახელმძღვანელო

დაამოდელეთ დამოკიდებულება. მონიშნეთ საზღვარი.

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

7 კითხვა: წუთიQA The Other Way
მინიატურული ხიდი ნამდვილი ფოლადის სახსრის გვერდით, რომელიც ასახავს დაცინვით დამოკიდებულების საზღვარს.
AI-ის მიერ გენერირებული სარედაქციო ილუსტრაცია.
საილუსტრაციო ვიდეო ამ სტატიისთვის. ინგლისური ტექსტი ეკრანზე; აირჩიეთ სუბტიტრები ამ ენისთვის.

ნათარგმნი გამოცემა. ტექნიკური იდენტიფიკატორები რჩება თავდაპირველ ფორმაში.

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

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

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

გადაწყვიტე რომელ კითხვაზე პასუხობს ტესტი

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

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

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

ამ საილუსტრაციო აპლიკაციაში, ციტირების გვერდის ჩატვირთვა მოითხოვს /api/delivery-quote. მაგალითი წყვეტს ამ ზუსტ გზას და აბრუნებს კონტროლირებად JSON ობიექტს. დაარეგისტრირეთ დამმუშავებელი ნავიგაციამდე, რათა პირველი მოთხოვნა არ გაექცეს განზრახ დაყენებას.

await page.route('**/api/delivery-quote', async route => {
  await route.fulfill({
    status: 200,
    contentType: 'application/json',
    body: JSON.stringify({ label: 'Standard', price: '4.00' })
  });
});
await page.goto('/delivery-quote');
await expect(page.getByRole('status')).toHaveText('Standard: 4.00');

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

Playwright-ის მარშრუტის API განასხვავებს მოთხოვნის შესრულებას რეალური პასუხის მიღებასა და მის შეცვლას. ზემოთ მოყვანილი მაგალითი არ უწოდებს ზედა დინების შეთავაზების სერვისს. route.fetch() მაგალითს ექნება განსხვავებული საზღვარი, რადგან ის მაინც დამოკიდებულია ზემოთ ნაკადის პასუხზე.

ტესტის წარუმატებლობა ხდება გამყიდველის გათიშვის მოლოდინის გარეშე

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

await page.route('**/api/delivery-quote', route =>
  route.fulfill({ status: 503, body: 'Unavailable' })
);
await page.goto('/delivery-quote');
await expect(page.getByRole('alert')).toHaveText('Quote unavailable');

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

დააკვირდით ბრმა წერტილებს

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

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

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

მიეცით მტკიცებულებას სახელი, რომელიც გადარჩა დაფაზე

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

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

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

საერთო კითხვები

დაცინვით დამოკიდებულება. დანიშნეთ საზღვარი. -რა უნდა მახსოვდეს?

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

არის თუ არა მაგალითები გაზომილი AnyTest შედეგი?

არა. მაგალითები ასახავს ტესტირების ტექნიკას Playwright-ის გამოყენებით. AnyTest აღწერს ვებ-ძიებას და გენერირებულ ტესტებს ადამიანის განხილვისთვის; კონკრეტული მორბენალი ინტეგრაციის მოთხოვნა არ არის.

წყაროები