Как начать автоматизированное тестирование?
Я начинал как инженер-программист в компании, в которой я сейчас нахожусь. Со временем я был либо единственным, кто был готов или способен взять на себя ответственность за различные системы, и поэтому меня "повысили" до должности ИТ-менеджера. Сейчас, будучи инженером-программистом, я создавал функциональные тесты для различных программных модулей, которые я собирал, и в результате даже сегодня я могу быстро тестировать различные части системы, над которой я работал. Тем не менее, существует большая большая кодовая база с минимальным охватом других разработчиков, которые здесь работают.
Теперь, как ИТ-менеджер, я хочу иметь возможность проверить, что все части системы работают, но есть:
A) нет выделенного времени на создание покрытия тестовым кодом
а также
Б) У "главного инженера-программиста" нет желания начинать создавать наборы для тестирования, чтобы помочь мне контролировать работу программного обеспечения.
Я не ожидаю, что команда разработчиков откажется от всего, что они делают, и потратит 2 недели на создание наборов тестов, но было бы неплохо, если бы они начали со временем расширять охват набора тестов, чтобы я мог подтвердить, что различные части системы работают,
Итак, как можно заставить команду разработчиков начать создавать тестовые наборы?
Другие предостережения:
A) Меня все еще просят заняться программными проектами в дополнение к управлению нашим ИТ-отделом (инженер Unix, специалист по поддержке настольных компьютеров и связанное с этим офисное и производственное оборудование)
B) Моему администратору Unix очень трудно настроить рабочие системы на полную кодовую базу, и мы не получаем хорошую помощь от команды разработчиков программного обеспечения. Он не может запустить какую-либо диагностику, чтобы увидеть, где происходит сбой веб-приложения при новой установке. Вице-президент компании постоянно просит меня войти и сделать print_r в коде, чтобы увидеть, что происходит. Это отстой!!!
4 ответа
Это хороший вопрос. И если бы был один правильный ответ, гораздо больше программных проектов были бы успешными и обеспечивали высокое качество.
Я не думаю, что это хорошая идея, чтобы сделать такое изменение сверху вниз. Это должно исходить от самих разработчиков. Так что тренировки в направлении TDD были бы хорошими, но это долгое время, которое требует времени.
Если вы хотите более быстрое решение, вы должны рассмотреть функциональные, приемочные и системные тесты. С помощью этого теста вы тестируете практически все приложение на всех уровнях. Если вы разрабатываете веб-приложения, вам следует использовать Selenium для автоматизации вашего теста. С ним легко создать тест (Selenium IDE).
Но использование только таких тестов (не юнит-тестов) не дает вам преимуществ от TDD.
Автоматизация ваших тестов имеет решающее значение.
Во-первых, вам нужно исследовать разработку через тестирование, чтобы вам было удобно объяснить ее в терминах, понятных вашим разработчикам, а также вашему руководству. Поскольку вы, кажется, разрабатываете веб-приложения и обладаете техническими навыками, я предлагаю вам сделать решающий шаг и выбрать инструмент с открытым исходным кодом для тестирования веб-приложений, установить его и начать создавать тесты для всего, что вы разрабатываете самостоятельно.
Twill - это пример того инструмента для тестирования, который вам понадобится.
Затем, как менеджер, вы должны побудить разработчиков следовать вашему примеру и вознаградить их за это. И накажите их, когда они не используют среду тестирования, и это приводит к предотвратимым проблемам. Как только вы получите один такой инцидент, вы сможете поднять своего босса на борт и набрать импульс.
В целом, помните, что цель - сделать меньше работы, чтобы получить хороший результат. Обрезка углов - это способ выполнять меньше работы, но это приводит к риску плохих или впечатляюще плохих результатов. Информировать руководство об уровнях риска и потенциальных затратах на риск.
Не просто заставляйте людей делать тестирование ради тестирования. Это должно помочь им быть более продуктивными, поэтому тщательно выбирайте первые проекты.
У вас есть команда Test или QA?
Сначала я хотел бы посмотреть, есть ли у них тестовые случаи, которые они используют для квалификации сборки. Если нет, вам придется разработать эти тестовые примеры для проверки основных функциональных возможностей вашего продукта.
Следующим шагом будет автоматизация тестовых случаев.
Если приложение плохо разработано без каких-либо инструментов устранения неполадок или функций отладки, было бы сложно до тех пор, пока они не будут добавлены в качестве требований для следующего выпуска.
Мои 2 цента.
Мне придется не согласиться с Майкломке - эти изменения нуждаются в поддержке со стороны исполнительного уровня, в дополнение к нескольким ключевым разработчикам, для полного успеха.
Без этой поддержки вы будете просто разработчиками, которые выглядят так, словно "тратят время на написание тестов для уже работающего материала".
Должно быть четкое видение, и его нужно повторять громко и часто.
Я не обязательно защищаю Agile здесь, но часто это происходит для владельцев бизнеса.
Если вы сможете продать их на этом, то все, что вас волнует (быстрая доставка программного обеспечения, простота обслуживания, автоматизированное тестирование и т. Д.), Станет на свои места.