Автоматизоване тестування програмного забезпечення — частина процесу тестування на етапі контролю якості в процесі розробки програмного забезпечення. Воно використовує програмні засоби для виконання тестів і перевірки результатів виконання, що допомагає скоротити час тестування і спростити його процес.
Історія
Перші спроби «автоматизації» з'явилися в епоху операційних систем DOS і (CP/M). Тоді вона полягала у видачі додатком команд через командний рядок і аналізі результатів. Трохи пізніше додалися віддалені виклики через API для роботи з мережі. Вперше про автоматизоване тестування згадується в книзі Фредеріка Брукса «Міфічний людино-місяць», де йдеться про перспективи використання модульного тестування. Але по-справжньому автоматизація тестування стала розвиватися тільки в 1980-х роках.
Види автоматизованого тестування
Існує два основних підходи до автоматизації тестування: тестування на рівні коду і GUI-тестування. До першого типу належить, зокрема, модульне тестування. До другого — імітація дій користувача за допомогою спеціальних тестових фреймворків.
Найпоширенішою формою автоматизації є тестування додатків через графічний інтерфейс користувача. Популярність такого виду тестування пояснюється двома факторами: по-перше, додаток тестується тим же способом, яким його буде використовувати людина, по-друге, можна тестувати додаток, не маючи при цьому доступу до вихідного коду.
GUI-автоматизація
GUI-автоматизація розвивалася протягом 4 поколінь інструментів і технік:
- Утиліти запису і відтворення (capture/playback tools) — записують дії тестувальника під час ручного тестування. Вони дозволяють виконувати тести без прямої участі людини протягом тривалого часу, значно збільшуючи продуктивність і усуваючи «безглузде» повторення одноманітних дій під час ручного тестування. У той же час, будь-яка мала зміна ПЗ, що тестується вимагає перезапису ручних тестів. Тому це перше покоління інструментів не ефективне і не масштабоване.
- Сценарії (Scripting) — форма програмування на мовах, спеціально розроблених для автоматизації тестування ПЗ — пом'якшує багато проблем capture/playback tools. Але розробкою займаються програмісти високого рівня, які працюють окремо від тестувальників, що безпосередньо запускають тести. До того ж скрипти найбільше підходять для тестування GUI і не можуть бути впровадженими, пакетними або взагалі будь-яким чином об'єднані в систему. Нарешті, зміни в ПЗ, яке тестується вимагають складних змін у відповідних скриптах, і підтримка все більше зростаючої бібліотеки тестуючих скриптів стає зрештою непереборним завданням.
- Data-driven testing — методологія, яка використовується в автоматизації тестування. Особливістю є те, що тестові скрипти виконуються і верифікуються на основі даних, які зберігаються в центральному сховищі даних або БД. Роль БД можуть виконувати ODBC-ресурси, csv або xls файли і т. д. Data-driven testing — це об'єднання декількох взаємодіючих тестових скриптів та їх джерел даних в фреймворк, який використовується в методології. У цьому фреймворку змінні використовуються як для вхідних значень, так і для вихідних перевірочних значень: у тестовому скрипті зазвичай закодовані навігація по додатком, читання джерел даних, ведення логів тестування. Таким чином, логіка, яка буде виконана в скрипті, також залежить від даних.
- Keyword-based автоматизація передбачає поділ процесу створення кейсів на 2 етапи: етап планування та етап реалізації.
Модульне тестування
Модульне тестування (англ. Unit testing) — це метод тестування програмного забезпечення, який полягає в окремому тестуванні кожного модуля коду програми. Модулем називають найменшу частину програми, яку може бути протестованою. У процедурному програмуванні модулем вважають окрему функцію або процедуру. В об'єктно-орієнтованому програмуванні — інтерфейс, клас. Модульні тести, або unit-тести, розробляються в процесі розробки програмістами та, іноді, тестувальниками білої скриньки (white-box testers).
Професія
Інженер-автоматизатор забезпечення якості (англ. QA Automation engineer) — фахівець із забезпечення якості продукту, який використовує програмні засоби для створення тестів і перевірки результатів виконання. Основне завдання такого інженера — створювати автоматичні скрипти, які будуть перевіряти роботу програми на підставі тест-кейсів, написаних QA-автоматизатором. Це допомагає скоротити час тестування і спростити його процес.
Висновок
Однією з головних проблем автоматизованого тестування є його трудомісткість: попри те, що воно дозволяє усунути частину рутинних операцій і прискорити виконання тестів, великі ресурси можуть витрачатися на оновлення самих тестів. Це відноситься до обох видів автоматизації. При рефакторінгу часто буває необхідно оновити і модульні тести, і зміна коду тестів може зайняти стільки ж часу, скільки і зміна основного коду. З іншого боку, при зміні інтерфейсу програми необхідно заново переписати всі тести, які пов'язані з оновленими вікнами, що при великій кількості тестів може відняти значні ресурси.
Додатки
Для автоматизації тестування існує велика кількість додатків. Деякі з них:
- , ,
- IBM Rational FunctionalTester, IBM Rational PerformanceTester, IBM Rational TestStudio
- SmartBear Software TestComplete
Використання цих інструментів допомагає тестувальникам автоматизувати наступні задачі:
- установка продукту
- створення тестових даних
- GUI-взаємодія
- визначення проблеми
Однак автоматичні тести не можуть повністю замінити ручне тестування. Автоматизація всіх випробувань — дуже дорогий процес, і тому автоматичне тестування є лише доповненням ручного тестування. Найкращий варіант використання автоматичних тестів — регресійне тестування.
Інструментарій
- JUnit — тестування додатків для Java
- NUnit — порт JUnit під .NET
- — тестування додатків для .NET
- — тестування додатків для Java
- Selenium — тестування додатків HTML; підтримує браузери Internet Explorer, Mozilla Firefox, Opera, Google Chrome, очікується підтримка Safari.
- — тестування вебдодатків; підтримує браузери Internet Explorer, Mozilla Firefox
- TOSCA Testsuite — тестування додатків HTML, .NET, Java, SAP
- — тестування додатків на Java, Сі.
Див. також
Посилання
- Коли тестування повинно бути автоматизованим? [ 30 липня 2013 у Wayback Machine.]
- Практичний досвід автоматизованого тестування [ 24 квітня 2021 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Avtomatizovane testuvannya programnogo zabezpechennya chastina procesu testuvannya na etapi kontrolyu yakosti v procesi rozrobki programnogo zabezpechennya Vono vikoristovuye programni zasobi dlya vikonannya testiv i perevirki rezultativ vikonannya sho dopomagaye skorotiti chas testuvannya i sprostiti jogo proces IstoriyaPershi sprobi avtomatizaciyi z yavilisya v epohu operacijnih sistem DOS i CP M Todi vona polyagala u vidachi dodatkom komand cherez komandnij ryadok i analizi rezultativ Trohi piznishe dodalisya viddaleni vikliki cherez API dlya roboti z merezhi Vpershe pro avtomatizovane testuvannya zgaduyetsya v knizi Frederika Bruksa Mifichnij lyudino misyac de jdetsya pro perspektivi vikoristannya modulnogo testuvannya Ale po spravzhnomu avtomatizaciya testuvannya stala rozvivatisya tilki v 1980 h rokah Vidi avtomatizovanogo testuvannyaIsnuye dva osnovnih pidhodi do avtomatizaciyi testuvannya testuvannya na rivni kodu i GUI testuvannya Do pershogo tipu nalezhit zokrema modulne testuvannya Do drugogo imitaciya dij koristuvacha za dopomogoyu specialnih testovih frejmvorkiv Najposhirenishoyu formoyu avtomatizaciyi ye testuvannya dodatkiv cherez grafichnij interfejs koristuvacha Populyarnist takogo vidu testuvannya poyasnyuyetsya dvoma faktorami po pershe dodatok testuyetsya tim zhe sposobom yakim jogo bude vikoristovuvati lyudina po druge mozhna testuvati dodatok ne mayuchi pri comu dostupu do vihidnogo kodu GUI avtomatizaciya GUI avtomatizaciya rozvivalasya protyagom 4 pokolin instrumentiv i tehnik Utiliti zapisu i vidtvorennya capture playback tools zapisuyut diyi testuvalnika pid chas ruchnogo testuvannya Voni dozvolyayut vikonuvati testi bez pryamoyi uchasti lyudini protyagom trivalogo chasu znachno zbilshuyuchi produktivnist i usuvayuchi bezgluzde povtorennya odnomanitnih dij pid chas ruchnogo testuvannya U toj zhe chas bud yaka mala zmina PZ sho testuyetsya vimagaye perezapisu ruchnih testiv Tomu ce pershe pokolinnya instrumentiv ne efektivne i ne masshtabovane Scenariyi Scripting forma programuvannya na movah specialno rozroblenih dlya avtomatizaciyi testuvannya PZ pom yakshuye bagato problem capture playback tools Ale rozrobkoyu zajmayutsya programisti visokogo rivnya yaki pracyuyut okremo vid testuvalnikiv sho bezposeredno zapuskayut testi Do togo zh skripti najbilshe pidhodyat dlya testuvannya GUI i ne mozhut buti vprovadzhenimi paketnimi abo vzagali bud yakim chinom ob yednani v sistemu Nareshti zmini v PZ yake testuyetsya vimagayut skladnih zmin u vidpovidnih skriptah i pidtrimka vse bilshe zrostayuchoyi biblioteki testuyuchih skriptiv staye zreshtoyu neperebornim zavdannyam Data driven testing metodologiya yaka vikoristovuyetsya v avtomatizaciyi testuvannya Osoblivistyu ye te sho testovi skripti vikonuyutsya i verifikuyutsya na osnovi danih yaki zberigayutsya v centralnomu shovishi danih abo BD Rol BD mozhut vikonuvati ODBC resursi csv abo xls fajli i t d Data driven testing ce ob yednannya dekilkoh vzayemodiyuchih testovih skriptiv ta yih dzherel danih v frejmvork yakij vikoristovuyetsya v metodologiyi U comu frejmvorku zminni vikoristovuyutsya yak dlya vhidnih znachen tak i dlya vihidnih perevirochnih znachen u testovomu skripti zazvichaj zakodovani navigaciya po dodatkom chitannya dzherel danih vedennya logiv testuvannya Takim chinom logika yaka bude vikonana v skripti takozh zalezhit vid danih Keyword based avtomatizaciya peredbachaye podil procesu stvorennya kejsiv na 2 etapi etap planuvannya ta etap realizaciyi Modulne testuvannya Modulne testuvannya angl Unit testing ce metod testuvannya programnogo zabezpechennya yakij polyagaye v okremomu testuvanni kozhnogo modulya kodu programi Modulem nazivayut najmenshu chastinu programi yaku mozhe buti protestovanoyu U procedurnomu programuvanni modulem vvazhayut okremu funkciyu abo proceduru V ob yektno oriyentovanomu programuvanni interfejs klas Modulni testi abo unit testi rozroblyayutsya v procesi rozrobki programistami ta inodi testuvalnikami biloyi skrinki white box testers ProfesiyaInzhener avtomatizator zabezpechennya yakosti angl QA Automation engineer fahivec iz zabezpechennya yakosti produktu yakij vikoristovuye programni zasobi dlya stvorennya testiv i perevirki rezultativ vikonannya Osnovne zavdannya takogo inzhenera stvoryuvati avtomatichni skripti yaki budut pereviryati robotu programi na pidstavi test kejsiv napisanih QA avtomatizatorom Ce dopomagaye skorotiti chas testuvannya i sprostiti jogo proces VisnovokOdniyeyu z golovnih problem avtomatizovanogo testuvannya ye jogo trudomistkist popri te sho vono dozvolyaye usunuti chastinu rutinnih operacij i priskoriti vikonannya testiv veliki resursi mozhut vitrachatisya na onovlennya samih testiv Ce vidnositsya do oboh vidiv avtomatizaciyi Pri refaktoringu chasto buvaye neobhidno onoviti i modulni testi i zmina kodu testiv mozhe zajnyati stilki zh chasu skilki i zmina osnovnogo kodu Z inshogo boku pri zmini interfejsu programi neobhidno zanovo perepisati vsi testi yaki pov yazani z onovlenimi viknami sho pri velikij kilkosti testiv mozhe vidnyati znachni resursi DodatkiDlya avtomatizaciyi testuvannya isnuye velika kilkist dodatkiv Deyaki z nih IBM Rational FunctionalTester IBM Rational PerformanceTester IBM Rational TestStudio SmartBear Software TestComplete Vikoristannya cih instrumentiv dopomagaye testuvalnikam avtomatizuvati nastupni zadachi ustanovka produktu stvorennya testovih danih GUI vzayemodiya viznachennya problemi Odnak avtomatichni testi ne mozhut povnistyu zaminiti ruchne testuvannya Avtomatizaciya vsih viprobuvan duzhe dorogij proces i tomu avtomatichne testuvannya ye lishe dopovnennyam ruchnogo testuvannya Najkrashij variant vikoristannya avtomatichnih testiv regresijne testuvannya InstrumentarijJUnit testuvannya dodatkiv dlya Java NUnit port JUnit pid NET testuvannya dodatkiv dlya NET testuvannya dodatkiv dlya Java Selenium testuvannya dodatkiv HTML pidtrimuye brauzeri Internet Explorer Mozilla Firefox Opera Google Chrome ochikuyetsya pidtrimka Safari testuvannya vebdodatkiv pidtrimuye brauzeri Internet Explorer Mozilla Firefox TOSCA Testsuite testuvannya dodatkiv HTML NET Java SAP testuvannya dodatkiv na Java Si Div takozhRuchne testuvannyaPosilannyaKoli testuvannya povinno buti avtomatizovanim 30 lipnya 2013 u Wayback Machine Praktichnij dosvid avtomatizovanogo testuvannya 24 kvitnya 2021 u Wayback Machine