Тестирование разработки
Часть серии о |
Разработка программного обеспечения |
---|
Тестирование разработки — это процесс разработки программного обеспечения , который включает синхронное применение широкого спектра стратегий предотвращения и обнаружения дефектов с целью снижения рисков, времени и затрат на разработку программного обеспечения.
В зависимости от ожиданий организации в отношении разработки программного обеспечения, тестирование разработки может включать статический анализ кода , анализ потока данных , анализ метрик , одноранговые проверки кода , модульное тестирование , анализ покрытия кода , отслеживаемость и другие методы проверки программного обеспечения.
Обзор
[ редактировать ]Тестирование разработки выполняется разработчиком или инженером программного обеспечения на этапе создания обеспечения жизненного цикла разработки программного . [1]
Вместо того, чтобы заменять традиционные подходы к обеспечению качества , он дополняет их. [2] Тестирование разработки направлено на устранение ошибок конструкции до того, как код будет переведен на уровень контроля качества; эта стратегия предназначена для повышения качества получаемого программного обеспечения, а также эффективности всего процесса разработки и контроля качества. [3]
Цели и преимущества
[ редактировать ]Тестирование разработки применяется для следующих основных целей:
- Обеспечение качества — улучшить общий процесс разработки и тестирования за счет обеспечения качества и безопасности программного обеспечения (вместо попыток выявить дефекты/уязвимости).
- Соответствие отраслевым или нормативным требованиям — для достижения соответствия отраслевым или нормативным инициативам (например, FDA , IEC 62304 , DO-178B , DO - 178C , ISO 26262 , IEC 61508 и т. д.), которые обычно требуют строгого снижения рисков, а также двунаправленного взаимодействия. прослеживаемость требований (например, между требованиями, тестами, проверками кода, исходным кодом, дефектами, задачами и т. д.) [3]
Исследование VDC сообщает, что стандартизированная реализация процессов тестирования разработки в рамках всеобъемлющего стандартизированного процесса не только улучшает качество программного обеспечения (путем согласования деятельности по разработке с проверенными лучшими практиками), но и повышает предсказуемость проекта. [4] ссылаются на отчеты исследований о том, что тестирование разработки делает программное обеспечение более предсказуемым, отслеживаемым, видимым и прозрачным на протяжении всего жизненного цикла разработки программного обеспечения. [2]
Ключевые принципы
[ редактировать ]В каждом из вышеперечисленных приложений тестирование разработки начинается с определения политик, которые отражают ожидания организации в отношении надежности , безопасности, производительности и соответствия нормативным требованиям. Затем, после того как команда обучена этим политикам, применяются методы тестирования разработки, чтобы согласовать деятельность по разработке программного обеспечения с этими политиками. [5] Эти методы тестирования разработки включают в себя:
- Практики, которые предотвращают как можно больше дефектов с помощью подхода, вдохновленного Демингом , который способствует уменьшению возможности ошибки посредством анализа первопричин .
- Практики, которые выявляют дефекты сразу после их появления — когда обнаружение и исправление дефектов происходит быстрее, проще и дешевле. [3] [6]
Акцент на применении широкого спектра методов предотвращения и обнаружения дефектов основан на предпосылке, что различные методы тестирования разработки настроены на выявление различных типов дефектов на разных этапах жизненного цикла разработки программного обеспечения, поэтому совместное применение нескольких методов снижает риск. дефектов, ускользающих сквозь трещины. [3] Важность применения широкого набора практик подтверждается Бёмом и Базили в часто упоминаемом «Списке 10 лучших программ по сокращению дефектов программного обеспечения». [7]
Статический анализ
[ редактировать ]Термин «тестирование разработки» иногда использовался для описания применения инструментов статического анализа. Многие лидеры отрасли не согласились с этим смешением, поскольку статический анализ технически не является тестированием; даже статический анализ, который «охватывает» каждую строку кода, не способен подтвердить , что код делает то, что он должен делать, или выявить определенные типы дефектов или уязвимостей безопасности , которые проявляются только при динамическом выполнении программного обеспечения.Хотя многие предупреждают, что статический анализ сам по себе не следует считать серебряной пулей или панацеей, большинство отраслевых экспертов сходятся во мнении, что статический анализ — это проверенный метод устранения многих дефектов безопасности, надежности и производительности. Другими словами, хотя статический анализ — это не то же самое, что тестирование разработки, его обычно считают компонентом тестирования разработки. [8] [9]
Дополнительные мероприятия
[ редактировать ]Помимо различных реализаций статического анализа, таких как анализ потока и модульное тестирование, тестирование разработки также включает в себя одноранговую проверку кода в качестве основного действия по обеспечению качества. Проверка кода широко считается одним из наиболее эффективных методов обнаружения и предотвращения дефектов при разработке программного обеспечения. [10]
См. также
[ редактировать ]- Модульное тестирование
- Тестирование программного обеспечения
- Интеграционное тестирование
- Функциональное тестирование
- Регрессионное тестирование
- Тестирование производительности программного обеспечения
- Пользовательское приемочное тестирование (UAT)
- Непрерывная интеграция / Непрерывное развертывание ( CI/CD )
Ссылки
[ редактировать ]- ^ МакКоннелл, Стив (2004). Код завершен (2-е изд.). Майкрософт Пресс. ISBN 0-7356-1967-0 .
- ^ Jump up to: а б Отчет voke Market Mover Array: Платформы тестирования Терезы Лановиц и Лизы Дронзек, voke, 5 июня 2012 г.
- ^ Jump up to: а б с д Колава, Адам; Хейзинга, Дорота (2007). Автоматизированное предотвращение дефектов: лучшие практики управления программным обеспечением . Издательство компьютерного общества Wiley-IEEE. ISBN 0-470-04212-5 .
- ^ «Автоматическое предотвращение дефектов для качества встроенного программного обеспечения» от VDC Research Технический документ
- ↑ Большие надежды на развитие — с автоматизацией политики , Уэйн Ариола, SD Times, 28 июля 2011 г.
- ^ Переосмысление разработки, тестирования и проверки программного обеспечения. Архивировано 7 мая 2013 г. в Wayback Machine Мэтью Хойссером, ИТ-директором, 1 февраля 2012 г.
- ^ Список 10 лучших программ по сокращению дефектов программного обеспечения, составленный Барри Бёмом и Виктором Р. Базили, Компьютер, январь 2001 г.
- ^ Статические анализаторы в разработке программного обеспечения. Архивировано 15 октября 2012 г. в Wayback Machine доктором Полом Э. Блэком, CrossTalk: Журнал оборонной разработки программного обеспечения, март/апрель 2009 г.
- ^ 3 основные ошибки статического анализа для встраиваемых систем и критически важных для безопасности разработок , Артур Хикен, Каталог EE, 25 сентября 2012 г.
- ^ Соответствие требованиям SIL: обеспечение функциональной безопасности E/E/PE систем, связанных с безопасностью. Архивировано 4 марта 2016 г. в статье Wayback Machine на сайте DevelopmentTesting.com.