Рівень 12. Тестування Desktop-застосунків
Рівень 12
Тестування desktop-застосунків
Після цієї битви Ендор буде наш!
Desktop Application
Десктопні застосунки – це програми, логіка роботи яких вимагає наявності оператора, які містять у собі всю повну функціональність і здатні працювати окремо на будь-якому комп'ютері ізольовано від інших застосунків. Microsoft Word, Excel, Блокнот, гра Маріо – усе це приклади десктопних застосунків.
Особливості тестування
Ера комп'ютерних технологій почалася саме з десктопних застосунків. Задовго до появи потужних веб-серверів, здатних узяти на себе основне обчислювальне навантаження, світом IT безроздільно володіли desktop-застосунки. Відтоді багато води спливло, і зараз дедалі більше розробок ведеться для web та мобільних застосунків. Проте десктопні застосунки досі цілком актуальні, і за свою кар'єру мені не раз доводилося їх тестувати.
Важливо уточнити, що функціональне тестування desktop-застосунків нічим не відрізняється від інших видів і, навпаки, є найкласичнішим. Тоді стає цікаво, чому ми розглядаємо його лише на 13 рівні. Винні складні нюанси конфігураційного тестування. Desktop-програми відрізняються сильною залежністю від операційної системи. Як наслідок, необхідно вміти створювати безліч віртуальних систем для тестування та мати навички адміністрування робочих станцій Windows, macOS, Linux. Це й інше ми розглянемо в докладному чек-листі для desktop ПЗ.
Інсталяційне тестування
Безперечно, найбільша відмінність десктопного тестування – це тестування інсталяції. Вам потрібно буде перевірити коректність установлення/оновлення/деінсталяції програми. Подібне можна зустріти хіба що в мобільному тестуванні. Це доволі складний розділ, адже існує велика кількість чинників, які можуть вплинути на установлення. Наприклад, чи є користувач адміністратором.
Smoke testing
Якщо застосунок запускається на всіх заявлених конфігураціях робочого середовища та здатен виконати кілька основних функцій, то smoke testing можна вважати пройденим
UI Testing
Графічний інтерфейс вимагає підвищеного використання ресурсів комп'ютера та, часто, багатопотоковості від застосунку, що робить перевірку витоків пам'яті та тупикових станів програми обов'язковою (наприклад, моменти, коли один потік програми не може отримати доступ до ресурсів, заблокованих іншим потоком, а той своєю чергою перебуває в нескінченному циклі)

