Андрей Светлов
Март 1, 2011 17:38:34
Профит? Питоновская надстройка, хорошо интегрированная с nose. Впрочем, рекламировать не буду - сам не использовал.
У нас техпроцесс чуть другой был. Практика показала, что полностью переложить всю работу на QA не выходит.
Ferroman
Март 1, 2011 18:24:04
Ну, мы nose не используем, так что пока не актуально.
Вот и у нас практика то же показывает. Кроме того регрешен тестирование разбухло по времени настолько, что срочно надо что-то с этим делать. Вот и пытаемся наших QA пересадить на рельсы автоматизированного тестирования. И желательно поменьше привлекая в это дело разработчиков.
Я думаю что проблема с javascript решится самими javascript-юнит тестами.
Андрей Светлов
Март 1, 2011 18:49:17
Возможно, немного позже я попытаюсь изложить наиболее удачную схему построения тестов из тех, с которыми сталкивался на работе.
Мне кажется, что юниттесты для javascript - замечательная вещь. Только, как и с такими же тестами для Питона, одним модульным тестированием не отделаться.
Ferroman
Март 1, 2011 19:42:26
Очень интересно.
Ты знаешь, я вот пообщался на эту тему с
Pawel Lipinski, так вот товарищ говорит что у них QA нету в принципе, и обходятся они только юнит-тестированием, и только совсем недавно начали писать тесты на GUI. По мне, так это blade running, но вот, бывает и такое.
Андрей Светлов
Март 1, 2011 20:14:27
Нуу. Это - очень круто, если только юниттесты. Проект под названием Питон так и поступает.
Но даже для моей маленькой тулзы для блога дешевле и проще было написать функциональные, чем покрывать все юниттестированием. При том что как бы исключительно я веду разработку (непонятно, кому она еще потребуется - но привык делать “правильно”) - выбор однозначен: функциональные тесты нужны.
Они реально сокращают мои усилия по созданию тестового окружения - покрываю модульными только “библиотечную” часть.
Для “большой” работы отличие гораздо значительней. Команда QA необходима, если имеем конечное приложение, а не либу. И ребята из QA должны тестировать именно приложение. Они знают предметную область - но не всегда владеют Питоном. И уж точно они не настолько осведомленные программисты, чтобы читать код и модульные тесты, выявляя несоответствия.
С регрессинонками поступали так: часть QA объявлялась regression и переносилась в отдельную папку. Разработчик *обязан* выполнить regression и те QA, которые непосредственно относятся к теме. Это - долго и напрягает. Порядка получаса. После чего шел commit в trunk. При использовании DVCS немного проще - делать только перед push/merge.
Полная картинка была сложнее, конечно. Много мелких вопросов между тестерами и разработчиками, ежедневный и еженедельный внутренние релизы, отдельная головная боль с официальными релизами… Регулярная сборка… Уххх!
Ferroman
Март 2, 2011 21:33:28
Он вообще о продукте для корп. сектора говорил. А питон практически и есть сплошная бибилиотека :)
У меня проблема так не стоит - я в TDD стиле программирую.
По поводу QA - так и есть. Но у них тоже есть regression тестирование и оно у нас очень много забирает (вручную) так что будут переезжать на автоматизированное тестирование. Вот я и думаю на них большую часть acceptance перекинуть (пусть seleniumom и тестируют), оно им ближе. У себя высокий уровень только по необходимости делать. (что-то я повторяюсь)
Я вот по поводу “объявлялось regression” не понял — это как? И зачем тесты отдельно переносить? Или имелись в виду функциональные, типа как c selenium?
Мы перед отправкой изменений запускаем все тесты, и собственно push делаем только если все отработают. Долго, конечно, но спасает то, что обычно такое происходит только когда готова реализация User Story.
Андрей Светлов
Март 2, 2011 21:49:05
QA - только автоматический. Тесты с ручным выполнением просто отсутствовали.
Есть story. На нее QA уже накидало тестов. Они должны пройти, чтобы story была закрыта. Запускает их программист. Если в тестах лажа - садятся с тестером и вместе правят.
Еще есть старые тесты, которые относятся, например, к этой форме. Их вообще-то тоже нужно запускать перед фиксацией.
А еще существует немного regression. Это - тоже функциональные, “по верхам” проходящиеся по всей программе. В детали лезть не нужно - слишком долго выполнять. Но самую базовую функциональность regression проверяют. И эти regression тоже нужно запускать перед отправкой изменений.
И, конечно модульные - но они как раз личное дело программистов и тестеров эта часть не касается.
Итого: должны отработать
- модульные - все
- регрессионные - все
- QA - в части, непосредственно задачи касающейся.
Запускает их программист лично.
Тестеры запускают QA потом опять, как часть процесса автосборки - чтобы все QA успели провериться до утра.
И тестеры пишут свои тесты, правят уже готовые, принимают участие в составлении/проверки story, делают первичную диагностику по сломавшимся на ночном прогоне.
Так и работали.
Ferroman
Март 3, 2011 23:40:03
А что за проект был, если не секрет? Десктоп/веб?
Андрей Светлов
Март 3, 2011 23:56:19
Распределенный десктоп. Веба - чуть. Финансы. Точнее, биржевые спекуляции для довольно серьезных контор.
Ferroman
Март 9, 2011 13:22:55
Я это к чему спрашиваю — интересно чем тестировали и как.