Уровень 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 - (модемное соединение по телефонной линии)
-
Network Over Bluetooth
-
Дополнительные параметры сети (DNS, шифрование и пр.)
Ожидаемый результат: подключение к сети, после перезагрузки подключение без дополнительных настроек
Тестирование взаимодействия с внешними устройствами
Проверить подключение и поиск драйверов дополнительных устройств:
-
Принтеры
-
Локальные
-
Сетевые по IP
-
Сетевые по SMB
-
-
Сканеры
-
Модемы
-
Bluetooth-мыши и клавиатуры
-
Внешние гарнитуры
Ожидаемый результат: работа дополнительных устройств в программе,



Внешний вид (GUI)
Проверить настройку параметров:
-
Стиль
-
Цвета
-
Значки
-
Шрифты
-
Окна
-
Заставка при запуске
-
Иконка в диспетчере задач, меню пуск, alt-tab
Ожидаемый результат: работа настраиваемых параметров, возможность восстановить настройки по умолчанию
Автозапуск
Проверить запуск программы добавив ее в пункте «Автозапуск»
Ожидаемый результат: корректный запуск программы во время загрузки KDE
Системные уведомления
Проверить настройку уведомлений системы:
-
Системные уведомления, ошибки - корректность и управляемость ошибками
-
Системные звуковые сигналы
Ожидаемый результат: работа всех уведомлений, корректная работа настроек уведомлений, корректная работа с установленными пользователем звуковыми сигналами
Личные данные
Проверить настройки личных данных, изменение пароля и данных пользователя:
-
Профиль пользователя
-
Пути к системным данным
Ожидаемый результат: работа настроек для каждого пользователя в отдельности

Клавиатура и мышь
Проверить устройства ввода клавиатура, мышь, джойстик и стандартные, глобальные комбинации клавиш:
-
Клавиатура
-
Мышь (общие, тема курсоров, дополнительные параметры, Управление курсором мыши с клавиатуры)
-
Джойстик
-
Стандартные комбинации клавиш
-
Глобальные комбинации клавиш
Ожидаемый результат: работа установленных параметров, определение подключенного джойстика и полноценная работа, корректное использование комбинаций клавиш

Это не глупые вопросы

Средства виртуализации
Если перед вами стоит задача протестировать десктопное приложение, то прежде всего вам понадобится установить его на несколько компьютеров с разными конфигурациями. Покупка
нескольких машин в этом случае не оптимальное решение, проще создать несколько виртуальных систем например VirtualBox.
-
Создайте несколько машин с конфигурациями которые сейчас считаются слабыми,
-
Несколько стандартных конфигураций.
-
Используйте разные версии операционных систем с разными наборами апдейтов, патчей и сервисных пакетов (service packs).
-
В случае Linux/Unix систем используйте разные версии ядра.
Задание этого уровня будет состоять из двух частей: навыков тестирования и администрирования. По ссылке вы можете скачать java программу, вам нужно ее будет протестировать, чтобы это сделать необходимо настроить java jdk систему которая запускает java приложения. Кроме этого, после того как вы отправите найденные баги, вам вышлют новую версию программы с исправленными багами. Ее также нужно будет проверить, но уже не на операционной системе Linux. Для этого вам понадобится скачать и установить программу виртуальных систем VirtualBox, установить на нее Linux, установить туда и тогда уже протестировать программу. Звучит весело, правда? Роботы предоставят тебе все нужные ссылки и помощь.
Cсылка на приложение для тестирования
https://drive.google.com/file/d/0B04XE92Y7D6UZUJUSnB2MmZmYms/view
Cкачать 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
Как пользоваться виртуальными машинами

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


Ты должен просмотреть дополнительные чек листы для глубокого тестирования desktop приложений. И не смей халтурить, это твое будущее!

Практика

Сегодня мы поиграем в баг фикс. Ты думал что у сил зла простые задание?! Злым быть тоже нужно учиться!
Задание простое - протестируй приложение калькулятор, и отправь список багов в гугл доке.
После этого, я скидываю приложение с исправленными багами и ты проверяешь баг фикс но уже в Linux.
Всего будет 3 оценки:
1) Тестирование приложения
2) Регрессионное тестирование и проверка исправлений
3) Запуск виртуальной машины. Для получени оценки нужно просто прислать скриншот калькулятора запущенного в Linux.
Приложение для тестирования
Форма ответа
Тест уровня
Для перехода на уровень 13, необходимо набрать минимум 13,8 баллов (60%) за задания уровня 12.