Тестер ІТ
15 subscribers
30 photos
3 links
КУРСИ АВТОМАТИЗОВАНОГО ТЕСТУВАННЯ

Instagram https://instagram.com/testerit_?igshid=YmMyMTA2M2Y=
Download Telegram
Інструменти, необхідні для роботи автоматизаторів тестування:

- Selenium WebDriver. Дозволяє імітувати дії користувача у браузері. Selenium WebDriver стане в нагоді, щоб автоматизувати тестування графічного інтерфейсу веб-додатків.

- JUnit. Фреймворк автоматизації тестування для Java.

- IDE. Інтегроване середовище розробки – в ньому можна писати, компілювати та налагоджувати код.

- REST-Assured. Java-бібліотека для тестування REST API.

- SQL. Мова запитів до реляційних баз даних. Тут важливо освоїти базові запити та навчитися взаємодіяти з базами даних.

- CI-система. Додаток, який допомагає автоматизувати різні етапи роботи з кодом - наприклад, складання та аналіз коду, тестування та формування звітів.

- Allure. Інструмент, у якому можна формувати наочні та зрозумілі звіти про тестування.

На старті автоматизатор отримує прості завдання - зробити тест за зразком або виправити готовий. Поступово рівень складності підвищується, наприклад, десь потрібно автоматизувати тест-кейс з нуля або доопрацювати інфраструктуру для автоматизації.

Важлива якість хорошого автоматизатора — писати тести, які легко підтримувати. Якщо тест написаний неякісно, ​​то згодом він почне гальмувати процес розробки — і інженерам буде простіше позбутися його, ніж зрозуміти, що пішло не так. Перевірити читання допомагає етап код-рев'ю.
👍1
Автоматизатор тісно співпрацює з ручними тестувальниками та може приходити до команди розробки з будь-якими питаннями. Він відповідає за якість кінцевого продукту, поряд з іншою командою: від розробників до менеджерів продукту.

З чим потрібно вміти працювати автоматизатору-початківцю тестування:

- Теорія тестування. Тут важливе вміння знайти необхідний та достатній набір тест-кейсів та описати їх. Якщо новачок може протестувати вручну форму реєстрації, знає, як пишеться тест-кейс і що таке граничні умови та класи еквівалентності, — він має достатньо знань у теорії тестування для того, щоб переходити до автоматизації.

- Java. Java - автоматизатор повинен вміти і писати код, що читається і підтримується.

- Фреймворк автоматизації тестування. У Java це, як правило, JUnit, але можна вивчити й інший, залежно від того, чим користуються у вашій команді.

- Інструмент автоматизації API, UI десктопа або мобільних додатків. Наприклад, Selenium для UI та REAT-Assured для API. Для автотестів мобільних програм слід вивчити Espresso.

- Інструменти розробника в браузері. Потрібно знати, як подивитися, які запити надсилаються на сервер, як визначити код елемента та визначити його локатор.

М'які навички також важливі для автоматизатора, як і технічні. Тому при співбесіді на таку позицію вам, швидше за все, будуть ставити питання про досвід роботи в команді. Важливо вміти спілкуватися, приймати та ставити завдання, отримувати критику та самому давати фідбек.

Щоб стартувати у професії, достатньо досвіду у ручному тестуванні (приблизно від півроку). Можна стати автоматизатором і без досвіду у тестуванні, хоча на старті вам буде трохи складніше. Наприклад, новачкові може бути важко зрозуміти, який набір перевірок буде необхідним і достатнім у тому чи іншому випадку – це приходить із практикою.
Найскладніше у тестуванні, це організувати процес випуску нового функціоналу, постійно покращуючи якість майбутніх релізів.

У кожному конкретному проекті різні види тестування зі своїми складнощами та проблемами, які залежать від процесів, інструментів, сфери діяльності бізнесу та наявних ресурсів для вирішення завдання.

Команда, бачачи проблему, не може знайти прийнятного рішення і шукає того, хто зможе це зробити з мінімальними ризиками для бізнесу, нічого не зламавши.

