Тестирование программного обеспечения, что должен знать заказчик | SPBDEV

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

Введение

Любая сделанная на заказ система должна быть проверена полностью, прежде чем Вы подпишете проект и начнете использовать его в «живой» среде. Эта статья рассказывает, что включает включает в себя тестирование, чьей ответственностью это является и как реа-лизовать Вашу собственную программу тестирования.

Разве это не разработчик должен тестировать программное обеспечение?

Очевидный ответ был бы да, но дело обстоит не так. Тестирование должно быть частью работы разработчика, но клиент также играет ключевую роль. Клиент - тот который знает бизнес-процессы, и единственный, кто может действительно сказать - «это работает».

Что спросить у Вашего разработчика?

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

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

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

Что я должен делать?

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

Процедура тестирования

Первое золотое правило для тестирования состоит в том, чтобы проверить ВСЕ, включая функции, которые будут редко использоваться. Большинство разработчиков могут рассказывать истории о том, как через 3 месяца после окончания проекта они получают безумный телефонный звонок от клиента, по поводу того, что отчет, который им нужен се-годня днем не работает.

Тестирование может быть разбито на несколько основных процедур:

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

Сколько времени занимает тестирование?

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

Резюме

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

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