| |
|
Тестирование программного обеспечения
|
|
|
|
В условиях высококонкурентного рынка выпуск недостаточно протестированных продуктов, может привести к неожиданным проблемам. Чем больше внимания вы уделяете тестированию с самых ранних стадий разработки, тем меньше проблем вы будете иметь после завершения работы.
Наша цель - всестороннее улучшение продуктов наших клиентов путем скрупулезного тестирования. Эффективность работы нашего отдела тестирования подтверждается многолетним опытом именно в этой сфере деятельности, а также научными исследованиями по тестированию и оптимизации, которые ведутся в компании. Мы выполняем все типы тестирования - от проверки спецификаций до оптимизации кода.
В процесс тестирования включены
- Проектирование теста
- Определение стратегии тестирования и разработка спецификаций
- Дизайн структуры тестовых сюит
- Разработка конструкций тестовых сюит / прогоны тестов / анализ результатов. Разработка генератора тестовых случаев
- Кодирование и документация тестов;
- Анализ существующих тестовых сюит для возможного переиспользования;
- Портирование тестовых сюит сторонних компаний.
- Выполнение тестового цикла
- Анализ кода, спецификаций и документации;
- Проведение запланированных и заказных тестов, анализ результатов и предоставление отчета;
- Анализ сообщений об ошибках, поиск ошибок;
- Исследование исходных кодов для устранения ошибок.
- Улучшение качества тестирования
- Измерение и анализ покрытия утверждений спецификации тестовыми сюитами;
- Измерение и анализ покрытия исходного кода тестовыми сюитами;
- Определение возможности улучшения покрытия утверждений \ исходного кода.
- Оптимизационные исследования
- Разработка и прогоны программ, анализирующих код, анализ результатов;
- Изучение системной архитектуры, дизайна и исходных кодов для определения узких мест в функционировании.
Типы тестирования
Мы предоставляем все типы тестирования - как методом «черного ящика», так и методом «белого ящика»:
- Сертификационные и аттестационные тесты
тестирование методом «черного ящика», основанное исключительно на спецификациях или стандартах, которым должен удовлетворять тестируемый продукт.
- Функциональное тестирование
проверка соответствия продукта функциональным требованиям и спецификациям.
- Оптимизационное тестирование
узкие места идентифицируются и устраняются с помощью улучшения алгоритмов \ дизайна \ технологий, а также настройки программного \ аппаратного обеспечения.
- UI тестирование
автоматическое и интерактивное тестирование пользовательского интерфейса продукта для проверки его функциональных характеристик и дружественности интерфейса.
- Анализ документации
Анализ спецификаций на полноту и правильность, проверка документации продукта, пользовательских инструкций и пр.
Тестирование, включенное в процесс разработки программного обеспечения
В ходе всего рабочего цикла разработки программного обеспечения осуществляются следующие виды тестирования:
- взаимные проверки
- тестирование компонентов
- комплексное тестирование
- системное тестирование
- тестирование на совместимость
|
- регрессионное тестирование
- измерение производительности
- стрессовое тестирование
- инсталляционное тестирование
|
Инструментарий
Мы всегда стараемся автоматизировать процесс тестирования, насколько это возможно. В компании используется обширный инструментарий тестировщиков, разработанный с применением разнообразных технологий - от shell script до Java и XML, выполняющий различные аспекты тестирования:
- инструменты автоматической генерации теста,
- инструменты портирования тестов,
- инструменты создания набора тестовых сюит,
- инструменты измерения покрытия кода,
- инструменты оптимизации,
- инструменты статического анализа,
- инструменты автоматического прогона тестов.
При выполнении тестирования мы основываемся на следующих принципах:
- Тесное взаимодействие в процессе разработки. Тестовый отдел работает в тесном сотрудничестве с командами разработчиков, строго соблюдая установленные планы и отслеживая все изменения в требованиях к проекту.
- Мы начинаем тестирование на самых ранних стадиях работы над проектом, на стадии идентификации требований. Наш опыт показывает, что если с самого начала уделять пристальное внимание сформулированным требованиям, это позволяет избежать множества проблем.
- Обязательные проверки кода, спецификаций, документации.
- Объективность тестирования. Тестирующая команда работает независимо от группы разработчиков, что обеспечивает объективность результатов тестирования.
- Скрупулезность тестирования. Мы всегда проводим тестирование программного обеспечения самым тщательным образом. Разрабатывая программное обеспечение и оказывая услуги по тестированию, мы пользуемся всеми типами и методами тестирования, заданными нашим процессом разработки программного обеспечения и \ или требующимися в силу специфики продукта. Мы тестируем продукт во всех требующихся конфигурациях, платформах и средах.
- Постоянное улучшение качества тестирования. Мы всегда знаем качество своего тестирования, а также возможности его улучшения. Мы разрабатываем и используем инструменты измерения покрытия тестами кода и работаем над тем, чтобы увеличить покрытие.
- Автоматизация тестирования. Мы разрабатываем и используем автоматические системы генерации / прогонов / отчетов о результатах тестирования. Автоматизация тестирования позволяет нам повышать эффективность тестирования и существенно снижать стоимость этой услуги.
Примеры успешных проектов:
- Тестирование реализации J2SE, J2ME
- Тестирование компиляторов языка Fortran
- Разработка тестовой базы и тестовых инструментов для языка Fortran
- Тестирование интернет- системы поддержки принятия бизнес-решений
- Тестирование инструмента отладки dbx
- Тестирование производительности среды интегрированной разработки.