Якщо таке питання ставлять на співбесіді, то від кандидата хочуть почути аргументовані кроки в конкретній ситуації, які він зробить, який очікує отримати результат, за який період часу і що робитиме якщо не вийде так гладко, як він розповідає на співбесіді.

Кілька порад будуть доречні:
1) Уважно читайте опис вакансії до кінця. Третина співбесід на позицію qa закінчуються нічим, тому що кандидат не звернув уваги на пропозицію наприкінці, де був увесь сенс, який йому в принципі не підходить/не цікавий.
2) До першої зустрічі з HR, уважно перегляньте інформацію про компанію, продукт та прочитайте відгуки в мережі. На вступній зустрічі уточніть максимум деталей про посаду, обов'язки, склад команди.
Що тестують розробники?

У розробці програмного забезпечення розробники відіграють важливу роль у проектуванні, кодуванні та створенні програмного забезпечення. Робота розробників націлена більше на розробку та створення товарів та рішень, ніж пошук дефектів. Однак, дуже часто до їхніх обов'язків входять і пошук і виявлення багів.

Розробники виконують модульне тестування (тестування окремих одиниць вихідного коду, щоб перевірити, чи він відповідає специфікаціям і чи працює належним чином) та інтеграційне тестування (тестування пов'язаних між собою програм або блоків коду, щоб переконатися, що численні частини системи добре взаємодіють з іншими частинами) . Їх також просять провести структурне тестування, або його ще називають тестуванням за принципом "білої скриньки" або "скляної скриньки", щоб перевірити код. Ці тести перевіряють функціональність, продуктивність та надійність програми.

Що тестують спеціалісти QA?

QA фахівці мають ширші знання історії програми, що дає їм можливість вирішувати проблеми, як тільки вони виникають. Тестувальники виконують поглиблений аналіз програми та повторюють процес тестування, доки помилка не буде виправлена.

Тестувальники QA надають тестові випадки та плани, які можуть використовуватися як додаткове джерело документації для навчання та використання клієнтами. Ці тести містять всю інформацію, необхідну розробникам для розуміння функціональності програми.

Залежно від команди розробникам часто пропонують виконати як мінімум модульне тестування або створити автоматизовані інтегровані тести на основі коду. Однак, на думку розробників, створення тестів займає багато часу, який можна було б витратити на створення нових функцій.

Ще однією з причин, чому розробники уникають тестування нового коду є те, що вони працюють в одному розділі коду програми і не розуміють, як працює вся програма. Незалежно від глибини перевірки, розробникам буде важко або взагалі неможливо знайти помилки.

Інша причина полягає в тому, що деякі розробники вважають, що створення модульних тестів надто складне для повторного виконання, навіть якщо вони автоматизовані. В основному тестування уповільнює процес розробки та знижує продуктивність кодування.

Деякі розробники також можуть бути надто оптимістичні щодо своїх кодів. Вони вважають свій код бездоганним і, як наслідок, можуть пропустити інші деталі програми або помилки.

Крім того, розробники краще ознайомлені із власними кодами. Ось чому деякі розробники ретельно тестують свій код, щоб унеможливити помилки і перевірити його функціональність, а також переконатися, що він відповідає необхідним специфікаціям.

У довгостроковій перспективі розробники знають, що й вони проводять тестування самостійно, це заощадить час всієї команди, і навіть зменшить кількість дефектів, тим самим скоротивши час виробництва та виходу товару на ринок.

QA тестування

Кваліфіковані тестувальники знайомі з усіма нюансами, пов'язаними з програмою: вони більше мають інформації про історію регресійного тестування програми, ніж будь-який розробник.

Тестувальники проводять цілу низку тестів, що дозволяють докладно протестувати всі функції програми. Крім того, QA проводять тести, що копіюють поведінку кінцевих користувачів. Ці тести враховують той факт, що користувач може використовувати програму не за призначенням, що може призвести до поломки.

QA фахівці відіграють допоміжну роль для команд розробників, адже вони зазвичай співпрацюють між собою, що значно підвищує продуктивність. Вони забезпечують незалежну думку, що підвищує успіх тестів.

Для багатьох команд розробників ПЗ наявність тестувальника якості вкрай потрібна. Проте розробник також має вміти тестувати, отже знати основи тестування.
👍1
Тестова документація

Тест план (Test Plan) — це документ, який описує весь обсяг робіт із тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку та закінчення тестування до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків.

Тест план повинен відповідати на такі питання:

Що потрібно протестувати?
Як проводитиметься тестування?
Коли проводитиметься тестування?
Критерії початку тестування.
Критерії закінчення тестування.

Основні пункти тест плану:

Ідентифікатор тест-плану (Test plan identifier);
Введення (Introduction);
Об'єкт тестування (Test items);
Функції, які будуть протестовані (Features to be tested;)
Функції, які не будуть протестовані (Features not to be tested);
Тестові підходи (Approach);
Критерії проходження тестування (Item pass/fail criteria);
Критерії призупинення та відновлення тестування (Suspension criteria and resumption requirements);
Результати тестування (Test deliverables);
Завдання тестування (Testing tasks);
Ресурси системи (Environmental needs);
Обов'язки (Responsibilities);
Ролі та відповідальність (Staffing and training needs);
Розклад (Schedule);
Оцінка ризиків (Risks and contingencies);
Узгодження (Approvals).

Чек-лист (check list) - це документ, який описує, що має бути протестовано. Чек-лист може бути абсолютно різного рівня деталізації.

Найчастіше чек-лист містить лише дії, без очікуваного результату. Він менш формалізований.

Тестовий сценарій (test case) - це артефакт, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації функції або її частини, що тестується.
👍2
ІТ-індустрія сьогодні досі відчуває кадровий голод. Це з активним використанням комп'ютерних технологій у всі сфери життя. У списку затребуваних спеціальностей вже багато років фігурують розробник програмного забезпечення та тестувальник.

Коли запитують, скільки вчитися на тестувальника, слід у першу чергу з'ясувати собі мету навчання. Якщо учень хоче докладно розібратися у широкій сфері комп'ютерних технологій, знати архітектуру сучасного програмування, читати код і водночас використовувати автоматизацію для перевірки програмного продукту, то найкращим способом буде вищий навчальний заклад технічного профілю. Але на практиці більшість учнів ставить початкову мету – отримання роботи, яка дасть можливість заробляти гроші та паралельно рости кар'єрними сходами. Саме від цього вибору та поставленого завдання залежить скільки вчитися на тестувальника.

Розглянемо основні варіанти, де можна вивчитися на тестувальника та скільки часу це займе:

Професійне технічне училище або вища технічна освіта. Термін навчання від 3 до 6 років. Це справді широке освоєння професії, при цьому вузи зосереджені на глибокій теорії та науковій роботі. У таких закладах більш як половина навчального часу відведено на другорядні предмети: від звичайної фізкультури до вищої математики. Працюють зі студентами переважно теоретики, а методика навчання часто консервативна та інколи не відповідають сучасним принципам роботи ІТ компаній;

Курси тестування. Залежно від рівня складності може тривати від 2 до 4-6 місяців. Кураторами виступають практикуючі тестувальники рівня не нижче за senior. Якщо говорити про курси для новачків без досвіду роботи, то вони тривають у середньому 9 тижнів. Після цього випускник отримує сертифікат, знання, відпрацьовані практичні навички та може вирушати на пошук роботи;

Самоосвіта. Час навчання дуже індивідуальний: хтось може освоїти ази тестування за кілька місяців, а хтось поступово вивчатиме теорію протягом року.
Найголовніший мінус самоосвіти полягає в тому, що учень не знає, коли вчасно зупинитися і починати пропонувати себе на ринку. Практика проходження співбесід таких учнів показує, що у самостійній освіті все одно залишаються прогалини, які згодом доводиться доповнювати. Тому це більш тривалий шлях, ніж курси з чітко розробленою програмою.
👍1
Що таке тест-план?
Тест план (Test Plan) - це документ, який описує весь обсяг робіт із тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку та закінчення тестування до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків.

Тест план відповідає на такі питання:
Що потрібно протестувати?
Як проводитиметься тестування?
Коли проводитиметься тестування?
Критерії початку тестування.
Критерії закінчення тестування.

Основні пункти тест плану:
Ідентифікатор тест-плану (Test plan identifier)
Вступ (Introduction)
Об'єкт тестування (Test items)
Опції, які будуть протестовані (Features to be tested)
Функції, які не будуть протестовані (Features not to be tested)
Тестові підходи (Approach)
Критерії проходження тестування (Item pass/fail criteria)
Критерії зупинення та відновлення тестування (Suspension criteria and resumption requirements)
Результати тестування (Test deliverables)
Завдання тестування (Testing tasks)
Ресурси системи (Environmental needs)
Обов'язки (Responsibilities)
Ролі та відповідальність (Staffing and training needs)
Розклад (Schedule)
Оцінка ризиків (Risks and contingencies)
Узгодження (Approvals)
Баг (bug) – це помилка або дефект програмного забезпечення. Він проявляється, коли фактична поведінка системи відрізняється від очікуваного. Дефекти можуть бути критичними і впливати на використання ПЗ або незначними, коли їхня присутність непомітна для користувача.

Тестування (testing) - це дослідження поведінки програмного продукту, основною метою якого є виявлення багів. Поняття контроль якості (quality control, QC) і забезпечення якості (quality assurance, QA) часто використовуються як синоніми, але це помилка. Адже тестування націлене на пошук помилок у вже готовому програмному забезпеченні, а забезпечення якості задає умови, в яких дефекти з'являтися не будуть.

Тестування та забезпечення якості (Quality Assurance, QA) для багатьох «брати-близнюки», відрізнити які один від одного може лише фахівець IT-сфери. Незважаючи на їхній взаємозв'язок, це зовсім різні терміни. Крім того, їх не можна плутати з третім поняттям – контролем якості (Quality Control, QC).
Тестування vs. забезпечення якості

Тож у чому різниця між цими поняттями і чому тестувальників часто називають фахівцями у сфері QA?

Забезпечення якості, порівняно з тестуванням, є ширшим поняттям. QA допомагає оцінити правильність протікання технологічних процесів на всіх етапах розробки програмного забезпечення для забезпечення його високої якості.

Крім тестування, QA також включає контроль якості, який відповідає за дотримання вимог, що пред'являються до системи. Якщо уявити всі терміни як вієрархії, то тестування виявиться частиною QC, а QC – частиною QA.


Таким чином, тестування полягає більшою мірою у перевірці працездатності програмного продукту та пошуку дефектів, у той час як для QA важливо також забезпечити дотримання стандартів та запобігти появі помилок та багів у ПЗ.

Узагальнимо:

Тестувальник працює з продуктом як з результатом (тобто він припускає, що саме ця версія ПО потрапить до рук кінцевого користувача).
QA-інженер працює з продуктом, який знаходиться в процесі створення (тобто ПЗ ще немає кінцевої версії).
Найчастіше професії тестувальника ПЗ і QA-інженера сприймаються тотожно, однак у завданнях, що виконуються фахівцями, існує ряд відмінностей.
👍1
Процес QA включає підготовку плану тестування, планування та проведення тестування, а також управління його результатами. Це допомагає визначити вимоги як розробки ПЗ, так перевірки його якості.

До обов'язків QA-інженера найчастіше входять:

➡️деталізація вимог до системи;
➡️підготовка тестів та сам процес тестування;
➡️пошук та фіксування дефектів;
➡️контроль виправлення багів;
➡️документування дефектів.
У роботі QA-інженера також дуже багато комунікації, у тому числі із замовником. Але не варто лякатися. Залежно від компанії та проекту частину обов'язків QA-інженер може розділяти з бізнес-аналітиками, технічними письменниками чи тестувальниками, тому одна з відмінних рис процесу QA – залучення всієї проектної команди.

Виходячи з цього, співвідношення роботи QA-інженера з планування та тестування може сильно відрізнятися.

Що потрібно знати про контроль якості?

У QA існує вужча спеціалізація – це контроль якості. Фахівці цієї сфери займаються аналізом результатів тестування та ліквідацією виявлених дефектів. Процедура QC дозволяє забезпечити відповідність програмного продукту певному набору критеріїв та вимог, встановлених на етапі забезпечення якості.

Порівняно з QA контроль якості потребує більше часу і може бути виконаний лише після етапу забезпечення якості.

Щоб процес контролю за якістю пройшов максимально ефективно, на проекті потрібно:

➡️встановити вимоги та стандарти;
➡️визначити перелік заходів щодо контролю якості;
➡️зібрати реальні дані та проаналізувати їх.
Якщо виявляється відхилення, його коригують, повторюють процедуру. QC потрібен, щоб переконатися, що всі внесені зміни дали результати.

Таким чином, основне завдання контролю якості – надавати інформацію про поточну якість програмного продукту на всіх етапах розробки.

Що тоді робить тестувальник?

Професія тестувальника передбачає складання технічної документації, розробку автотестів та їх прогін, виявлення та аналіз помилок у системі, розробку сценаріїв тестування, документування та багато іншого. Насправді так склалося, що посади тестувальника та QA-інженера стали синонімами. Навіть у документації для замовника тестувальники зазвичай записуються як QA Engineers, хоча, як ми вже зрозуміли, виконувані ними функції відрізняються.

Зараз у більшості випадків фахівці розпочинають свою кар'єру в ІТ саме з позиції junior-тестувальника. Це одна з найлегших і найшвидших точок входу, особливо після проходження курсів з тестування ПЗ. Саме junior-фахівці тестують розробку за готовими сценаріями, у той час як їхні middle- та senior-колеги відповідальні за розробку планів та тест-кейсів.

Підведемо підсумок

Незважаючи на всю різницю між такими поняттями, як забезпечення якості, контроль якості та тестування, вони мають спільну мету, а саме, випустити високоякісне ПЗ, яке зможе задовольнити потреби потенційного користувача.

Поки не винайшли спосіб створити ідеальне ПЗ, але винайшли методи, які дозволяють звести ймовірність помилок до мінімуму і запобігти їх появі. Саме такими методами і є забезпечення якості, контроль якості та тестування.
👍1
Що таке автоматизоване тестування та чому воно важливе для ІТ? У сучасному ІТ-світі автоматизоване тестування стає все більш актуальним і необхідним. Ось кілька причин, чому кожен, хто працює в ІТ, повинен звернути на нього увагу: 🔍 Що таке автоматизоване тестування? Це процес використання спеціального програмного забезпечення для автоматичного запуску тестів на продуктах, виявлення багів і перевірки якості коду. На відміну від ручного тестування, автоматизація дозволяє скоротити час та зусилля. 🚀 Чому це важливо? Швидкість і ефективність: Тести запускаються набагато швидше, що дозволяє командам реагувати на помилки ще до виходу продукту. Точність: Автоматизовані тести мінімізують людський фактор, що знижує ймовірність помилок. Економія ресурсів: Автоматизація дозволяє знизити витрати на тестування в довгостроковій перспективі, адже одноразово налаштовані тести можуть використовуватися багаторазово. Масштабованість: Автоматизовані тести легко інтегрувати в великі проєкти з безліччю функціональностей. 💻 Популярні інструменти для автоматизованого тестування Selenium: Один з найпоширеніших інструментів для веб-додатків. JUnit, TestNG: Використовується для тестування на Java. Cypress: Сучасний інструмент для швидкого тестування фронтенду. Appium: Для мобільних додатків. 📈 Як почати свій шлях в автоматизованому тестуванні? Вивчіть основи програмування. Переважно на Python, Java або JavaScript. Опануйте один із популярних інструментів. Оберіть той, що найкраще підходить для вашої сфери. Практика на реальних проєктах. Відточувати навички важливо не лише на теорії, а й на практичних задачах. 🔥 Чому автоматизація — це професія майбутнього? Ринок ІТ потребує спеціалістів, які здатні швидко адаптуватися та автоматизувати рутинні процеси. Це не тільки підвищує якість продукту, а й дозволяє компаніям бути конкурентними на ринку.