Автоматизация тестирования «по-китайски»

    Наверняка многие слышали анекдоты про китайцев. Кто не слышал — приведу пару типичных примеров:
    Китайский противотанковый взвод численностью 3000 чел. состоит из 3 отделений по 1000 чел. Задача отделения — разобрать танк противника на части, пока он не выстрелил.

    или вот такой:
    Сегодня в провинции Шаньдунь сдана в эксплуатацию новая мощная электростанция. Принцип действия: три миллиона китайцев бегают по эбонитовому полу в шерстяных носках.

    Однако, сказка ложь, да в ней намёк. Некоторое время тому назад мне попались на глаза две интересные заметки:
    • Китайская поисковая система Baidu запустила сервис голосового поиска. Конечно же китайцы не стали заморачиваться разработкой технологии распознавания речи. Всё проще — на том конце сидят специально обученные операторы, которые принимают запрос, «распознают» его, выполняют поиск и сообщают результаты заказчику либо по SMS, либо голосом.
    • Распознавание каптчей. Распознавание текста конечно задача не настолько сложная, как распознавание речи. Однако на каптчах текст специально деформирован и замусорен, чтобы усложнить распознавание. При этом способы замусоривания придумывать и реализовывать проще, чем способы распознавания. Однако каптчи всё таки делаются для того, чтобы человек мог распознать текст, а робот не мог. Следовательно, надо просто нанять много низкооплачиваемых китайцев (ну или индусов), которые будут сидеть и целый день заниматься распознаванием.

    Такой способ организации работы получил название краудсорсинга, и спектр применения его становится всё шире. Наш мир превращается в огромный распределённый супербиокомпьютер, в котором роль процессоров выполняют люди. Это очень хорошие процессоры, они могут решать такие задачи, которые обычным компьютерам пока не под силу, а роль традиционных информационных систем сводится к тому, чтобы обеспечить связь между этими человеко-процессорами.

    И вот с того времени меня неотступно стала терзать мысль, что автоматизация некоторых видов тестирования — это вполне подходящая задача для такого супербиокомпьютера. Функциональное тестирование, конечно, не получится так автоматизировать, потому что хорошего распараллеливания сложной задачи на много «процессоров» добиться непросто. Но есть же нагрузочное и конфигурационное тестирование, там распараллеливание происходит естественным образом.

    Да, есть такие сервисы!

    uTest предлагает услуги по функциональному и нагрузочному тестированию приложений. А появившийся чуть позже Litmus нацелен на конфигурационное тестирование веб-сайтов.

    Я не знаю, как в действительности работает Litmus, но вот как мне это представляется. Поступает на тестирование сайт, он отправляется на первый, ведущий, человеко-процессор, который в каком-то одном браузере, скажем, IE 7, проходит по сайту, строит и записывает цепочки, сохраняет эталоонные скриншоты. После этого сайт раздаётся одновременно на много других процессоров, каждый из которых проходит те же самые цепочки и сравнивает наблюдаемый результат с эталонными скриншотами. При этом в полной мере задействуется способность человека к нечёткому сравнению картинок, ведь абсолютно точного попиксельного соответствия отображения страниц в разных браузерах добиться не удастся, да это и не нужно. Ну и в конце результаты собираются со всех процессоров и клиент получает общий отчёт. Вуаля! Супербиокомпьютер в действии.

    P.S. Кросспост
    Поделиться публикацией
    Комментарии 8
      –1
      цена/качество будет не очень и качества 100% не будет — человеческий фактор.
      в инутсрии мобильных устройств, тоже есть тестирование, тестируют руками — нажимают кнопки и смотрят в экран, потом смотрят в todo list и сравнивают результаты по описанию или картинки.

      примерно в 2000м году придумали сделать автоматическое тестирование, чтобы компьютер коннектился к сотовому етелфону, ходил по меню, делал действия, анализировал результаты и выносил вердикт.
      круто! за 30 мин. можно прогнать 300 тестов с различными условиями, человек неделю будет сидеть, да еще ошибется где-нибудь от усталости и зарпалту ему надо платить.
      казалось ы одни преимущества.
      однако разработка тестов не успевает за разработкой фич, а еще часто требования не известны до конца чтобы напрограммировать тесты, а с человеком решить можно, проще это.
      в итоге остались и автоматические тесты и ручное тестирование.
      ручное тестирование — потому что бывают сложноописываемые или долгоописываемые тесты, и оптимальнее посадить инженера.
      автоматическое тестирование — потому что за ночь можно прогнать столько «общих» тестов, сколкьо инженер за год не сделает.
        0
        Кстати, да, я пока не видел краудсорсинг-сервиса по тестированию мобильных приложений на разных устройствах, но думаю, что должен появиться такой. Потому что содержать и поддерживать огромный парк мобильных телефонов для тестирования весьма непросто и недёшево. А так — набираются добровольцы-тестировщики с разными телефонами, приходит заказ, раздаём всем, а потом сводим результаты и выдаём заказчику отчёт.
          0
          хм… задумалсо ;)
            0
            это значит на сторону отдавать неопубликованные функциональности, которые только планируются к релизу.
            это значит потерять вау эффект, т.к. информация распространится очень быстро, это значит конкуренты узнают о нововведениях раньше времени.
          0
          Мне один знакомый рассказывал, как в кетае тестируют телевизоры на крупных фабриках. Выделено специальное помещение, где сидят десятки человек перед телевизором и постоянно щёлкают каналы, при возникновении проблем они зовут специалиста. Процесс тестирование происходит круглосуточно, на территории завода были построены бараки для тестеров.
            0
            Касательно Litmus. По-моему проще эту деятельность автоматизировать, разве нет? Одни и те же странички запускаются в различных браузерах и делаются скриншоты. Да и такая ручная работа — жесть как утомительна.
              0
              Да, снимать скриншоты можно автоматически. Но сравнивать автоматически не получается. Некоторые попытки в этом направлении пытается сделать Adobe своим новым инструментом BrowserLab, но он тоже лишь помогает дизайнеру выявить отличия, а принимать решение о том, насколько они существенны или несущественны пока всё равно должен человек.
                0
                Бесспорно! Исследования в разработке ИИ пока не продвинулись столь далеко и решает человек. Но продукт возможно будет интересен.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое