Из Википедии, свободной энциклопедии
Перейти к навигацииПерейти к поиску

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

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

Обзор

Тестирование Разработки выполняются разработчиком программного обеспечения или инженером во время этапа строительства в жизненном цикле разработки программного обеспечения . [1]

Вместо того, чтобы заменять традиционные методы обеспечения качества , он их дополняет. [2] Тестирование разработки направлено на устранение ошибок конструкции до того, как код будет переведен в QA; эта стратегия предназначена для повышения качества конечного программного обеспечения, а также эффективности всего процесса разработки и обеспечения качества. [3]

Цели и преимущества

Тестирование разработки применяется для следующих основных целей:

  • Обеспечение качества - для улучшения общего процесса разработки и тестирования за счет обеспечения качества и безопасности программного обеспечения (вместо того, чтобы пытаться выявить дефекты / уязвимости).
  • Соответствие отраслевым или нормативным требованиям - для достижения соответствия отраслевым или нормативным требованиям (например, FDA , IEC 62304 , DO-178B , DO-178C , ISO 26262 , IEC 61508 и т. Д.), Которые обычно требуют строгого снижения рисков, а также двунаправленного прослеживаемость требований (например, между требованиями, тестами, обзорами кода, исходным кодом, дефектами, задачами и т. д.) [3]

Исследование VDC сообщает, что стандартизованная реализация процессов тестирования разработки в рамках всеобъемлющего стандартизованного процесса не только улучшает качество программного обеспечения (путем согласования действий по разработке с проверенными передовыми практиками), но также повышает предсказуемость проекта. [4] voke исследования показывают, что тестирование разработки делает программное обеспечение более предсказуемым, отслеживаемым, видимым и прозрачным на протяжении всего жизненного цикла разработки программного обеспечения. [2]

Ключевые принципы

В каждом из вышеуказанных приложений тестирование разработки начинается с определения политик, которые выражают ожидания организации в отношении надежности , безопасности, производительности и соответствия нормативным требованиям. Затем, после того, как команда будет обучена этим политикам, внедряются методы тестирования разработки, чтобы согласовать действия по разработке программного обеспечения с этими политиками. [5] Эти методы тестирования разработки включают:

  • Практики, которые предотвращают как можно больше дефектов с помощью подхода, вдохновленного Демингом, который способствует снижению вероятности ошибки посредством анализа первопричин .
  • Методы, которые выявляют дефекты сразу после их появления - когда поиск и исправление дефектов является самым быстрым, простым и дешевым. [3] [6]

Акцент на применении широкого спектра методов предотвращения и обнаружения дефектов основан на предположении, что различные методы тестирования разработки настроены для выявления различных типов дефектов в разных точках жизненного цикла разработки программного обеспечения, поэтому согласованное применение нескольких методов снижает риск. дефектов, проскальзывающих через трещины. [3] Важность применения широкого набора практик подтверждена Бемом и Базили в часто упоминаемом «Списке 10 лучших программ по сокращению дефектов программного обеспечения». [7]

Статический анализ

Термин «тестирование разработки» иногда использовался для описания применения инструментов статического анализа. Многие лидеры отрасли не согласны с этим сочетанием, потому что статический анализ технически не является тестированием; даже статический анализ, который «покрывает» каждую строку кода, не способен подтвердить, что код выполняет то, что должен делать, или выявить определенные типы дефектов или уязвимостей безопасности.которые проявляются только в динамическом исполнении программного обеспечения. Хотя многие предупреждают, что статический анализ сам по себе не следует рассматривать как серебряную пулю или панацею, большинство отраслевых экспертов согласны с тем, что статический анализ является проверенным методом устранения многих дефектов безопасности, надежности и производительности. Другими словами, хотя статический анализ - это не то же самое, что тестирование разработки, он обычно считается компонентом тестирования разработки. [8] [9]

Дополнительные мероприятия

В дополнение к различным реализациям статического анализа, таким как анализ потока и модульное тестирование, тестирование разработки также включает экспертную проверку кода в качестве основного действия по обеспечению качества. Проверка кода широко считается одним из наиболее эффективных методов обнаружения и предотвращения дефектов при разработке программного обеспечения. [10]

См. Также

  • Модульное тестирование
  • Тестирование программного обеспечения

Ссылки

  1. ^ МакКоннелл, Стив (2004). Код завершен (2-е изд.). Microsoft Press. ISBN 0-7356-1967-0.
  2. ^ a b voke Отчет Market Mover Array: платформы тестирования Терезы Лановиц, Лизы Дронзек, voke, 5 июня 2012 г.
  3. ^ а б в г Колава, Адам; Хейзинга, Дорота (2007). Автоматическое предотвращение дефектов: передовой опыт управления программным обеспечением . Пресса компьютерного общества Wiley-IEEE. ISBN 0-470-04212-5.
  4. ^ Официальный документ «Автоматическое предотвращение дефектов для обеспечения качества встроенного программного обеспечения» от VDC Research
  5. Большие надежды на развитие - с автоматизацией политики , Уэйн Ариола, SD Times, 28 июля 2011 г.
  6. ^ Rethinking Software Development, Testing and Inspection , Мэтью Хойссер, ИТ-директор, 1 февраля 2012 г.
  7. ^ Программное обеспечение Дефект Снижение Top List 10 Барри Бем и Виктор Р. Basili, компьютер, январь 2001 г.
  8. ^ Статические анализаторы в разработке программного обеспечения , доктор Пол Э. Блэк, CrossTalk: журнал оборонной инженерии программного обеспечения, март / апрель 2009 г.
  9. 3 главных ошибки при статическом анализе для встроенных и критически важных для безопасности разработок , Артур Хикен, Каталог EE, 25 сентября 2012 г.
  10. ^ Удовлетворение требований SIL: обеспечение функциональной безопасности E / E / PE систем, связанных с безопасностью. Архивировано 4 марта 2016 г. встатье Wayback Machine на сайте DevelopmentTesting.com.