Мы все хотим, чтобы программное обеспечение в устройствах, которые мы используем, было самого высокого качества. Однако задумывались ли вы о том, что подразумевается под качеством программного обеспечения? Очень сложно сформулировать набор критериев, которые обобщают всеобъемлющую метрику качества. Таким образом, необходимо разбить этот термин и рассмотреть различные аспекты, такие как надежность, правильность, полнота, согласованность, удобство использования и производительность. Имейте в виду, что может быть один атрибут качества, который более применим для класса устройств, чем другой атрибут качества; Качество программного обеспечения — это многомерная величина, которую можно измерить разными способами. В этой вводной статье я расскажу, что определяет качество программного обеспечения.

Атрибуты качества.

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

Структурированный, поддерживаемый, тестируемый код (и имеющий точную и полную документацию) — это статические показатели качества. Возможно, вы сталкивались с жалобами типа «Ваш продукт фантастический, мне нравятся его функции, но его руководство пользователя не помогает!» В этом случае руководство пользователя снижает общее качество продукта.

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

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

Динамическое тестирование.

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

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

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

Нефункциональное тестирование

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

Производительность относится к количеству времени, которое требуется приложению для выполнения запрошенной функции. Мы называем производительность нефункциональным требованием, и она определяется такими терминами, как «Эта задача должна быть выполнена за одну секунду».

Надежность

Людям нужно программное обеспечение, которое отлично работает каждый раз, когда оно используется. Однако это случается редко, если вообще случается. Часто программное обеспечение, используемое сегодня, содержит ошибки, которые приводят к его сбою при некоторой комбинации входных данных. Представление о том, что программное обеспечение может быть на 100% безотказным, ошибочно.

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

Надежность программного обеспечения — это вероятность отказа программного обеспечения в течение заданного интервала времени и при заданных условиях.

Or

Надежность программного обеспечения — это вероятность безотказной работы программного обеспечения в предполагаемой среде.

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

Требования и критерии испытаний.

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

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

Обычно тестеру остается определить, что составляет все возможные входные данные. Первым шагом является анализ требований. Если требования полны и недвусмысленны, можно определить набор всех возможных входных данных.

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

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

Инструменты, которые помогут вам протестировать.

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

Cantata предлагает комплексный инструмент для тестирования программного обеспечения, который поддерживает построение тестов, привязку к требованиям и сложные отчеты. Cantata можно приобрести в QA Systems и ее международной сети авторизованных реселлеров. Дополнительную информацию о продукте Cantata можно найти на веб-сайте QA Systems: https://www.qa-systems.com/tools/Cantata.

Там вы можете запросить демонстрацию, связаться с нашими экспертами по качеству программного обеспечения и запросить бесплатную пробную версию Cantata & Cantata Team Reporting. Если вы хотите получить покрытие для тестирования вашего программного обеспечения, мы с нетерпением ждем вашего ответа.

Больше для рассмотрения.

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

Если вы нашли эту вводную статью полезной, QA-Systems имеет подробный документ, который можно скачать бесплатно здесь. Здесь рассматриваются аспекты эффективного представления результатов испытаний.

Загрузить полный технический документ на 26 страниц в формате PDF.

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