← Academy Blog

Марафон підготовки 2020

Стартував марафон підготовки до тестів - QA трек - Binary Studio Academy 2020! Щотижневі питання з відповідями та пояснення чекають на нашому блозі.

  • [QA] Була реалізована нова фіча: "Публікація постів у стрічці Facebook". У ході реалізації був задіяний код інтеграції з іншими соцмережами. Виберіть, що можна вважати регресійним тестуванням у даній ситуації.

    a) Публікація постів у стрічці Facebook
    b) Публікація постів в Twitter
    c) Публікація постів в Instagram
    d) Коментування поста
    e) Зчитування тексту поста
    f) Монетизація лайків

    Розгорнути правильну відповідь з поясненням

    Для відповіді на це запитання спочатку треба розібратися з тим, що таке регресійне тестування. Регресійний тип тестування пов'язаний зі змінами у програмі, для виявлення нових дефектів в незмінних областях програмного забезпечення. Під це визначення підпадают два варіанти - b) Публікація постів в Twitter та c) в Instagram. Перший варіант не підходить тому, що це новий функціонал.

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

    a) Нефункціональні вимоги
    b) Transition requirements
    c) Функціональні вимоги
    d) Solution requirements

    Розгорнути правильну відповідь з поясненням

    На перший погляд, може здатися, вимоги щодо перетворення даних можуть відноситься до вимог для нового рішення (Solution requirements), адже саме вони визначають умови для нього. Але такі вимоги не розкривають технічних деталей. Тому правильною відповіддю буде b) - Transition requirements, вони покривають перетворення даних (можливостей та інші) з таких, що існують в системі, на нові. Більше на тему вимог рекомендую подивитись на каналі Карла Вігерса - https://www.youtube.com/watch?v=u2GD4-7tHqc&list=PLA1dXT4tBFfcRj7WmtSbIMlhKHWWUuktk

  • [QA] У банківській системі існує наступна модель кредитування: при кредиті в 5000 гривень - кредит надається без відсотків, при наступному рефінансуванні зі збільшенням кредиту на суму до 2500 гривень - під 7%, при наступному рефінансуванні зі збільшенням на суму до 18000 гривень - під 23%, при рефінансуванні зі збільшенням на ще більшу суму - відсоток буде 60%. Визначте, який з наборів даних підходить під один клас еквівалентності.

    a) 4000 ₴ ; 6700 ₴ ; 20000 ₴ ;
    b) 5000 ₴ ; 6200 ₴; 7501 ₴;
    c) 7500 ₴; 18000 ₴; 25500 ₴;
    d) 8000 ₴; 20000 ₴; 25500 ₴;

    Розгорнути правильну відповідь з поясненням

    За умовами завдання можемо скласти наступні класи еквівалентності:

    1й клас: 0 - 5000 під 0%
    2й клас: 5001 - 7500 під 7%
    3й клас: 7501 - 25500 під 23%
    4й клас: 25501 - і все, що вище під 60%

    Виходить, що правильною відповіддю буде d), оскільки цей набір даних підпадає під лише один - третій клас.

  • [QA] Припустимо, що прийшов час релізу, і тобі треба виконати великий набір тест кейсів за дуже короткий час. Від чого б ти відштовхувався, щоб забезпечити якість релізу?

    a) Оцінка твого project manager’a / teamlead’a
    b) Пріоритет тест кейсів
    c) Уподобання клієнтів продукту
    d) Пройдеш усі тестові сценарії, навіть якщо треба овертаймити

    Розгорнути правильну відповідь з поясненням

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

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

    Отже, правильна відповідь – b) Пріоритет тест кейсів та c) Уподобання клієнтів продукту.

  • [QA] Дано систему бронювання і покупки залізничних квитків. Квиток може бути доступним, заброньованим, оплаченим повернутим або використаним. Якою технікою тест-дизайну краще скористатись у даному контексті?

    a) Класи еквівалентності
    b) Аналіз граничних значень
    c) Таблиця/діаграма переходів станів
    d) Таблиця рішень

    Розгорнути правильну відповідь з поясненням

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

  • [QA] Дано поле для введення ім'я користувача, у якого є обмеження: кількість символів повинна бути не менше 1 і не більше 15. Виберіть, які тестові дані перевіряють граничні значення за кількістю.

    a) -порожньо-
    b) a
    c) Ян
    d) Іван
    e) Іван Петрович
    f) Іван Васильович
    g) Іван Афанасійович


    Розгорнути правильну відповідь з поясненням

    Для виконання цього завдання потрібно згадати про аналіз граничних значень - перевірка поведінки системи на "межі" вхідних даних. У нашому випадку це 1 і 15. У теорії, до меж потрібно додавати 1 і -1, що дасть в результаті 6-ть перевірок, але це є надмірним. Тому, достатньо перевірити невалідні - 0, 16, та валідні - 1, 15. Таким чином правильними відподями будуть варіанти a, b, f, g

  • [QA] У специфікації вказано, що форма реєстрації нової соціальної мережі мусить витримувати навантаження у 10 одночасних з'єднань. В продакшені навантаження складало понад 100 одночасних підключень. Який QA процес допоміг би уникнути цієї проблеми?

    a) валідація
    b) верифікація
    c) оцінка ризиків
    d) тестування навантаження

    Розгорнути правильну відповідь з поясненням
    У вимогах чітко вказано, що система повинна витримувати навантаження у 10 паралельних підключень, і перевірка цієї вимоги є верифікацією (перевірка відповідності додатку прописаним вимогам). Можливо, існує думка, що тестування навантаження допомогло б виявити проблему ще до її появи, але таке тестування грунтувалося б на специфікації. Тому про 100 одночасних підключень ніхто б не думав. Тож правильна відповідь — валідація, перевірка відповідності додатку вимогам, що маються на увазі (всі решта, крім прописаних). Для цього необхідно думати поза документацією і розуміти домен продукту, що розробляється.