Какие тесты помимо юнит-тестов и решения о непрерывной интеграции? - PullRequest
1 голос
/ 03 августа 2009

Некоторые DO факты:

  • два разработчика в команде
  • мы пишем модульные тесты (автоматический запуск при каждой сборке)
  • мы используем систему контроля версий (SVN)
  • мы (два разработчика) также являемся менеджерами продуктов (классическая ситуация с высоким риском чрезмерного проектирования продуктов)

Некоторые НЕ факты

  • у нас нет ночных сборок
  • у нас нет непрерывной интеграции
  • у нас нет интеграционных тестов
  • у нас нет регрессионных тестов
  • у нас нет приемочных / потребительских тестов
  • у нас еще нет выделенного тестера

Я много читал обо всех этих видах тестов, но пока не вижу смысла их писать. Прямо сейчас это выглядит как обычные накладные расходы без какого-либо значения ( edit : работа, которая, кажется, не имеет большого значения в данный момент ).

Вопрос: По каким причинам заставит нас принять решение о реализации каких-либо запретов и какие из них можно / нужно автоматизировать с помощью каких инструментов / библиотек?

Ответы [ 4 ]

3 голосов
/ 03 августа 2009

«Какие причины заставят нас принять решение о том, что нельзя делать?»

Ничего.

Ничто не заставляет вас улучшать качество. Многие люди пишут код, который в основном работает большую часть времени, требует тщательного обслуживания, и их пользователи в основном довольны.

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

Отлично.

Я не знаю, как вы выполняете доставку без проведения приемочного тестирования, но вы четко заявили, что не делаете. Я не могу понять, как это работает, но вы, кажется, довольны этим.

"какие из них могут / должны быть автоматизированы"

None. Это довольно тривиальные вещи. Вы уже используете модульное тестирование C #. Модульное тестирование, по сути , является регрессионным тестированием. В некоторой степени вы можете использовать те же инструменты и среду для интеграции и элементы приемочного тестирования.

Существует множество инструментов для создания ночных (муравьиных, мавеноподобных, похожих на сконов) инструментов для ночных сборок.

Вам не нужно больше автоматизации, чем у вас.

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

Насколько мне известно, каждый разработчик является тестером, так что вы все являетесь преданными тестерами. Многие обсуждают роль «преданного тестера». Я больше не знаю, что это значит. Кажется, это человек, который не производит код, подлежащий доставке. Не знаю, почему вы бы наняли кого-то такого. Имеет смысл сделать так, чтобы каждый постоянно отвечал за все испытания.

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

Я никогда не уверен, что доставят тестеры. Еще тесты? Еще ошибки? Как насчет того, чтобы привлечь их к ответственности пользователей за то, что проблема бизнеса решена ?

Ничего заставляет делать все это.

2 голосов
/ 03 августа 2009

Я не совсем уверен, что это заслуживает ответа, но вот несколько вещей, которые следует учитывать:

  • Если ваши юнит-тесты хороши и актуальны (отчет об ошибках приводит к юнит-тестам, подтверждающим ошибку), юнит-тесты могут выступать в качестве регрессионных тестов.
  • Если ваши юнит-тесты запускаются при каждой регистрации, это звучит очень близко к моему пониманию ночных сборок, но с другой частотой.
  • Если у вас нет приемочных испытаний, как вы узнаете, что то, что вы строите, отвечает потребностям вашего клиента? Приемочные испытания могут быть такими же простыми, как и проверка выполнения требований, описанных в документации.
1 голос
/ 05 августа 2009

Если у вас нет (или не слишком много) претензий к качеству вашего продукта - успокойтесь и постарайтесь не потерять уровень, который у вас уже есть. Думаю, команда из двух человек может себе это позволить.

Но если вы спросите об улучшениях качества, я думаю, у вас есть некоторые сомнения в качестве продукции. В этом случае я рекомендую провести стороннюю оценку, чтобы убедиться в правильности ваших оценок качества.

Вы уже на рынке? Или это какой-то проект "для одного клиента"?

1 голос
/ 03 августа 2009

В какой-то момент качество может стать большей движущей силой прибыли, чем время выхода на рынок. Тогда вам нужно подумать о том, чтобы соответствовать качеству.

Пока это не произойдет, вы должны думать о ночных сборках, автоматических регрессионных тестах и ​​т. Д. Как о способе сэкономить ваше время и усилия при разработке. Поэтому проводите немного времени (скажем, 1 неделю) каждые несколько месяцев, чтобы сделать вашу разработку (и выпуск) более продуктивной ( и веселой ).

Сначала добейтесь больших успехов, например, автоматизация настройки для ручного регрессионного теста часто может быть намного более рентабельной, чем автоматизация теста пользовательского интерфейса самостоятельно.

(Также подумайте, что вам нравится, если вам больше нравится писать код автоматизированного тестирования пользовательского интерфейса, чем регрессионное тестирование вручную, вы можете лучше выполнять код автоматизированного тестирования пользовательского интерфейса.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...