Етапи тестування десктопного застосунку
Перш ніж ти ознайомишся з цим чек-листом, хочу тебе заспокоїти: тобі не обов'язково все з нього робити на практиці й шукати всі потрібні для цього пристрої та системи. Достатньо просто знати, «з чим їдять» десктопні програми і до чого бути готовим. Скажу більше: навряд чи тобі вдасться все це запам'ятати, зате ти завжди будеш готовий, прокинувшись уночі, почати тестувати свій застосунок!
1. Інсталяція десктопного застосунку
1.1 Мова
- Перевірка всіх мов інсталятора
- Вибір різних розкладок клавіатури
Очікуваний результат: робота системи з обраною мовою
1.2 Підготовка дисків
- Видалити всі розділи й створити розділи автоматично
- Використати нерозмічений простір
- Підготувати розділи вручну
- Установлення на RAID (віртуальний розділ диска)
- Чи запускається програма після установлення
- Налаштування розташування програми у файловій системі за замовчуванням і за вибором користувача
- Чи додано ярлики на робочий стіл і запис у меню Пуск Windows
Очікуваний результат: система повинна запуститися
1.3 Налаштування мережі
- Встановити параметри мережі (інтернет, локальна мережа, мережу не підключено, немає мережевого адаптера)
Очікуваний результат: після установлення, під час входу в систему, мережа має працювати без додаткових налаштувань
Налаштування графічної системи
- Установлення з відеодрайвером / без драйверів
- Вибір роздільної здатності монітора
- Перевірка роздільної здатності
Очікуваний результат: успішна робота з драйвером, обробка випадку без драйверів, коректна робота за всіх роздільних здатностей
Системний користувач
- Під час роботи з обмеженим користувачем
- Під час роботи з адміністратором
- Установлення для всіх користувачів ОС
- Перевірка запису в системний реєстр після установлення
Очікуваний результат: функціонал працює й доступний лише обраному користувачеві
2. Налаштування роботи програми
Оновлення встановленої програми (зі збереженням налаштувань і користувацьких даних)
Перевірити:
- Запуск застосунку для оновлення
- Перевірка оновлень
- Оновлення застосунку
- Джерела оновлень
Очікуваний результат: виведення інформації про оновлення, оновлення програми
Автентифікація
Провести перевірку автентифікації за допомогою:
- Пароля на локальній системі
- SMS-пароля
- Active Directory
- Апаратного ключа
- Відбитка пальця
Провести перевірку складності пароля та логіна
Очікуваний результат: вхід у програму під час використання кожного пункту
Клавіатура
Перевірити налаштування клавіатури:
- Розкладки клавіатури
- Перемикання розкладок
- Вибір моделі клавіатури
Очікуваний результат: використання розкладок клавіатури в системі та застосунках
Тестування доступу застосунку до мережі
Перевірити налаштування мережі, роботу з різними видами підключення:
(Лише якщо програма виходить в інтернет)
- Загальні параметри: змінити ім'я хоста, DNS
- Ethernet-підключення (кабель)
- WiFi
- GPRS
- Dial-up – (модемне з'єднання телефонною лінією)
- PPTP
- PPPoE
- VPN
- Network Over Bluetooth
- Проксі-сервер
- Додаткові параметри мережі (DNS, шифрування тощо)
Очікуваний результат: підключення до мережі, після перезавантаження підключення без додаткових налаштувань
Тестування взаємодії із зовнішніми пристроями
Перевірити підключення та пошук драйверів додаткових пристроїв:
- Принтери Локальні Мережеві за IP Мережеві за SMB
- Сканери
- Модеми
- Bluetooth-миші та клавіатури
- Зовнішні гарнітури
Очікуваний результат: робота додаткових пристроїв у програмі,
Зовнішній вигляд (GUI)
Перевірити налаштування параметрів:
- Стиль
- Кольори
- Значки
- Шрифти
- Вікна
- Заставка під час запуску
- Іконка в диспетчері завдань, меню Пуск, alt-tab
Очікуваний результат: робота параметрів, що налаштовуються, можливість відновити налаштування за замовчуванням
Автозапуск
Перевірити запуск програми, додавши її до пункту «Автозапуск»
Очікуваний результат: коректний запуск програми під час завантаження KDE
Системні сповіщення
Перевірити налаштування сповіщень системи:
- Системні сповіщення, помилки – коректність і керованість помилками
- Системні звукові сигнали
Очікуваний результат: робота всіх сповіщень, коректна робота налаштувань сповіщень, коректна робота з установленими користувачем звуковими сигналами
Особисті дані
Перевірити налаштування особистих даних, зміну пароля та даних користувача:
- Профіль користувача
- Шляхи до системних даних
Очікуваний результат: робота налаштувань для кожного користувача окремо

Клавіатура та миша
Перевірити пристрої введення: клавіатуру, мишу, джойстик, а також стандартні та глобальні комбінації клавіш:
- Клавіатура
- Миша (загальні, тема курсорів, додаткові параметри, керування курсором миші з клавіатури)
- Джойстик
- Стандартні комбінації клавіш
- Глобальні комбінації клавіш
Очікуваний результат: робота встановлених параметрів, визначення підключеного джойстика та повноцінна робота, коректне використання комбінацій клавіш
Робота з накопичувачами
Перевірити роботу з накопичувачами даних:
- Розділи на тому самому диску
- Зовнішні жорсткі диски
- Флеш-диски
- Зовнішні USB-диски. Можливість повноцінної роботи з USB-дисками, відформатованими під ntfs, одразу, без додаткового ручного монтування (використання за замовчуванням ntfs-3g)
- CD
- DVD
- Фотоапарати
- Відеокамери
- Карти SD
- Карти MMC
- Карти CompactFlash
- Карти MemoryStick
Очікуваний результат: робота з розділами на диску, робота з додатковими дисками та пристроями зберігання даних (флеш-диски, USB-диски, CD/DVD-диски, карти пам'яті), автоматичне визначення додаткових пристроїв після підключення без додаткових налаштувань.

Ти маєш переглянути додаткові чек-листи для глибокого тестування desktop-застосунків. І не смій халтурити, це твоє майбутнє!
Це не дурні запитання
1. Чи можна сказати, що тестувати десктопний застосунок простіше, ніж веб-застосунок? Чому?
2. Що є найпроблемнішою стороною десктопних застосунків під час тестування?
3. Чи називатиметься десктопним застосунком програма, яка звертається до бази даних для збереження результатів роботи? Чому?
4. Коли слід виконувати перевірку зручності використання десктопного застосунку?
5. Як би ви розподілили завдання в команді, яка тестує десктопний застосунок? Як би виконувалося тестування?
Засоби віртуалізації
Якщо перед вами стоїть завдання протестувати десктопний застосунок, то насамперед вам знадобиться встановити його на кілька комп'ютерів із різними конфігураціями. Купівля
кількох машин у цьому разі – не оптимальне рішення, простіше створити кілька віртуальних систем, наприклад у VirtualBox.
- Створіть кілька машин із конфігураціями, які нині вважаються слабкими,
- Кілька стандартних конфігурацій.
- Використовуйте різні версії операційних систем із різними наборами апдейтів, патчів і сервісних пакетів (service packs).
- У разі Linux/Unix-систем використовуйте різні версії ядра.
Завдання цього рівня складатиметься з двох частин: навичок тестування й адміністрування. За посиланням ви можете завантажити java-програму, вам потрібно буде її протестувати, а щоб це зробити, необхідно налаштувати java jdk – систему, яка запускає java-застосунки. Крім того, після того як ви надішлете знайдені баги, вам вишлють нову версію програми з виправленими багами. Її також потрібно буде перевірити, але вже на операційній системі Linux. Для цього вам знадобиться завантажити й установити програму віртуальних систем VirtualBox, встановити на неї Linux, встановити туди програму й лише тоді протестувати її. Звучить весело, правда? Роботи надаватимуть тобі всі потрібні посилання та допомогу.
Посилання на застосунок для тестування
https://drive.google.com/file/d/0B04XE92Y7D6UZUJUSnB2MmZmYms/view
Завантажити java для ПК
https://www.java.com/ru/download/
Завантаження віртуальної машини
https://www.virtualbox.org/wiki/Downloads
Завантаження дистрибутива Linux
http://www.linuxmint.com/edition.php?id=171
Як установити java на Linux
http://compizomania.blogspot.com/2015/01/java-8-ubuntu-1410linux-mint-171.html
Щоб дізнатися, чи встановлено в тебе java і яка її версія, набери в консолі java -version
Як користуватися віртуальними машинами
Практика

Сьогодні ми пограємо в баг-фікс. Ти думав, що в сил зла прості завдання?! Бути злим теж треба вчитися!
Завдання просте: протестуй застосунок «калькулятор» і надішли список багів у гугл-доці.
Після цього я скидаю застосунок із виправленими багами, і ти перевіряєш баг-фікс, але вже в Linux.
Усього буде 3 оцінки:
1) Тестування застосунку
2) Регресійне тестування та перевірка виправлень
3) Запуск віртуальної машини. Щоб отримати оцінку, потрібно просто надіслати скриншот калькулятора, запущеного в Linux.
Застосунок для тестування
Форма відповіді
Тест рівня









