675

ТОП-10 термінів в автоматизованому тестуванні

Професія QA-інженера ділиться на дві підгалузі — мануальне та автоматизоване тестування. І якщо в мануальному все більш-менш зрозуміло, то з автоматичним у початківців часто виникають питання, отже ми вирішили зосередитись саме на цьому напрямку. Щоб вам було ще зрозуміліше, кожен термін ми спробували проілюструвати на реальних прикладах. А тепер до справи!

Реліз-кандидат, або англійською — Release Candidate (RC)

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

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

Ворота якості чи Quality gate

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

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

Трасування стеку чи Stack trace

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

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

Журнал або Log

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

Критична зміна або Breaking change

Доволі цікавий термін, який часто розуміється неправильно. Справа в тому, що з технічної точки зору «критичними» вважаються зміни, здатні повністю порушити систему автотестів, а от для кінцевого користувача вони можуть виглядати зовсім незначними. Наприклад, в одних проектах критичною зміною стане суттєва перебудова архітектури коду, а в інших — зміна кольору кнопки «Купити» з жовтого на зелений.

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

Регресивне тестування або Regression testing

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

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

Нефункціональні вимоги (Non-functional requirements)

Non-functional requirements, або скорочено NFR — це критерії, за якими проводиться оцінка автоматичних тестів. Тут маються на увазі такі критичні показники, як швидкість, відсоток покриття коду, кількість тощо.

Стратегія відгалуження (Branch Strategy)

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

Для розуміння принципу роботи Branch Strategy, її можно порівняти із деревом: кожна «гілка» коду містить виконання конкретної задачі — для цього вона відгалужується від основної, а після завершення робот зливається з нею знов.

Рефакторинг коду (Code Refactoring)

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

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

До того ж, рефакторинг піднімає настрій в команді, адже всім приємніше користуватись новими та ефективними інструментами, аніж «заржавілими» старими.

Стабілізація коду (Code Stabilization)

Це ще один різновид вдосконалення програмного коду, який здебільшого полягає у виявленні та виправленні певних несправностей, та не пов’язаний з суттєвими змінами. При цьому результат виконання коду після коригування повинен залишатись стабільним — тобто таким самим як і раніше.

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

Висновки

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