Тестирование Desktop программ — Личный Опыт

Я пришел в тестирование desktop программ после 2-х лет тестирования web и мобильных приложений. В целом многие знания пригодились и я смог их применить в практике.

Принцип тестирования сохранился. Основы одинаковы. Параметры на входе и выходе, ожидаемый результат и актуальный, поиск расхождений, конечно все это применимо и в тестировании desktop приложений.

Основное различие в тестировании desktop и вэб

В тестировании вэб сервисов основной клиент это браузер. Их подразделяют на мобильные/desktop и другие. А в тестировании desktop приложений главным клиентом выступает операционная система.

Для нашего продукта две основные ветки ОС это Windows и Windows Server. Актуальные версии Windows — XP(SP1,SP2,SP3),Windows Vista, Windows 7, Windows 8, Windows 10. Серверные — Windows Server 2003, Windows Sever 2008, Windows Server 2010.

С чего же начать тестирование desktop приложений

Я начинал со знакомства с HELP — мануалом продукта. Для меня это была новая сфера и мне вдвойне повезло, что был огромный запас документации, доступный для новичка.

Давайте рассмотрим тест-кейсы на примере всем известного Ms Office, также доступного как облачный сервис Office 360.

Системные требования

Компьютер и процессорПК: процессор x86 или x64 с тактовой частотой от 1 ГГЦ и поддержкой набора инструкций SSE2.

Mac: процессор Intel

Память ПК: 2 ГБ ОЗУ
Mac: 4 ГБ ОЗУ
Жесткий дискПК: 3,0 ГБ свободного пространства на жестком диске

Mac: 6 ГБ свободного пространства на жестком диске формата HFS+ (также известного как Mac OS Extended или HFS Plus)

ЭкранПК: разрешение экрана 1280 x 800
Mac: разрешение экрана 1280 x 800
Графическая подсистемаПК: чтобы использовать аппаратное ускорение графики, необходима графическая карта с поддержкой DirectX10.
Операционная системаПК: Windows 10, Windows 8.1, Windows 8, Windows 7 с пакетом обновления 1, Windows 10 Server, Windows Server 2012 R2, Windows Server 2012 или Windows Server 2008 R2

Mac: Mac OS X 10.10

Для оптимальной работы используйте последнюю версию любой операционной системы.

БраузерТекущая или предыдущая версия Internet Explorer, текущая версия Microsoft Edge, Safari, Chrome или Firefox.

Тестирование по системным требованиям

Процессор. Минимальный набор инструкций SSE2. Если ваш процессор не поддерживает эти требования, то программа должна выдать сообщение о невозможности установки. В настоящее время тяжело найти процессоры которые не поддерживают SSE2, есть всего несколько таких типов 2002-2004 года выпуска, по сути это раритет. Сейчас для нашего продукта это не критично, поэтому мы пропускаем такой тест-кейс. Но не забывайте про распространенные процессоры AMD, которые не поддерживают такой тип инструкций. В таких случаях программа будет «крешиться». Если Windows успеет перехватить процесс и выдать ошибку, то есть шанс отловить этот баг.

За мое время работы в компании, был случай когда после релиза стало поступать много жалоб от клиентов. Но отловить баг было очень проблематично, потому что не нашлось подходящей конфигурации железа. Выловить удалось только программистам при помощи тщательного code review. В релиз был включен переход от старой библиотеки к новой, и поэтому минимальные требования к железу повысились. Как следствие, пользователи со старым железом не смогли обновить приложение.

После багфикса, в коде уже учитывались все минимальные требования. Также мы обновили описание продукта, добавив минимальные рекомендуемые характеристики.

Оперативная память компьютера. Проводим положительные и отрицательные тест кейсы. Cмотрим как программа будет действовать при <= 2ГБ ПЗУ, >= 2ГБ ПЗУ. Зачастую я обхожусь виртуальными образами OracleBox.

Мой sanity тест:

  • Поднимаем виртуалку с 2гб озу.
  • Запускаем программу. Все ок.
  • Затем уменьшаем в настройках виртуалки до 1гб , 512мб и далее
  • Запускаем программу. Бинго!

Жесткий диск. Аналогично ПЗУ. Можно добавить негативный тест, когда у вас нет места на диске и вы устанавливаете программу и/или уже запускаете. Еще один кейс, когда программа работает и записывает на диск. Приложение должно корректно обрабатывать ситуацию, когда места для записи не хватает.

Дисплей. Основные кейсы это различные разрешения, от минимального до 4К. Такие мониторы стали попадаться намного чаще. Особое внимание также нужно обратить на сохранение окна приложения. Попробуйте свернуть/развернуть/восстановить/ресайзить и закрыть приложение. Рассматривайте ситуацию с 2 дисплеями, таких тоже сейчас не мало. В этих случаях программа должна запоминать размеры и параметры дисплея, на котором была запущена.

Графическая подсистема. Смотрим минимальные требования и запускаем. Современные компьютеры/ноутбуки даже со встроенной видеокартой могут запускать большинство приложений. На моем проекте не требуется больших ресурсов, поэтому мы редко проводим регрессионное тестирование с большим скоупом видеокарт.

Тестирование по операционным системам

Всегда обращайте внимание на разрядность операционки. Она имеет большое значение. Если ваша программа связана с математическими вычислениями, то на ОС с разной разрядностью, результаты могут быть совершенно разными. Всегда тестируйте приложения с учетом обновлений Microsoft. У них принято часто латать дыры. А частые обновления операционки могут навредить вашей программе.

В серверных и обычных версиях Windows есть разграничение прав доступа. Администратор, гость и другие. Важно учитывать все эти роли и иметь возможность установки программы даже в режиме гостя. Хотя гость и не имеет прав записи в programm files, он должен иметь свой каталог temp и устанавливать программу в эту папку.

Негативные тесты тоже возможны. Например, попробуйте установить вашу программу в папку без права на запись или чтение.

Браузер. Здесь ему тоже нашлось место. Очень часто приложения используют движок нативного браузера Windows, в нашем случае IE. Так же как Android приложения могут быть построены на Webview. В Windows 10 используется MS Edge, Windows 8.1 IE 11, в  Windows XP SP3  максимальная версия это IE8. Если минимальные требования к вашему продукту это IE9+, то пользователи с Windows XP будут недовольны.

В моем проекте в основном используется blackbox тестирование, у нас нет доступа к коду, а какого-то распространенного дебагера (как firebug) здесь нет. Но не стоит забывать про автоматизацию, про нее расскажу в следующей статье. Буду рад ответить на ваши вопросы!

1 Комментарий

  1. Андрей Ким

    10.06.2016 в 08:58

    Большое спасибо! Исправлено.

Добавить комментарий