О языках программирования и трансляторах тест

Нравится эта статья? Мы рекомендуем

Чем отличается Тестирование Объектно-ориентированного программного обеспечения?

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

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

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

слова unit изменился. Мы по-прежнему проводим интеграционное тестирование, чтобы убедиться. Что различные подсистемы могут работать правильно и согласованно. Нам все еще нужно системное тестирование, чтобы убедиться. Что программное обеспечение соответствует требованиям. Мы все еще проводим регрессионное тестирование, чтобы убедиться. Что последний раунд изменений в программном обеспечении не повлиял отрицательно на то. Что он мог сделать раньше.

Различия между Наиболее существенное различие заключается в том. Как объектно-ориентированное программное обеспечение проектируется как набор объектов. Которые по существу моделируют проблему. А затем сотрудничают для достижения решения.

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

Большое преимущество такого подхода к проектированию состоит в том. Что аналитические модели напрямую соотносятся с моделями проектирования, которые. В свою очередь. Соотносятся с кодом. Таким образом, мы можем начать тестирование во время анализа и уточнить тесты, выполненные в анализе. До тестов для проектирования. Тесты для проектирования. В свою очередь. Могут быть уточнены до тестов реализации.

Это означает. Что процесс тестирования может быть переплетен с процессом разработки. Мы видим три существенных преимущества тестирования анализа и проектирования моделей:

  1. Тестовые случаи могут быть определены ранее в процессе. Даже когда требования определяются. Раннее тестирование помогает аналитикам и проектировщикам лучше понимать и выражать требования и гарантировать. Что указанные требования

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

  3. Тестовые примеры могут быть проверены на корректность в самом начале проекта. Корректность тестовых примеров—в частности. Системных тестовых примеров—всегда является проблемой. Если тестовые примеры выявляются на ранней стадии и применяются к моделям в начале проекта. То любые недоразумения в требованиях со стороны тестировщиков могут быть исправлены на ранней стадии. Другими словами. Тестирование моделей помогает обеспечить последовательное понимание тестировщиками и разработчиками требований к системе.

Хотя тестирование моделей очень полезно. Важно не позволить тестированию стать единственным фокусом усилий по тестированию.

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

Еще одно различие между традиционными проектами и проектами. Использующими объектно-ориентированные технологии. Касается целей программного обеспечения. Рассмотрим, например. Что важной новой целью во многих компаниях является создание многоразового программного обеспечения. Расширяемых конструкций или даже объектно-ориентированных фреймворков. Представляющих многоразовые конструкции. Тестирование может (и должно) проводиться для выявления сбоев в достижении этих целей.

Традиционные подходы и методы тестирования не решают таких задач.