Еще одна моя статья из журнала Tester's Life (выпуска Август"
2013)
Немного предыстории
Не так давно в нашей компании было принято решение интегрировать имеющийся проект в разные социальные сети и вопрос о кросс-платформенности и кросс-браузерности появился в виде огромной горы на моем пути, а я оказалась перед ней без экипировки альпиниста.
Ниже я расскажу, какие были проблемы, как они решались, какие применялись инструменты, методы и подходы, как велся подсчет количества тестов, как нам удалось сократить их с почти 6000 до менее 450, и на что вам стоит обращать внимание при проведении такого тестирования.
Сразу замечу, что у нас было 3 приемочных теста:
1. проверить корректность установки приложения.
2. корректность входа в приложение.
3. минимальный пул тестов – открытие интерфейсов, которые для нас критичны
Быстрое разочарование...
Попробовав несколько инструментов для тестирования кросс-браузерности, я весьма быстро разочаровалась и выделила основные проблемы:
проблема 1.
тестируем социальную сеть
Будьте готовы к тому, что 99% существующих инструментов для тестирования кросс-браузерности – тестируют только web-приложения. Проще говоря, вы увидите только скрин, и в лучшем случае это будет скрин вашего приложения, а не социальной сети.
А изначально ведь стоит задача проверить корректность установки и запуска самого приложения в социальной сети при использовании браузеров, клиентов, операционных систем...
проблема 2.
Всем, наверное, знакомо приложение IE Tester, вот и я решила попробовать его использовать, к тому же необходимо было проверить корректность запуска проекта Империя в
Facebook в браузере Internet Explorer 6.
Запустила IE Tester, выбрала версию IE 6,
в которой нужно было открыть наше приложение в
Facebook. Но в итоге я получила квадрат а-ля Малевич, только белого цвета с непонятными циферками. Не только нашегоприложения не увидела, а и сам
Facebook не открылся.
Через несколько недель после этого появились статьи о том, что Facebook отказывается от поддержки браузера IE 6.
Я решила не отчаиваться, и пошла на поиски других бесплатных приложений.
LunASCAPE 6
Этот инструмент нельзя назвать традиционным средством для кросс-браузерного тестирования, он больше полезен для программистов и дизайнеров, да и весьма сложен в применении.
Вердикт
– для необходимого нам теста – не подходит.
SAuCELABS
В принципе абы как подходит для тестирования. Абы как потому что работает он ооооочень медленно.
Вердикт
– времени нет на долгую обработку одного запроса.
SuPER PREVIEW
Можно проверить работу приложения в интерактивном режиме просмотра страницы. Неплохой инструмент в целом, но немного виснет периодически.
Вердикт
– подх одит частично
просвещение
По результатам знакомства с инструментами, пришло понимание – ни один из них не даст гарантии, что я не протестирую его работу или социальную сеть, вместо своего приложения.
Вопрос: «Нужно ли тратить средства на покупку какого-то платного приложения?» – я отвергла сразу же. Но если вы уверены, что данное приложение сделает все, что вам необходимо и за нужное время – приобретайте. Особенно если знаете, что такие тесты вам понадобятся еще ни единожды.
Итак, мною было принято решение – тестировать вручную.
Порывшись по бескрайним просторам интернета, выявив множество браузеров, их версий, операционных систем, тьму версий flash-плееров, и связав этот хаос в одно целое
– я даже не смогла подсчитать, сколько времени уйдет на все проверки!
Совет:
соберите статистику браузеров и их версий, операционных систем и т.п.
определите критичность тестов.
продумайте методы, с помощью которых будет проводиться тестирование.
определите риски, которые могут быть или которые можно допустить
Начинаем рисковать
В данной ситуации без рисков не обойтись. Первый риск, который я на себя взяла – отбросила малоизвестные браузеры, которые в приличном количестве выдал поиск
Google, и наименее используемые операционные системы.
Теперь уже можно было подсчитать количество тестов:
• Берем известные браузеры и все их версии.
• Также берем все наиболее используемые операционные системы и все их подвиды: Windows 7 (Basic,Home и пр.),
Windows Vista (все ее разновидности), Windows XP (Home, Professional и т.д.),
Linux, Mac OS.
• Учитываем три социальные сети, в которых нам надо проводить проверки.
• Все это перемножаем между собой и на количество необходимых проверок по тест-кейсу.
Например: Браузер Mozilla Firefox – 19 версий, перемножаем на все виды ОС
Windows перемножаем еще на 2 (32 и 64 бит). Затем делаем тоже самое с
Windows Vista. Все полученные цифры складываем.
По итогу у нас получилось около 6 тысяч тест-кейсов, которые необходимо пройти.
Было понятно, что такое тестирование растянется на месяцы. А их у меня не было. Был от силы 1 день. А если честно смотреть на поставленные сроки 4-6 часов максимум.
Следующий шаг заключался в сборе и анализе статистики использования браузеров и ОС нашими пользователями (по внутренним данным проекта). По результатам был составлен топ-5 браузеров и топ-3 операционных систем
Операционные системы:
·
Windows7
·
Windows XP
·
Mac OS
Браузеры:
Браузеры:
o Mozilla
Firefox.
o Google
Chrome.
o Internet
Explorer.
o Opera.
o Safari.
Количество тестов уменьшилось в 2 раза и сос тавило около 3 тысяч тестов. Но даже если 1 тест = 1 минута, то 3 000 минут≈ 6 дней. А 6 дней на тестирование у нас нет
Совет:для отбора приоритетных версий используйте:
• различную статистику в интернете
• данные из статистики блогов (например,в Blogger–е).
если у вас нет личного блога,обратитесь к друзьям
• показатели из вашего внутреннего баг-трекера от пользователей, и так далее
уменьшаем в
20 раз!
Главная задача
–
выдать максимальный результат за
4 часа, что означает
– нам нужно сократить количество уже сокращенных тестов практически в
20 раз!
Как?!?
Как мы видим из предыдущих расчетов,
в каждом браузере было очень много версий,
изобилием версий отличаются и операционные системы,
и флеш-плеер.
И вот тут снова прибегаем к рискам.
А именно–
отбрасываем
«лишние»
версии везде,
где только можем при помощи классов эквивалентности и граничных значений.
операционные системы:
Операционная
система Windows 7 Basic от Windows 7 Home вряд ли имеет какие-либо технические
различия, которые позволят выявить какой-то баг, еще сомнительней, что это
будет критичный баг. Поэтому для тестирования берем только 1 версию (лучше
наиболее полную) операционной системы Windows 7.
По
аналогии поступаем и с остальными ОС
версии браузеров:
• Самая
популярная версия.
• Самая
последняя версия.
• Версия,
на которой тестировали в предыдущий раз
(если
тестировали).
Например:
Mozilla Firefox версии 10 /
19 / 3,6
версии FLASH
•Версия,
на которой тестировали прошлый раз (на случай, если пользователь не обновился).
•Версия,
которая является последней на момент необходимости тестирования.
•Промежуточная
версия (если была). Данная версия берется на случай если пользователь обновил
следующую версию, которую мы не проверяли, но не
обновился
еще до последней.Обычно получается 2 версии, т.к. промежуточная
версия
Flash для тестирования берется редко
алгоритм тестирования
посмотрим
на примере нашего приложения.
После
определения тестового окружения мы получили следующий набор:
• Социальные
сети: Вконтакте, Одноклассники, Facebook.
• Операционные
системы: Windows 7, Windows XP, Mac OS.
• По 3 версии каждого браузера: Mozilla Firefoх, Google Chrome, Internet Explorer, Opera, Safari.
• 2 версии
клиента Adobe Flash.
подход к тестированию:
Берем
операционную систему Windows 7 (как самую популярную) + Flash последний (так
как его вы еще не проверяли) и ставим минимальные версии всех браузеров (это
для дальнейшего удобства).
1. Заходим
с каждого браузера в каждую социальную сеть. Ставим наше приложение себе на
аккаунт и пытаемся в него зайти (по необходимости можно проверить самые
критичные части функционала).
2. Далее
обновляем каждый браузер до следующей нужной версии и повторяем первый шаг.
3. И так
до тех пор, пока не выполним все проверки
подведем итоги

