:::info Авторы:
:::
Аннотация
1 Введение
2 Оригинальное исследование: Исследовательские вопросы и методология
3 Оригинальное исследование: Угрозы валидности
4 Оригинальное исследование: Результаты
5 Повторное исследование: Исследовательские вопросы и методология
6 Повторное исследование: Угрозы валидности
7 Повторное исследование: Результаты
8 Обсуждение
9 Связанные работы
10 Выводы и ссылки
Повторяющаяся проблема в разработке программного обеспечения — это неправильное принятие решений относительно используемых техник, методов и инструментов. В основном эти решения основаны на восприятии разработчиков. Фактором, влияющим на восприятие людей, является прошлый опыт, но это не единственный фактор. В этом исследовании мы стремимся выяснить, насколько хорошо восприятие эффективности обнаружения дефектов различных техник соответствует их реальной эффективности при отсутствии предварительного опыта.
\ Для этого мы проводим эмпирическое исследование и его повторение. В ходе оригинального исследования мы проводим контролируемый эксперимент со студентами, применяющими две техники тестирования и технику проверки кода. В конце эксперимента они проходят опрос, чтобы выяснить, какую технику они считают наиболее эффективной. Результаты показывают, что восприятие участников ошибочно, и это несоответствие дорого обходится с точки зрения качества.
\ Чтобы получить дополнительное представление о результатах, мы повторяем контролируемый эксперимент и расширяем опрос, включая вопросы о мнениях участников о техниках и программах. Результаты повторного исследования подтверждают выводы оригинального исследования и предполагают, что восприятие участников может быть основано не на их мнениях о сложности или предпочтениях техник, а на том, насколько хорошо, по их мнению, они применили эти техники.
Все более популярной практикой в наши дни является то, что компании-разработчики программного обеспечения позволяют разработчикам выбирать собственную технологическую среду. Это означает, что разные разработчики могут использовать разные инструменты повышения производительности (язык программирования, IDE и т.д.). Однако программная инженерия (SE) — это дисциплина, интенсивно зависящая от человека, где неправильные решения потенциально могут поставить под угрозу качество результирующего программного обеспечения. В SE решения о том, какие методы, техники и инструменты использовать при разработке программного обеспечения, обычно основываются на восприятии и/или мнениях разработчиков, а не на доказательствах, как предполагают Dyb˚a и др. [19] и Zelkowitz и др. [55].
\ Однако эмпирические доказательства могут быть недоступны, поскольку определенные методы, техники или инструменты могли не изучаться в конкретной обстановке или вообще. В качестве альтернативы, разработчики могут просто не быть знакомы с такими исследованиями, согласно Vegas & Basili [49]. На этом основании важно выяснить, насколько хорошо восприятие разработчиков (убеждения) соответствует реальности, и если нет, выяснить, что стоит за этим несоответствием, как отмечено Devanbu и др. [14]. Согласно психологии, опыт играет роль в восприятии людей. Это также было замечено Devanbu и др. [14] в SE.
\ Однако это исследование направлено на то, чтобы выяснить, насколько хорошо восприятие соответствует реальности при отсутствии предыдущего опыта в используемой технологии. Это имеет смысл по нескольким причинам: 1) опыт — не единственный фактор, влияющий на восприятие разработчиков; 2) команды разработчиков обычно состоят из смеси людей с опытом и без него; и 3) не ясно, какой тип опыта влияет на восприятие. Например, Dieste и др. [17] заключают, что академический, а не профессиональный опыт может влиять на внешнее качество кода, созданного разработчиками при применении разработки через тестирование (Test-Driven Development).
\ Мы стремимся изучить, соответствует ли восприятие эффективности трех техник обнаружения дефектов реальности, и если нет, что стоит за этими восприятиями. Насколько нам известно, это первая статья, эмпирически оценивающая этот вопрос. С этой целью мы провели эмпирическое исследование и его повторение со студентами. В ходе оригинального исследования мы измерили (как часть контролируемого эксперимента) эффективность двух техник тестирования и одной техники проверки кода при их применении участниками. Затем мы сравнили воспринимаемую наиболее эффективную технику (собранную с помощью опроса) с реальной.
\ Кроме того, мы проанализировали стоимость несоответствия между восприятием и реальностью с точки зрения потери эффективности. Основные выводы включают:
– Разные люди воспринимают разные техники как более эффективные. Ни одна техника не воспринимается как более эффективная, чем другие. – Восприятие 50% участников (11 из 23) ошибочно.
– Неправильное восприятие техник может снизить эффективность в среднем на 31 процентный пункт.
\ Эти выводы привели нас к расширению цели исследования в повторении, чтобы изучить, что может стоять за восприятием участников. Для этого мы изучили их мнения о техниках, которые они применяли, и программах, которые они тестировали, в повторении контролируемого эксперимента. Основные выводы включают:
– Результаты повторения подтверждают выводы оригинального исследования.
– Участники считают, что эффективность техники зависит исключительно от их производительности, а не от возможных слабостей самой техники. – Мнения о сложности техники и предпочтения техник, по-видимому, не играют роли в воспринимаемой эффективности. Эти результаты полезны для разработчиков и исследователей. Они предполагают:
– Разработчики должны осознавать ограничения своего суждения.
– Следует разрабатывать инструменты, которые предоставляют разработчикам обратную связь о том, насколько эффективны техники.
– Следует определить лучшую комбинацию техник для применения, которая одновременно легко применима и эффективна. – Следует разрабатывать инструменты, чтобы сделать эмпирические результаты доступными для разработчиков.
\ Материалы, связанные с представленными здесь исследованиями, можно найти на https://github.com/GRISE-UPM/Misperceptions. Статья организована следующим образом. Раздел 2 описывает оригинальное исследование. Раздел 3 представляет его угрозы валидности. Раздел 4 обсуждает результаты. Раздел 5 описывает повторное исследование на основе изменений, внесенных в оригинальное исследование. Раздел 6 представляет его угрозы валидности. Раздел 7 сообщает о результатах этого повторного исследования. Раздел 8 обсуждает наши выводы и их последствия. Раздел 9 показывает связанные работы. Наконец, раздел 10 излагает выводы этой работы.
\ \
:::info Эта статья доступна на arxiv под лицензией CC BY-NC-ND 4.0.
:::
\


