|
Октябрь 2010
Покрытие кода
и углубленное тестирование. Часть 3
Лайза Слэйтер Николлз (Lisa Slater
Nicholls)
Читайте первую и вторую части статьи в журналах FoxTalk
за август-сентябрь 2010 года
Автоматизированное тестирование
Поскольку тестирование отнимает время и ресурсы, было бы только разумно
избежать при этом их излишнего расходования. Таким преимуществом обладают
методики автоматизированного тестирования.
Несколько «за» и «против»
Кроме того, по моим наблюдениям, у автоматизированного тестирования есть то
преимущество, что оно уменьшает эмоциональную составляющую этого
перенасыщенного эмоциями процесса. Автоматизированный тест не так легко
«вывести из себя», к тому же он предоставляет более последовательный,
сопровождаемый беспристрастным отчетом отклик, нежели другие типы
«доносителей» об ошибках. В атмосфере общего стресса, который сопровождает
разработку приложений, и «страха перед возможной неудачей», который у многих
разработчиков вызывают программные ошибки, все, что способно сократить
эмоционально опасные моменты тестирования и процесса предоставления
информации об ошибках, должно рассматриваться как полезная вещь. Я бы даже
сказала, что автоматизированное тестирование — это важная составляющая для
совершенствования процесса разработки, точка.
Впрочем, я также наблюдала, что люди иногда слегка переусердствуют в своей
вере в автоматизированное тестирование.
Автоматизированное тестирование не означает, что вам вообще не надо
задумываться о тестировании. И оно не обеспечит вам громадную экономию
времени — по крайней мере, это произойдет не сразу.
Начать с того, что проектирование автоматизированных тестов отнимает массу
времени, несмотря даже на то, что в дальнейшем они могут сберечь ваше время.
Это аналогично тому факту, что прежде надо затратить массу времени на
проектирование по-настоящему хорошего абстрактного класса, удовлетворяющего
многим требованиям, а уж потом создание подклассов этого класса, возможно,
окажется очень легким делом. Еще одно сходство заключается в том, что
подготовка автоматизированных тестов, подобно хорошим абстрактным
суперклассам, требует очень большого опыта. В первых трех случаях вас
подстерегает неудача; опять-таки, совсем как в ООП.
Даже если вы подготовили тщательно продуманную и надежную процедуру
автоматизированного тестирования и знаете свои инструменты
автоматизированного тестирования вдоль и поперек, чтобы эти средства
работали, придется еще потратить какое- то время на создание сценариев,
«подогнанных» под требования каждого приложения или сценария тестирования.
По-видимому, этот факт является непреложным, независимо от того, каким
инструментом вы пользуетесь.
Вы по-прежнему должны думать. И на это по-прежнему потребуется время. Но
автоматизированное тестирование может оказаться более последовательным,
более объективным и более продуктивным, чем отказ от его выполнения. Памятуя
об этом, мы должны подумать о том, как реализовать такую практику в среде
VFP.
Вопрос формы
Энди Крамек (Andy Kramek) и Марсиа Акинз (Marcia Akins)
В этом месяце Энди и Марсиа создают класс, который обеспечивает создание
документов текстового процессора Word из шаблонов, используя именованные
закладки и таблицы, чтобы указать места для вставки данных. Этот класс
изначально разрабатывался для использования с версией Office 2003, но без
модификаций будет работать с версиями Office XP и Office 2000. Он также
будет работать с версией Office 2007, но в этой версии по умолчанию
создаются файлы нового типа «.docx».
Классы членов
предоставляют свободу действий
Гарретт Фитцджеральд (Garrett Fitzgerald)
Появившаяся в версии VFP 8 новая возможность, ее часто именуют «member
classes» (классы членов), — это набор новых свойств и новых способов
определения классов, который может предоставить намного большую свободу
действий при работе с некоторыми элементами управления. Надо определить в
элементе управления pageframe несколько вкладок page с различными свойствами
и настройками? Не проблема. Как насчет более тонкой настройки заголовков
столбцов в элементе управления grid? Пожалуйста. В Visual FoxPro есть
определенные классы, предназначенные для использования только в контейнерах:
например, вкладки Page и заголовки Header могут существовать только в
объектах PageFrame и Column. В версиях, предшествовавших VFP 8, если мы
хотели образовать подклассы таких классов, их приходилось добавлять вручную,
с помощью метода AddObject. Но у такого подхода имелись проблемы. Например,
мы не могли размещать элементы управления на вкладке, созданной как
подкласс, в конструкторе форм. Однако, в версии VFP8 появились новые
свойства MemberClass и MemberClassLibrary, а также свойства HeaderClass и
HeaderClassLibrary объекта Column. Эти свойства позволяют предоставить
контейнерам информацию о том, какого рода элементы управления они должны
использовать в том случае, если мы меняем значения свойств, указывающих,
сколько элементов управления содержат контейнеры.
DataLookup —
каркас класса
Джиджио Паппакан (Jijo Pappachan)
Такая функциональная возможность, как поиск данных, требуется в каждом
профессиональном приложении. И нам надо обеспечить конечному пользователю
возможность легко и быстро выбрать соответствующую запись из большой таблицы
вроде списка товаров, списка счетов и так далее. Вот каркас класса,
предназначенного для создания в приложениях форм поиска. Это очень простой
класс. Я создал его для своих приложений и обнаружил, что он очень удобен.
Мне хотелось бы поделиться этим классом с вами. Уверен, что его создание
сэкономит вам время. Пожалуйста, убедитесь сами. |