Привіт! Сьогодні ми говоримо про нефункціональні види тестування. Нагадую про те, що нефункціональні види тестування це ті, які відповідають на питання, як працює програма. І почнемо ми із питання, як швидко. Поговоримо про перформанс, тобто про роботу з системою при навантаженні.
Одразу ж хочу зауважити, що всі оці типи, які ви бачите на екрані, про які ми зараз будемо говорити, вони перевіряють систему при певному навантаженні. Що означає при навантаженні? Уявімо собі, що ви розробляли якийсь сайт, і на цей сайт зайшло 50 тисяч людей одночасно. Це і є велике навантаження. Отже, Load це перевірка поведінки системи при навантаженні.
Тобто, як програма буде себе поводити, якщо на неї зайде N користувачів, наприклад, 50 тисяч. Stress це тип тестування, який перевіряє, на якому навантаженні відключиться система. Тобто, у нас є… програма або сайт, те, що ми зараз називаємо системою, і ми закидуємо туди дуже багато користувачів, які одночасно роблять якісь дії.
Закидуємо 10 тисяч, закидуємо 20, 30, 40, 50, і от ми закидуємо стільки користувачів, польки програма не впаде. І коли вона впаде, то ми кажемо, окей, наприклад, 78 тисяч користувачів це точка злому нашої програми. Це було стрес-тестування.
Далі рекавері. Після стресу завжди йде відновлення. Коли система падає... то ми можемо перевірити її здатність до відновлення. Що це означає?
Ми з тестуванням поклали систему, і тепер ми перевіряємо, чи зможе ця система встати, або які дії треба зробити для того, щоб система відновилася. І чи добре вона відновиться, чи нічого не втратиться, ніякі дані не втратяться і так далі. Наступний тип тестування Volume.
Це перевірка швидкості програми при зміні розмірів бази даних. Кожна програма використовує певну базу даних, які тримаються дані. І, відповідно, якщо ми збільшимо розміри, то ми можемо перевірити, наскільки швидше чи повільніше почала працювати програма. Або якщо ми зменшимо розмір бази даних, ми також можемо перевірити це саме. Наступний тип це скала білітів.
Це можливість збільшити навантаження, тобто кількість користувачів, які сидять на програмі, систему, розмір бази даних і так далі. і перевірити, що система при цьому функціонує нормально. Наступний тип тестування Endurance або Soak, це дві різні назви одного і того самого типу, перевіряють, як система поводиться протягом постійного використання, протягом довгого періоду часу, але за великого навантаження. По перформанс-типам тестування це все, і переходимо до UI-них типів тестування. User Interface Абревіатура UI це зовнішній інтерфейс, картинка, яку ми бачимо.
Отже, тип тестування юзер-інтерфейсу перевіряє, що інтерфейс це так називається юзер-френлі, тобто, що він приємний окувача. Що в нас завантажилися стилі, і сайт виглядає так, як на цьому скріншоті, а не чорний текст на білому фоні. Що всі зображення, всі кнопочки, всі тексти… Вони відцентровані і вони знаходяться в тому місці, де вони повинні знаходитися.
Уявіть собі, що зараз ці три тексти Selected Web Mobile Video, Web Design і App Design знаходилися не так, як зараз вони знаходяться, а просто справа наліво, як книжка. Це би було зовсім не гарно. І це би було не юзерфренлі.
Відповідно, юзерінтерфейс перевіряє, що всі елементи знаходяться на потрібному місці, вони мають потрібний шрифт, потрібний колір, потрібний фон, що всі зображення знаходяться там, де треба, і що всі вони успішно завантажились. UX перекладається як User Experience. Це те саме майже ще юзабіліті, тому переходимо одразу до юзабіліті. Юзабіліті це зручність використання програми.
Тобто те саме, ми дивимося на картинки, кнопочки та текстики, але тут ми перевіряємо, чи зручно нам, чи інтуїтивно, чи зрозуміло, що тут відбувається і так далі. Наприклад, ми звикли, що коли ми залогінимося у відом систему, то вгорі справа зазвичай буде наш профіль, куди ми можемо натиснути, покупатися в налаштування, змінити собі ім'я, аватарку і так далі. І з юзабіліті точки зору ми вже звикли, що ця кнопка знаходиться вгорі справа.
Якщо її поставити внизу зліва, то ми просто не зрозуміємо, що це таке, чому вона там знаходиться і як з ним працювати. І юзабіліті. Його проводять не тестувальники, його проводять кінцеві користувачі, тобто люди, які будуть користуватися програмою. Зазвичай збираються цілі такі, можна сказати, мітинги, ну, загалом цілі події, в яких збирають декілька.
представників кінцевого користувача і пропонують їм провести юзабіліці тестування. Їм дають програму, ставлять цинкундомір і протягом 1 години дають користуватися програмою. Після того їм дають невеликі тести, які користувачі проходять, і відповідно ця програма перевіряється на те, чи вивчили, чи змогли лернабіліці вивчити користувачі цю програму.
Чи вони запам'ятали те, що там відбувалося, деяка кнопка, деяка сторінка, меморабіліці, запам'ятовування. Чи задоволені користувачі цієї програми? Satisfaction задоволені.
Чи допускали користувачі помилки при користуванні програмою? І які саме? Це перевірка на ерори. І ці кінцеві користувачі проходять тест, і розробники вже бачать, що добре запам'яталося, що погано, що потрібно зробити більш таким яскравим, більш запам'ятовуваним. Що принесло задоволення, а що ні.
Де користувач робив помилки? а де не робив, і відповідно місця, де користувач робив помилки, потрібно виправити. По юзер-інтерфейс типам тестування це все, рухаємося далі.
Тепер поговоримо про типи тестування, пов'язані із системою. Це три типи тестування. Поговоримо про перших два.
Configuration та Compatibility це знов-таки дві назви одного виду тестування, і вони татожні. Це перевірка, як програма працює на різних системах. Що це означає?
Наприклад, в нас є веб-сайт. І ми можемо перевірити, що він однаково добре працює на Google Chrome, на Mozilla Firefox, на Edge, на Safari. Інтернет-експлорер вже не рахуємо, він вже все.
Або ми можемо перевірити, що програма однаково добре працює на Windows, на iOS, на Android, можливо, та на Linux. Портабіліті це дуже схожий тип тестування, але він перевіряє, наскільки просто змінити систему. Наприклад, операційну систему і програма буде працювати.
Все ще добре. Тобто ми перевіряємо, що ми змогли змінити систему, і програма все ще добре працює. Переходимо до наступних типів. Це типи тестування, пов'язані із локалізацією. Їх є всього три.
Localization, Internationalization та Globalization. Якщо бачите, тут біля назв стоїть OR L10N, а нижче OR I18N, що означають ці страшні цифри та букви. Це коли людям дуже ліньки писати localization, вони порахували, що між L та N знаходиться 10 символів, і вони такі, ну скажу першу букву, скільки символів всередині та останню букву.
І отак от виникло L10N та I11N. Отже, localization це перевірка коректності та якості перекладу та адаптації до національних особливостей. Розкажу на прикладі.
Якщо в нас є інтернет-магазин, в якому є три різні локалі, дві, Українська та англійська. Ми переключаємося на англійську локаль і ми повинні перевірити, що в англійській локалі немає українського тексту, тобто, що всі слова веб-сайту або програми перекладені. Але при цьому тут є виняток. Виняток це ці дані, які заносять продавці. Тобто, це не є частиною сайту.
Якщо в нас є інтернет-магазин і продавці занесли назву товару українською без перекладу, то це не буде багом сайту, тому що це не баг сайту, це помилка тестових даних. Тому вони можуть не перекладатися. Але всі слова, які являються частиною веб-сайту або програми, вони повинні перекладатися.
Тепер про адаптацію до національних особливостей. Переклад це зрозуміло, що текст перекладається з української на англійську. Що такі ці національні особливості? Це, наприклад, читання тексту справа наліво або зліво направо. Ми з вами читаємо український англійський текст зліво направо.
Але, наприклад, в Ізраїлі читають текст справа наліво, і, якщо я не помиляюсь, в Арабських Еміратах. Або в Японії читають текст зверху вниз. І, відповідно, це також є національною особливостю, тому що весь юзер-інтерфейс сайту потрібно переробити під оцю особливість.
Або ще один вид такої особливості, наприклад, американські формати дати та часу. У нас час вказується, наприклад, 19.00. В Америці, якщо ви скажете, that time is 19.00, то на вас подивляться і скажуть, я не розумію, в Америці цей час говориться як 7 пі ем, тобто 7 після полудня, або 7 ранку, 7 ей ем, 7 до полудня. Відповідно, вони просто не знають, що таке 19.00, і ми повинні перевірити, що коли ми переключаємося на англійську локаль, то й відповідно час показується як 7 пі ем, а не 19.00.
Те саме з форматом дати. Ми з вами говоримо, що 1 грудня це 1.12. Але в Америці 1 грудня це 12 перше.
Це потрібно враховувати, проводячи локалізаційне тестування. Отже, локалізаційне це перевірка, наскільки коректно та якісно перекладено текст, або наскільки коректно враховані ці національні особливості, наприклад, Формат дати та часу і так далі. Internationalization це перевірка на готовність продукту працювати з цими національними особливостями. Тобто, як поведе себе програма, якщо ми зараз переключимося з ліва на право на справа на ліво. Тобто, якщо ми зараз будемо дивитися сайт справа на ліво з арабським форматом.
Або, як поведе себе програма, якщо ми включимо англійську локаль. Або як поведе себе програма, якщо ми включимо японську мову, чи покаже вона нам японські символи, чи вона покаже нам пусті квадратики. І Globalization.
Globalization це практично те саме, що Internationalization, але не по одній конкретній націоналі ми перевіряємо, а перевіряємо по всіх. Тобто ми перевіряємо, що сайт або програма написані так, що якщо ми переключимо локаль з української на будь-яку іншу, незалежно японська, чи арабська, чи англійська, то воно буде працювати для всіх локалей. От такі три типи тестування. З нефункціональних ми більше вчити не будемо, але давайте я тепер покажу, які конкретно нам треба записати і вивчити, а які можна просто собі один раз подивитися, в принципі, мати уявлення і не вчити на пам'ять.
Отже, load та stress нам потрібно вивчити. Їх питають. Так само, як слово performance.
Performance це... Небо група, яка об'єднує усі ці типи тестування. Ці три слова performance load та stress потрібно вивчити.
Далі, тут потрібно вивчити всі, що не є підпунктами, тобто, що таке user interface тестування, що таке user experience тестування та що таке usability тестування. Але оці підпункти learnability, memorability і так далі вас питати не будуть. Якщо ви їх скажете, буде хорошим плюсом. Далі, типи, пов'язані із системою.
Із них… Потрібно добре знати configuration або compatibility, одну із цих назв, знати і розуміти, що це таке, і могти відповісти на інтерв'ю. І по локалізації потрібно знати різницю між localization та internationalization. Globalization це вже для більш просунутих, більш досвідчених користувачів або тестувальників.
На цьому все. Дякую вам за увагу та перегляд. Сподіваюсь, вам було зрозуміло, і якщо у вас є якісь запитання, то будь ласка, задавайте їх в коментарях.
Дякую за коментарі більше 4 слів, за лайки та підписки. До зустрічі в наступному відео.