кросс-браузерности/кросс-платформенности,
это количество, которое реально проверить за несколько часов.
Число
может быть меньше или больше в зависимости от количества выполняемых
непосредственно шагов тест-кейса помимо требований к окружению. Если вы
совместите это с парным тестированием, то сократите время еще в 2 + раз.
Данная
схема и метод тестирования для наших проектов оказался идеально верным,
быстрым, и удобным. С максимальным предоставлением информации
совет
•не брезгуйте никакой статистикой.
отслеживайте, собирайте,
используйте.
•не бойтесь допускать
риски. два пользователя, которые не смогут использовать приложение– не
критично.
•не делайте лишних тестов.
•тестируйте свое
приложение, а не окружающую среду.
4 комментария :
Спасибо что поделились полной историей вашего успеха от начала до конца.
Сразу в голову пришло несколько вещей, которые вами не озвучены, но которые можно проиллюстрировать на вашем примере:
- выделяйте классы эквивалентности как можно раньше, обращайтесь к разработчикам чтобы они подтверждали, дополняли ваши предположения.
- про это: "Поэтому для тестирования берем только 1 версию (лучше наиболее полную) " -
не надо брать "максимальные версии" - реальный домашний пользователь скорей будет/должен иметь ограниченную версию. Другой аспект этого, кстати, то, что не надо использовать "административные акаунты" и аккаунты наделённые множественными ролями внутри самого приложения, так как это не реализуется для реальных пользователей и может скрывать важные ошибки.
- не стоит ожидать что простые инструменты будут выполнять именно вашу специфическую задачу. очень мало в мире производства программного обеспечения таких задач, которые целиком автоматизируются простыми хорошо поддерживаемыми инструментами. Отсюда вывод, либо вам нужно знаить и множество интегрируемых друг с другом инструментов, каждый из которых хорошо решает элементарные задачи, либо нужно брать большой сложный инструмент и разбираться в нём и настраивать.
- из предыдущего пункта следует заметить, что начиная решать вышеуказанную задачу раньше вы имеете больше шансов найти и приспособить для себя подходящие инструменты. иначе нужно идти и решать поставленную задачу на уровне искусства.
Поздравляю вас, что с последней задачей вы хорошо справились, благодаря правильной подготовительной работе (анализу), который в общем и целом, похоже, был проведёт на должном уровне.
Ещё раз спасибо за статью.
Николай
ЗЫ. возможно было бы полезно если б вы объяснили поподробней ваши выводы и рекомендации. Почему парное тестирование ускоряет, а не замедляет текущее тестирование. Как вы разделяли приложение и окружающую среду (зачем вы вообще брали разные ОС за исключением того что нет такой ОС на которой работали бы все ваши браузеры?)
Привет. Спасибо за отзыв.
брали полную версию исходя из полученной статистики. ( по статистике наши пользователи используют в 87% именно их)
Про админ. аки согласна. Есть в них тайное зло)
Парное тестирование ускорит в двух случаях:
1. если вы разделите между собой тесты. Я тестирую на Мак Ос, Вася на Винде, Петя на шарманке)
2. Если вы тетсируете - а баги за вас записывает кто-то другой ( сокращается время на оформление багов)
Зачем брали ОС - ОС брали потому что игра была не только в социалках, но и в браузерной версии + клиентская. Был риск что из-за ранее установки под клиент (платформа) это может оказать влияние на социальную версию.
Это уже кросс-платформенность.
Приложение должно запускаться в любой своей версии. Поэтоу брали платформы- флеш и браузеры. Все ингредиенты, которые могли повлиять. + как вы заметили, уникальность системы + браузер. Браузер фаерфокс на МакОс это другой браузер , нежели на виндовс. Исходя из этих факторов составляли тесты.
Интересно узнать результаты вашей проверки, например в % соотношении ОС и кол-ва багов, или браузер - количество багов в процентах )
У нас всего было около 40 багов.
Около 10 в Виндовс Виста + Сафари.
(сейчас сафари на виндовс нет смысла проверять, ибо он не поддерживается более)
3 бага были в Хроме. (Виндовс хр) 4 в опере.(виндовс хп и виндовс 7 премиум)
Это из критичных.
Остальные по мелочи везде.
Наименьше багов было в фаерфоксе виндовс 7 и хп.
Отправить комментарий