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

შეამოწმეთ ჩამოტვირთვა და არა მხოლოდ ღილაკი.

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

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

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

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

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

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

დაარეგისტრირეთ ლოდინი მოქმედებამდე

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

import { readFile } from 'node:fs/promises';

const pendingDownload = page.waitForEvent('download');
await page.getByRole('button', { name: 'Export demo' }).click();
const download = await pendingDownload;
const output = testInfo.outputPath('demo-export.csv');
await download.saveAs(output);
const text = await readFile(output, 'utf8');
expect(text).toBe('name,status\nDemo task,ready\n');

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

აირჩიეთ შინაარსის კონტრაქტი და არა მოსახერხებელი მტკიცება

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

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

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

მიეცით ტესტის ჩანაწერს საცხოვრებლად უსაფრთხო ადგილი

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

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

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

შეგნებულად შეამოწმეთ ცარიელი და უარყოფილი ბილიკები

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

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

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

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

საკმარისია შემოთავაზებული ფაილის სახელი?

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

გადარჩება თუ არა დროებითი ფაილი კონტექსტის დახურვას?

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

წყაროები