Вопрос 1. Правила по сертификации
Вопрос 2. Автоматизированные средства при тестировании программных средств
Вопрос 1. Правила по сертификации
Основные правила сертификации
Сертификация осуществляется аккредитованными органами по сертификации в рамках их области аккредитации на основе договора на подтверждение соответствия с заявителем в отношении продукции, работ, услуг, профессиональной компетентности персонала, систем управления.
При наличии нескольких аккредитованных органов по сертификации, в область аккредитации которых включены заявляемые на сертификацию объекты оценки соответствия, заявитель вправе обратиться в один из них.
Заявитель подает в аккредитованный орган по сертификации заявку на проведение работ по сертификации по формам.
Процедуры выполнения работ по сертификации аккредитованными органами по сертификации, в том числе признания сертификатов соответствия (сертификатов компетентности), определены в ТНПА Системы, утверждаемых Государственным комитетом по стандартизации Республики Беларусь.
Сертификаты соответствия (сертификаты компетентности), протоколы испытаний объектов оценки соответствия, полученные за пределами Республики Беларусь вне Системы, могут быть признаны на основании международных договоров Республики Беларусь.
Порядок признания сертификатов соответствия (сертификатов компетентности), протоколов испытаний объектов оценки соответствия устанавливается международными договорами Республики Беларусь, а если такой порядок не установлен международными договорами - постановлением Совета Министров Республики Беларусь от 7 июля 2011 г. № 925 «О порядке признания протоколов испытаний продукции, проведенных европейскими уполномоченными органами, при ее обязательном подтверждении соответствия в Республике Беларусь» (Национальный реестр правовых актов Республики Беларусь, 2011 г., № 79, 5/34129).
При добровольной сертификации заявитель самостоятельно выбирает государственные стандарты, на соответствие требованиям которых осуществляется добровольная сертификация, и определяет номенклатуру показателей, контролируемых при добровольной сертификации объектов оценки соответствия. В номенклатуру этих показателей в обязательном порядке включаются показатели безопасности, если они установлены в государственных стандартах на этот объект оценки соответствия.
Правила сертификации продукции
Сертификация продукции осуществляется по схемам подтверждения соответствия (совокупность и последовательность действий), применяемым при сертификации продукции, установленным соответствующим техническим регламентом, а в случаях, если схемы подтверждения соответствия в нем не установлены либо технический регламент отсутствует, по схемам. Схемы подтверждения соответствия, применяемые при сертификации продукции, выбирает заявитель, исходя из условий их применения.
Вопрос 2. Автоматизированные средства при тестировании программных средств
Автоматизированное тестирование предполагает использование специального программного обеспечения (помимо тестируемого) для контроля выполнения тестов и сравнения ожидаемого фактического результата работы программы. Этот тип тестирования помогает автоматизировать часто повторяющиеся, но необходимые для максимизации тестового покрытия задачи.
Некоторые задачи тестирования, такие как низкоуровневое регрессионное тестирование, могут быть трудозатратными и требующими много времени если выполнять их вручную. Кроме того, мануальное тестирование может недостаточно эффективно находить некоторые классы ошибок. В таких случаях автоматизация может помочь сэкономить время и усилия проектной команды.
После создания автоматизированных тестов, их можно в любой момент запустить снова, причем запускаются и выполняются они быстро и точно. Таким образом, если есть необходимость частого повторного прогона тестов, значение автоматизации для упрощения сопровождения проекта и снижения его стоимости трудно переоценить. Ведь даже минимальные патчи и изменения кода могут стать причиной появления новых багов.
Тестировать программу можно на разных уровнях: код (юнит-тесты и интеграционное тестирование), API (если оно есть) и GUI. Разные виды тестов лучше подходят в разных ситуациях.
Тестирование кода
Код тестируется на разных уровнях:
• Юнит-тесты (вики) — это тестирование одного модуля кода (обычно это одна функция или один класс в случае ООП-кода) в изолированном окружении. Это значит, что если код использует какие-то сторонние классы, то вместо них подсовываются классы-заглушки, код не должен работать с сетью (и внешними серверами), файлами, базой данных (иначе мы тестируем не саму функцию или класс, а еще и диск, базу, и т.д.).
Юнит-тесты хорошо тестируют такой код, который содержит какую-то логику. Если в коде мало логики, а в основном содержатся обращения к другим классам, то юнит-тесты написать может быть сложно (так как надо сделать замену для других классов и не очень понятно, что именно проверять?).
• Интеграционные тесты тестируют какой-то компонент системы, обычно состоящий из многих модулей (классов или функций). Для того, чтобы избежать ошибок и не зависеть от внешних условий, интеграционное тестирование производится в контролируемом окружении. Например, перед каждым тестом создается временная база данных с заранее подготовленными записями, очищаются папки для хранения временных файлов, а вместо запросов к внешним сервисам используется заглушка, возвращающая заранее подготовленные ответы. Если это не сделать, то мы можем получать ошибки например из-за того, что пытаемся вставить в базу пользователя с уже используемым email, из-за отсутствия какого-нибудь файла или из-за ошибки внешнего сервиса. Тесты будут чаще падать, а мы будем тратить время на выяснение причин.