Обязательно получится

Качество разработанного программного обеспечения

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

Создать серьезное ПО без ошибок не может никто, но вот управлять его качеством вполне можно. Какие же шаги по повышению качества программного обеспечения мы можем предпринять:

  • 1Тестирование разработчиком

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

  • 2Тестирование тестировщиком

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

  • 3Опытная эксплуатация

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

  • 4Автоматизированное тестирование

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

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

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

к главному