Без качественного тестирования невозможно разрабатывать и поддерживать крупный веб-сервис. На ранних этапах его развития часто можно обходиться только ручным тестированием по заданному тест-плану, но с появлением новых фич и увеличением количества тест-кейсов довольствоваться только им становится все сложнее и сложнее. В этой статье мы расскажем о том, как автоматизируем функциональное тестирование веб-интерфейса Яндекс.Почты с помощью Selenium WebDriver и Node.js.
157.41
Рейтинг
Тестирование IT-систем *
Тестируем все и вся
Сначала показывать
Порог рейтинга
Уровень сложности
Билд-светофор в офисе
5 мин
121KМеня долго не покидала идея визуализировать статусы билдов каким-нибудь простым и эффективным способом. Под катом я расскажу, как в моем офисе появился настоящий дорожный светофор, как он работает и зачем он вообще нужен.
+152
Юнит-тестирование для чайников
15 мин
1.1MТуториал
Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.
То что вы делаете, называется интеграционным тестированием. Современные приложения достаточно сложны и содержат множество зависимостей. Интеграционное тестирование проверяет, что несколько компонентов системы работают вместе правильно.
Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?
То что вы делаете, называется интеграционным тестированием. Современные приложения достаточно сложны и содержат множество зависимостей. Интеграционное тестирование проверяет, что несколько компонентов системы работают вместе правильно.
Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?
+56
Помните о реальном мире
2 мин
36KЗдравствуйте, хочу рассказать о проблеме с которой недавно столкнулась наша команда и о том как нам пришлось участвовать в подтасовке результатов лотереи.
+56
Истории
Думайте при разработке
16 мин
51KНедавно наткнулся на ошибку в Android приложении Яндекс.Метро. Если бы был чемпионкой мира по синхронному плаванию, то обязательно спросил бы: «Кто создавал программу „для галочки“? Кто работал „на отшибись“? Кто слабое звено?». Недоумение вызывала не сама ошибка, а то, что она попала в приложение и всё ещё не исправлена.
В данной статье опишу простые советы, которые помогут улучшить качество программ. Проиллюстировать их смогу с помощью ошибок приложения Яндекс.Метро. Надеюсь, что это окажется полезным как разработчикам и тестировщикам, так и руководителям проектов.
Начать хотелось бы с главы «Изучение знаменитых (и не очень знаменитых) ошибок» из книги «Наука отладки». Если ещё не читали, то рекомендую прочитать. В этой главе описаны «глупые» ошибки и стечения обстоятельств, которые стоили жизней и миллионы долларов. Все эти ошибки объединяло то, что выявляющий их тестовый сценарий было чрезвычайно сложно воспроизвести, в результате многие проверки были просто пропущены.
В статье же мы будем рассматривать распространённые приложения, которые протестировать может любой участник команды. Давайте проведём небольшой эксперимент. Если у вас нет Android устройства, то попросите минут на десять у коллег или друзей. Скачайте приложение Яндекс.Метро и попробуйте его протестировать. Интересует актуальная на текущий момент версия 1.63 от 02.11.2012 сборка 159 (на Google Play стоит дата 21.01.2013). Для корректности проверки предлагаю снять галочку «Автообновление» в настройках Google Play.
Проверять будем основную функцию: нахождение маршрута между двумя станциями метрополитена Москвы. Посмотрите на карту метро. Подумайте, что следовало бы протестировать в приложении, что могло бы быть неправильно реализовано. Явной ошибкой будет сообщение «Маршруты не найдены», что некорректно, поскольку нет изолированных станций.
Эта же ошибка может проявить себя не так явно:
В данной статье опишу простые советы, которые помогут улучшить качество программ. Проиллюстировать их смогу с помощью ошибок приложения Яндекс.Метро. Надеюсь, что это окажется полезным как разработчикам и тестировщикам, так и руководителям проектов.
Начать хотелось бы с главы «Изучение знаменитых (и не очень знаменитых) ошибок» из книги «Наука отладки». Если ещё не читали, то рекомендую прочитать. В этой главе описаны «глупые» ошибки и стечения обстоятельств, которые стоили жизней и миллионы долларов. Все эти ошибки объединяло то, что выявляющий их тестовый сценарий было чрезвычайно сложно воспроизвести, в результате многие проверки были просто пропущены.
В статье же мы будем рассматривать распространённые приложения, которые протестировать может любой участник команды. Давайте проведём небольшой эксперимент. Если у вас нет Android устройства, то попросите минут на десять у коллег или друзей. Скачайте приложение Яндекс.Метро и попробуйте его протестировать. Интересует актуальная на текущий момент версия 1.63 от 02.11.2012 сборка 159 (на Google Play стоит дата 21.01.2013). Для корректности проверки предлагаю снять галочку «Автообновление» в настройках Google Play.
Проверять будем основную функцию: нахождение маршрута между двумя станциями метрополитена Москвы. Посмотрите на карту метро. Подумайте, что следовало бы протестировать в приложении, что могло бы быть неправильно реализовано. Явной ошибкой будет сообщение «Маршруты не найдены», что некорректно, поскольку нет изолированных станций.
Эта же ошибка может проявить себя не так явно:
небольшая подсказка
Программа отображает маршруты между двумя станциям, но наиболее очевидный (и короткий) не находит.
+86
29 февраля 2013 года в РЖД
1 мин
23KСегодня обнаружил на сайте ОАО «РЖД» весьма занятную ошибку:
Да, в феврале 2013 года у них 29 (!) дней. Хуже всего что наличие дополнительного дня «смещает» все остальные месяцы по дням недели на один день вперёд.
Интересно, что творится с сервисом заказов и с АСУ «Экспресс-3» в целом. Если через пару дней не поправят, то люди, заказывающие билеты на 1 марта будут неприятно удивлены.
Об ошибке написал на ticket@rzd.ru.
UPD: С ticket@rzd.ru довольно оперативно пришел ответ — "Информация передана в ответственное подразделение. Благодарим Вас за проявленную бдительность."
UPD 2 by zotov: на самом деле дни недели при заказе правильные, ошибка, очевидно, в виджете календаря.
UPD 3: Ошибку исправили!
Да, в феврале 2013 года у них 29 (!) дней. Хуже всего что наличие дополнительного дня «смещает» все остальные месяцы по дням недели на один день вперёд.
Интересно, что творится с сервисом заказов и с АСУ «Экспресс-3» в целом. Если через пару дней не поправят, то люди, заказывающие билеты на 1 марта будут неприятно удивлены.
Об ошибке написал на ticket@rzd.ru.
UPD: С ticket@rzd.ru довольно оперативно пришел ответ — "Информация передана в ответственное подразделение. Благодарим Вас за проявленную бдительность."
UPD 2 by zotov: на самом деле дни недели при заказе правильные, ошибка, очевидно, в виджете календаря.
UPD 3: Ошибку исправили!
+62
Смартпот: самый простой способ выращивать растения
2 мин
77KКартинки для привлечения внимания — смартпот выращивает помидоры черри на столе.
Смартпот или умный цветочный горшок, с помощью этого приспособления любой человек, который хочет вырастить у себя то или иное растение сможет достичь успеха.
Внутри: что это такое, как устроено.
+55
«Призраки» на мониторах, техподдержка Apple и тесты
2 мин
95KОдин из американских пользователей Apple купил новый Macbook Pro с дисплеем Retina, но столкнулся с проблемой, которая уже многократно упоминалась на форумах Apple: так называемые «призраки», то есть остаточный эффект от предыдущего изображения на экране.
Например, на фотографии показан серый дисплей, на котором до этого три минуты «горела» фотография Фила Шиллера, Тима Кука и Джонатана Айва.
Например, на фотографии показан серый дисплей, на котором до этого три минуты «горела» фотография Фила Шиллера, Тима Кука и Джонатана Айва.
+80
В календаре Android 4.2 отсутствует декабрь
1 мин
58KВ стандартном менеджере контактов Android 4.2 отсутствует месяц декабрь. За ноябрём 2012 года сразу идёт январь 2013. В предыдущих версиях календарь работает нормально. Баг зарегистрирован в багтрекере Android под номером 39692. В обсуждении бага высказано предположение, что нелепая ошибка вызвана классической путаницей с индексами — декабрь будет 12-м месяцем, если считать с 1, и 11-м, если нумерация начинается с 0. Возможно, в одном из компонентов календаря кто-то в очередной раз наступил на старые как мир грабли.
+106
Тестирование — это не поиск ошибок!
5 мин
152KМногие считают, что тестирование ПО — это поиск ошибок. Иногда я говорю тестировщикам: «не старайся найти как можно больше ошибок, старайся пропустить как можно меньше!», и меня не понимают: а в чём разница?
А разница огромная! В этой статье я хочу рассказать, в чём она заключается, и какие инструменты необходимо использовать для настоящего полезного тестирования.
А разница огромная! В этой статье я хочу рассказать, в чём она заключается, и какие инструменты необходимо использовать для настоящего полезного тестирования.
+136
Полезные метрики для оценки проектов
7 мин
46KВ октябре я уже рассказывала о способах оценки тестирования, все страждующие и сочувствующие могут посмотреть запись здесь. А сегодня мне захотелось затронуть тему метрик проекта в целом, причём метрик не «длягалочных», а метрик «пользуприносящих» и «проектыулучшающих». Именно поэтому, вместо сухих формул и перечня метрик, я расскажу 3 истории из опыта о внедрении и использовании строго определённых метрик в строго определённых условиях — и о результатах, которые с их помощью удалось достичь.
Есть проект. Ваш любимый, родной, которому вы желаете расти и процветать.
Но как вы оцените его процветание, если нет критериев этого самого процветания?
Как вы сможете оперативно среагировать на проблемы до того, как они стали неисправимыми, если не будете использовать «датчик грядущей Ж»?
Как вы поймёте, что именно следует улучшать, если вам неизвестен источник проблем?
Если вкратце, то метрики нужны, чтобы эффективно управлять проектом: диагностировать проблемы, локализовывать их, исправлять и проверять, правда ли выбранные вами способы решения проблемы помогают.
Я поделюсь разными типами метрик, каждые из которых проверены и принесли немалую пользу. Каждый раз, внедряя их, любой команде очень лень и некомфортно: приходится сохранять дополнительную информацию, что-то там мерять, разводить бюрократию. Но когда мы впервые получаем от какой-либо метрики пользу, на смену лени приходят дисциплина и глубокое понимание важности той или иной метрики.
А если не приходят, значит метрику можно смело выбросить ;)
Зачем что-либо измерять?
Есть проект. Ваш любимый, родной, которому вы желаете расти и процветать.
Но как вы оцените его процветание, если нет критериев этого самого процветания?
Как вы сможете оперативно среагировать на проблемы до того, как они стали неисправимыми, если не будете использовать «датчик грядущей Ж»?
Как вы поймёте, что именно следует улучшать, если вам неизвестен источник проблем?
Если вкратце, то метрики нужны, чтобы эффективно управлять проектом: диагностировать проблемы, локализовывать их, исправлять и проверять, правда ли выбранные вами способы решения проблемы помогают.
Я поделюсь разными типами метрик, каждые из которых проверены и принесли немалую пользу. Каждый раз, внедряя их, любой команде очень лень и некомфортно: приходится сохранять дополнительную информацию, что-то там мерять, разводить бюрократию. Но когда мы впервые получаем от какой-либо метрики пользу, на смену лени приходят дисциплина и глубокое понимание важности той или иной метрики.
А если не приходят, значит метрику можно смело выбросить ;)
+69
Заблуждения программистов об именах
3 мин
86KПеревод
Две недели назад на Хабре публиковался перевод «Заблуждения программистов о времени», который по своей структуре и стилю основан на этом классическом тексте Патрика Макензи, опубликованном два года назад. Поскольку заметка о времени была крайне благоприятно воспринята аудиторией, то, очевидно, имеет смысл перевести и исходную статью об именах и фамилиях.
Джон Грэхем-Камминг (John Graham-Cumming) сегодня жаловался в своём блоге, что компьютерная система, с которой он работал, не приняла его фамилию из-за недопустимых символов. Конечно, там нет недопустимых символов, потому что любой способ, как человек представляет себя, — по определению — является подходящим идентификатором. Джон выразил сильную досаду насчёт данной ситуации, и он имеет полное право, потому что имя — суть нашей индивидуальности, практически по определению.
Джон Грэхем-Камминг (John Graham-Cumming) сегодня жаловался в своём блоге, что компьютерная система, с которой он работал, не приняла его фамилию из-за недопустимых символов. Конечно, там нет недопустимых символов, потому что любой способ, как человек представляет себя, — по определению — является подходящим идентификатором. Джон выразил сильную досаду насчёт данной ситуации, и он имеет полное право, потому что имя — суть нашей индивидуальности, практически по определению.
+62
Заблуждения программистов относительно времени
3 мин
88KПеревод
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.
Я постоянно удивлялся, как много ошибок в коде и тестов, и приложений происходят от неверного понимания и заблуждений насчёт времени. Под этим я имею в виду и компьютерный способ обработки времени, и фундаментальные ошибки, происходящие от несовершенной структуры календаря — летнее время тут лишь вершина айсберга.
На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
Я постоянно удивлялся, как много ошибок в коде и тестов, и приложений происходят от неверного понимания и заблуждений насчёт времени. Под этим я имею в виду и компьютерный способ обработки времени, и фундаментальные ошибки, происходящие от несовершенной структуры календаря — летнее время тут лишь вершина айсберга.
На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
+195
Ближайшие события
Firebird Conf: конференция для разработчиков и администраторов СУБД Firebird
6 июня
09:00 – 20:00
Москва
Bomberman Online и хабраэффект — 450 игроков на одной карте. Отчёт и детали игрового движка
4 мин
33KКак и обещали в топике-анонсе нашей игры, выкладываем отчёт о хабраэффекте и детали игрового движка.
+152
Разработка ПО авионики
14 мин
78KВ основе разработки ПО авионики лежит основополагающий стандарт RTCA\DO-178B. Несмотря на первый взгляд на его отстранённость от непосредственной рутины программиста, он описывает весь процесс разработки и выдвигает требования к подобному ПО. Тем не менее, в данной статье речь пойдёт и о том, как всё происходит на самом деле, на основе личного опыта разработки систем контроля и управления полётом, систем посадки и пр. для самолётов и вертолётов.
+215
Fake S3 для офлайновой разработки и экономии денег
1 мин
3.5KКёртис Спенсер (Curtis Spencer) с коллегами из компании Spool разработали легковесный сервер Fake S3, который ведёт себя как настоящий Amazon S3 и помогает тестировать проекты, не гоняя данные в облако и не тратя деньги на трафик. К тому же, для тестирования Fake S3 надёжнее, потому что работает локально. Спенсер говорит, что благодаря Fake S3 они сэкономили около $1000 за последний месяц на одной только оплате трафика.
Установка
Для запуска сервера нужно указать хост и порт
Установка
gem install fakes3
Для запуска сервера нужно указать хост и порт
fakes3 -r /mnt/fakes3_root -p 4567
+70
Почему я вернулся в Microsoft?
6 мин
9.9KПеревод
Когда 3 февраля Джеймс Виттакер написал в Твиттере, что он уходит из Google, у всех возник миллион вопросов. Потом он написал пост о том, почему он так поступил (оригинал и перевод). И вот теперь Джеймс объясняет, почему выбрал именно Microsoft.
Похоже, что намеки на то, что переходы из Google в Microsoft не так уж редки, не послужили достаточным объяснением, поэтому вот вам более развесистый отчет. Для тех, кому неинтересны подробности в деталях, приведу короткую версию. Я думаю, что происходящее в мобильном и веб-ориентированном мире — неправильно, и со временем становится все более неправильным. Пользователи в опасности: они теряют контроль над персональными данными и над своей сетевой индивидуальностью. Независимые разработчики вынуждены стучаться в закрытые двери в попытках двигать веб вперед. Решение этих проблем потребует больших запасов интеллектуальной собственности, технических и информационных возможностей и дружелюбного отношения к производителям ПО. Мне кажется, что Microsoft — одна из лучших компаний, способных возглавить такое направление.
Да, я знаю, ваши комменты говорят, что вы сомневаетесь в этом, поэтому вот вам длинная версия.
Большие компании — это не круто, так почему вы ушли из одной в другую?
Похоже, что намеки на то, что переходы из Google в Microsoft не так уж редки, не послужили достаточным объяснением, поэтому вот вам более развесистый отчет. Для тех, кому неинтересны подробности в деталях, приведу короткую версию. Я думаю, что происходящее в мобильном и веб-ориентированном мире — неправильно, и со временем становится все более неправильным. Пользователи в опасности: они теряют контроль над персональными данными и над своей сетевой индивидуальностью. Независимые разработчики вынуждены стучаться в закрытые двери в попытках двигать веб вперед. Решение этих проблем потребует больших запасов интеллектуальной собственности, технических и информационных возможностей и дружелюбного отношения к производителям ПО. Мне кажется, что Microsoft — одна из лучших компаний, способных возглавить такое направление.
Да, я знаю, ваши комменты говорят, что вы сомневаетесь в этом, поэтому вот вам длинная версия.
Большие компании — это не круто, так почему вы ушли из одной в другую?
+85
Tsung: Нагрузочное тестирование Web-приложений
3 мин
42KTsung — это распределенная система нагрузочного тестирования, написанная на Erlang'е. Заявлена поддержка HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and XMPP/Jabber. В этой статье я опишу как протестировать обычный web сайт на нагрузку.
+79
ReactOS: Операция PI
1 мин
2.3K Продолжается полномасштабная подготовка знакового релиза 0.3.14 (0.PI) операционной системы ReactOS. В связи с чем разработчики обращаются к сообществу с просьбой принять участие в тестировании свежих билдов.
Координационный центр операции располагается на форуме разработчиков.
В багтрекере проекта накопилось серьёзное количество неподтверждённых или имеющих некорректное описание багов. Необходимо провести тестирование свежих билдов и по результатам подтвердить или опровергнуть соответствующие баги.
Подробности и список багов. На данный момент их осталось менее пятидесяти.
Координационный центр операции располагается на форуме разработчиков.
Что требует внимания тестеров:
I Работа на реальном железе
- сетевые карты
- USB мыши и клавиатуры
- управление питанием — включение выключение через «пуск» и по аппаратной кнопке.
II Неподтвержденные баги
В багтрекере проекта накопилось серьёзное количество неподтверждённых или имеющих некорректное описание багов. Необходимо провести тестирование свежих билдов и по результатам подтвердить или опровергнуть соответствующие баги.
Подробности и список багов. На данный момент их осталось менее пятидесяти.
+51
C профессиональным праздником!
1 мин
1.6KЕсли верить русской википедии, то сегодня день тестировщика.
+60
Вклад авторов
alizar 1017.4NatalyaRukol 856.0phillennium 775.0Molechka 587.0m1rko 569.6jnechaeva 432.0curiousGeorge 407.0olegchir 398.0Peter_Zhizhin 376.0
Работа
Тестировщик программного обеспечения
59
вакансий