5 советов по обеспечению разработки программного обеспечения без ошибок
Есть ли в вашем программном приложении ошибки? Конечно, да, поскольку у каждой доступной программы есть проблемы, а история об отсутствии ошибок в программном обеспечении — это миф. Тем не менее, все еще можно значительно минимизировать ошибки, ошибки и проблемы безопасности, следуя нескольким книжным, но практичным методам сокращения.
Когда дело доходит до отслеживания ошибок, требуется большая дисциплина, поскольку это требует, чтобы все придерживались правил. Особенно в стартапах и творчески ориентированных отраслях может быть довольно сложно воспрепятствовать любому неформальному общению. На самом деле, во многих случаях люди не называют «отслеживание ошибок» своей самой важной частью проекта.
Что на самом деле представляет собой отслеживание ошибок?
Согласно Technopedia: «Отслеживание ошибок — это процесс, используемый персоналом и программистами по обеспечению качества для отслеживания проблем с программным обеспечением и их решений».
Таким образом, система отслеживания ошибок управляет всей информацией о зарегистрированных ошибках и отслеживает статус каждой ошибки. Вы определенно видите потребность в обширной информации при отслеживании проблем. Предоставление достаточного количества данных требует не только огромного количества времени, но и обширных навыков в области разработки программного обеспечения.
Классификация ошибок
Программные ошибки бывают трех типов:
- Неверные характеристики
- Дефекты реализации
- Отсутствует спецификация
Любой из этих типов ошибок можно легко классифицировать как критическую проблему (или переклассифицировать как улучшение). Впереди упомянуты некоторые рекомендации по реклассификации, которые использует Сэм Хатум, основатель Xolv.io.
- Приводит ли неправильная спецификация к убыткам? Например, в спецификации указано, что нужно отслеживать количество кликов, когда следует отслеживать расходы на реклассификацию ошибки.
- Можно ли пренебречь дефектом реализации? Например, веб-шрифт устанавливается, когда он должен быть встроен в программное обеспечение.
- Подразумевает ли отсутствующая спецификация новые функции? Например, пользователи не могут делиться и редактировать данные своего профиля в социальных сетях.
Ставки повышаются для менеджеров по продукту, чтобы эффективно классифицировать ошибки, поскольку команда разработчиков получает указание отдавать приоритет ошибкам над всей остальной работой. Разработчики не будут работать или еще что-то, пока не будут устранены все баги.
Формирование стандартов качества команды
Когда команда дизайнеров и разработчиков решает, можно ли повторно классифицировать вирус приложения как улучшение, этот процесс принятия решения неявно устанавливает стандарты качества команды. Например, владелец бренда, делающий упор на высококачественные визуальные эффекты, может быть нетерпим к несоответствиям в дизайне. Вместо этого они реклассифицировали бы эти проблемы как ошибки.
Последовательная система реклассификации позволяет вам постоянно адаптировать ожидания к реальности, сохраняя при этом структурированный подход к доставке, который ставит стандарты качества вашей команды на первое место.
Сбои ошибок
Недавние исследования утверждают, что почти 40 процентов системных сбоев вызваны программными ошибками, в то время как другие проблемы безопасности и программные уязвимости составляют 60 процентов, вызванных общими проблемами, связанными с памятью и параллелизмом. Сокращение программных ошибок в вашем приложении — лучший способ повысить безопасность, стабильность и надежность вашего программного обеспечения.
Советы по обеспечению разработки программного обеспечения без ошибок
При разработке инструмента ведения журналов SmartInspect разработчики использовали множество методов для поддержания высокого качества своей системы. Список, упомянутый выше, содержит некоторые из методов, которые они использовали.
1 Создание пространства для общения
Обнаружение ошибок и сообщение об ошибках требует навыков определения соответствующей информации, которая затем добавляется в каждый отчет о проблеме. Существует множество инструментов отслеживания ошибок и обеспечения качества, таких как Usersnap, которые предлагают возможность автоматически прикреплять необходимую информацию. Тем не менее, всегда будет возможность упустить или неправильно понять информацию, что приведет к необходимости надлежащего общения.
В некоторых сценариях тестирования нет места для такого раскрытия информации между разработчиками и тестировщиками. Такие вопросы, как: «Как я могу связаться с ответственными экспертами?» или «Можно ли запрашивать обратную связь по телефону или электронной почте?» необходимо ответить в начале процесса отслеживания ошибок.
Чтобы избежать недоразумений со стороны тестировщиков и разработчиков, постарайтесь объединить всех и создать культуру, ориентированную на обратную связь, в которой работа обеих сторон будет уважаться одинаково.
2 Держите это один на один
Избегайте обсуждения ошибок на совещании по проекту. Не поймите меня неправильно. Нет ничего плохого в том, чтобы работать в команде, воспроизводить и исправлять ошибки. Но не обсуждайте проблемы на длительных встречах со всем кабинетом. По словам Томаса Пехама, технического блоггера Usersnap.com, сообщать об ошибках, а затем обсуждать их на следующем этапе «повторного тестирования» — довольно медленный подход.
Действительно, гораздо эффективнее держать его один на один. Как писал Егор в своей статье о 5 принципах баг-трекинга, каждый баг-репорт связан между двумя людьми — спецификатором и решателем проблемы. Независимо от того, сколько людей вовлечено в процесс, есть только 2 основные обязанности (с двумя разными ролями) для решения заявленной проблемы.
3 Обеспечить поддержку со стороны вашей команды
Если вся ваша команда не использует ее, хорошая база данных для отслеживания ошибок будет неэффективной. Лучше всего начать с того, чтобы все ваши заинтересованные стороны (обслуживание клиентов, обеспечение качества, менеджеры проектов и разработчики) оценили инструменты и попытались принять решение вместе; регистрация и устранение дефектов согласованным образом с использованием одной и той же системы.
Если вы изо всех сил пытаетесь привлечь людей на борт, вот что вы можете сделать;
Для разработчиков установить закон приема отчетов об ошибках через индивидуальные базы данных, а не каким-либо другим способом. Когда тестировщики присылают вам электронные письма с отзывами, просто попросите их вместо этого бросить отчеты в информационную систему. В дополнение к тому, что все будет организовано, это также помогает с отчетами, предоставляя всю необходимую информацию и определяя необходимые поля.
Еще один способ создать более эффективный процесс — обеспечить контроль качества или поддержку проверки ошибок от клиентов и добавить точные шаги в базу данных еще до того, как разработчики будут уведомлены. Эффективное отслеживание проблем с программным обеспечением является одним из наиболее важных аспектов наличия надежной и согласованной системы управления проектами.
- Хороший отладчик
Если вы используете такие системы, как Visual Studio или Delphi, у вас уже есть доступ к чрезвычайно мощному отладчику, который вам следует использовать. В случае среды сценариев, где разработчики часто пытаются устранять ошибки методом проб и ошибок, этот процесс становится не только громоздким способом выявления и решения проблем, но и очень опасным, если вы не полностью понимаете свой код и не можете пройтись по нему отладчиком. Сделайте себе одолжение, приобретите для своей команды хорошую платформу отладки — отладчики есть практически для всего.
4 Знайте, что означает «закрытая» ошибка
Вы когда-нибудь участвовали в обсуждении закрытия ошибки? Что ж, поздравляю, вы попали в наихудшую ситуацию с отслеживанием ошибок, которая только могла произойти.
Если вы обнаружите, что участвуете в обсуждении «статуса ошибки», подумайте о том, чтобы сделать шаг назад и задать себе следующие вопросы:
- Чья обязанность принимать результаты?
- Каковы критерии приема?
- Кто несет ответственность за отдачу приказа?
Взгляните на значение слова «закрыто». В большинстве команд разработчиков баг закрывается тем, кто исправил ошибку. Пехам рекомендует закрывать сообщение об ошибке лицом, сообщившим о проблеме. Как только разработчик предлагает решение для определенной ошибки, репортера следует попросить закрыть отчет. Это гарантировало бы, что обратная связь является достаточным решением для путаницы программного обеспечения.
5 виртуальных машин
Чтобы протестировать свое программное обеспечение на наличие ошибок во многих различных операционных системах и средах, вам следует использовать виртуальные машины с такими инструментами, как Virtual PC или другое доступное программное обеспечение для виртуализации. С помощью этого метода вы можете сэкономить массу времени, потому что вы можете легко копировать, совместно использовать и сбрасывать виртуальные машины, что позволяет вам тестировать свое программное обеспечение на всех типах конфигураций.
Всегда предпочтительнее создавать различные стандартные образы для всех операционных систем, которые вы регулярно тестируете, и размещать их на файловом сервере. Когда вам нужна узкоспециализированная конфигурация для тестирования чего-либо, вы можете начать с одного из базовых образов без установки операционной системы, необходимого программного обеспечения и драйверов и так далее.
Это не новая концепция
Когда Хатум придумал эту концепцию, он обнаружил, что идея программного обеспечения Zero-Bug не нова. На самом деле она существует с 1960-х годов, как и многие забытые философии старой школы.
Легендарный эксперт по качеству Филип Кросби изобрел термин Zero-Defect, работая в компании Martin или известной в настоящее время «Lockheed Martin», где сообщалось, что они добились «54-процентного сокращения дефектов в аппаратном обеспечении по результатам государственного аудита».
Первоначально метод Zero-Defect использовался в аэрокосмической промышленности в 60-х годах, а затем был применен в автомобилестроении в 1990-х годах. Между обрабатывающей промышленностью и поставкой программного обеспечения есть много общего.
Например, популярная модель гибкого управления Канбан возникла из производственной системы Toyota. В основном это говорит нам о том, что мы можем легко изучить эти производственные процессы для технического вдохновения в разработке программного обеспечения или приложений, и Zero-Bug является одним из таких источников вдохновения.
Однако крайняя стоимость соответствия стандарту является одним из основных критических замечаний в отношении подхода Zero-Defect. И при неправильной реализации это действительно может быть правдой. В подходе Zero-Bug Хатум напрямую решает эту проблему путем переклассификации ошибок в функции и значительных улучшений, что позволяет контролировать затраты с помощью стандартов качества команды.
Начните сегодня
Как технические пользователи и разработчики, вы можете начать анализировать все существующие сбои и классифицировать их, используя вышеупомянутую систему. Если вы считаете, что у вас есть сотни тысяч проблем, возможно, сейчас самое время отложить их и начать заново. Не беспокойтесь, вы всегда можете переместить ошибки из архивов в текущий домен по мере необходимости.
Команде разработчиков не обязательно ждать, пока вся работа по классификации будет завершена, прежде чем они начнут исправлять ошибки; они могут начать работу, как только будет классифицировано несколько ошибок. Команда не должна начинать работу над какими-либо другими элементами в невыполненной работе до тех пор, пока все элементы не будут «устранены с ошибками» или не будут переклассифицированы. Именно это правило заставляет менеджеров по продукту правильно расставлять приоритеты в новой работе.
Подводя итог
Каждая обнаруженная ошибка в проекте требует дополнительного времени для исправления. Поэтому отслеживание ошибок требует больших коммуникативных навыков от людей, отслеживающих ошибки, а также чуткости от тех, кто их исправляет. С помощью вышеупомянутых приемов отслеживания ваша команда может повысить свою продуктивность, сообщая о любых технических проблемах или проблемах с безопасностью.