Тестирование-книга. Ю. Н. Артеменко Научный редактор
Скачать 6.27 Mb.
|
Глава 8: Тестирование принтеров и других устройств 2 2 3 • Встроенные шрифты. Есть ли у принтера встроенные шрифты и работает ли с ними тестируемая программа? Если да, пользуется ли программа лучшими из них? Успешно ли выполняется переключе ние шрифтов программой? Можно ли печатать двумя разными шрифтами в одной строке? А разными начертаниями? Может ока заться, что для смены начертания шрифта необходимо выполнить возврат каретки. • Загружаемые шрифты. Программа может загружать в принтер и собственные шрифты. Эту возможность поддерживают практически все принтеры. Однако здесь возможны проблемы: некоторые симво лы загружаемого шрифта могут быть определены неправильно, и тогда принтер не будет их печатать. Например, так было с принте ром LaserJet И. Для выявления подобных проблем следует подгото вить тестовые примеры с полными наборами символов всех размеров. • Специальные символы. Если программа печатает неанглийские сим волы и графические символы расширенного набора ASCII, убеди тесь, что они печатаются правильно. Возможно, принтер необходимо переключить на иной набор символов или загрузить соответствую щий шрифт, если встроенных шрифтов нужного языка у принтера нет. Что при этом произойдет с междустрочными и межсимвольны ми интервалами? • Графика. В этом наиболее распространенном в настоящее время режиме печати тоже существуют сложности. Например, проблему может представлять собой двунаправленная печать на матричных и струйных принтерах. Напечатайте вертикальную линию и посмотри те, получится ли она ровной. Если нет, попробуйте отключить двунаправленную печать. Вторым важным вопросом является разре шение принтера. Поскольку разрешения принтера и экрана различ ны, очень важно, чтобы при формировании изображения документа для вывода на экран и на бумагу программист правильно учитывал их соотношение — в противном случае на экране и на бумаге доку мент будет выглядеть по-разному. • Разрешение. Если программа переключает принтер между различны ми разрешениями, необходимо проверить их все. Если в одном из разрешений печать выполняется нормально, это еще не значит, что так будет и в другом. Особенно тщательно протестируйте печать с самым высоким разрешением сложных документов, содержащих большое количество графики и множество переходов между черным и белым цветами. При этом могут использоваться внутренние про цедуры оптимизации принтера и драйверов, которые могут повли ять на качество изображения. 224 Часть II: Приемы и технологии тестирования • Обработка ошибок. При печати сложного графического документа или текста, набранного очень мелким шрифтом, лазерному принтеру может не хватить памяти, или же его программное обеспечение может не справиться с таким сложным заданием. Что в таком слу чае будет делать ваша программа? Есть ли в ее руководстве соответ ствующая информация? Может ли подобная неприятность произойти при нормальном использовании программы или только в случае, если пользователь выполнит некоторые нестандартные дей ствия? Что, если протестировать принтер с минимально возможным объемом памяти или поработать с одной из ранних моделей, в ко торой функции обработки ошибок гораздо менее совершенны. И наконец, после того как в работе принтера произойдет сбой, пере загрузите его с помощью кнопки Reset (не выключая) и попробуй те распечатать еще что-нибудь. Этот очень важный тест, и, если он окажется неудачным, постарайтесь выяснить, в чем дело — в аппа ратуре или в программном обеспечении. Таблицы ширины символов пропорциональных шрифтов. Если про грамма работает с пропорциональными шрифтами, возможно, вы столкнетесь со специфическим типом ошибок, связанных со спосо бом формирования изображений символов. Для пропорциональных шрифтов в системе хранятся специальные таблицы со значениями ширины их символов, т.е. количества точек по горизонтали, занима емых каждым символом. В программах, работающих по принципу WYSIWYG (what you see is what you get — что видите, то и получа ете), символы печатаются на основе информации из такой таблицы, и, если в ней содержатся ошибки, символы могут частично накла дываться или, наоборот, располагаться слишком далеко друг от дру га. Строчки могут получаться неодинаковой длины, в отличие от программ, не относящихся к типу WYSIWYG, в которых окончание строки всегда определяется по суммарной ширине напечатанных символов. Кроме того, у различных принтеров таблицы ширины символов для одного и итого же шрифта могут отличаться. Если один матричный принтер является клоном другого, нельзя ручаться, что распечатанный ими один и тот же документ будет выглядеть одинаково. Форматы графики. Если программа печатает графику различных форматов, лучше проверить каждый из них, причем с книжной и альбомной ориентацией страницы. Выполните такие тесты для каж дого класса принтеров, поскольку для них могут использоваться разные подпрограммы формирования изображений. Глава 8: Тестирование принтеров и других устройств 2 2 5 • Цвет. Соответствие между цветами на экране и на бумаге может оказаться весьма приблизительным. Составьте об этом отчет. Про граммист может подкорректировать драйвер или использовать дру гие цвета в зависимости от выбранного принтера. • Параметры страницы. Программа может печатать на бумаге самых разных размеров: конвертах, стандартных листах формата A3 и А4 или любых нестандартных. Данные могут впечатываться в форму или распечатываться в определенном месте страницы. Кроме того, возможны два различных варианта печати: на отдельных листах и на сплошном рулоне (программистам со стажем хорошо знакома пер форированная по краям плотная "АЦПУ-шная" бумага). Для этих двух типов бумаги используются различные установки полей. Каж дый из типов и размеров бумаги необходимо протестировать отдель но, однако делать это на всех возможных принтерах не обязательно: достаточно взять по одному принтеру каждого класса. Если эти те сты будут выполнены успешно, то, скорее всего, они пройдут и на других принтерах. Впрочем, абсолютной гарантии здесь нет. • Дорогостоящие формы и бумага. Если программа должна впечаты вать данные в дорогостоящие формы или печатать их на специаль ной дорогостоящей бумаге, не стоит сразу использовать их для тестов. Попечатайте на обычной бумаге и ксерокопиях формы или даже пустых листах соответствующего размера, пока не убедитесь, что все работает правильно. • Расположение текста и графики. Страничные и струйные принте ры не могут печатать у самых краев бумаги. Размеры недоступных зон зависят от конкретного принтера. Даже если принтеры совмес тимы между собой, размеры недоступных зон у них могут оказать ся разными. Проверьте, не позволяет ли тестируемая программа располагать текст и графику в тех местах страницы, где они не могут быть распечатаны. • Полосы, тени, странный способ заполнения. Графические алгорит мы программы и принтера могут взаимодействовать между собой, приводя к самым неожиданным результатам. Если заполненный объект (например, большой серый квадрат) странно выглядит на бумаге (обычно при печати на страничном принтере), не стоит сразу предполагать, что все дело в принтере, в частности, в плохом кар тридже. Даже если программист будет утверждать, что дело именно в этом, попробуйте распечатать такое же изображение из другой программы. 2 2 6 Часть II: Приемы и технологии тестирования Накапливайте знания и делитесь ими с сотрудниками В процессе работы тестировщик многое узнает о конкретных моделях принтеров. Одни из устройств оказываются полностью совместимыми, другие, наоборот, не соответствуют утверждениям производителей об их совместимости. Накапливают знания и сотрудники группы технической поддержки, особенно благодаря жалобам пользователей. Много важного узнают программисты, руководители проектов и другие члены команды разработчиков. И если каждый тестировщик тратит силы и время на выяснение того, что уже выяснил однажды его коллега или предшественник, если он тес тирует по отдельности полностью совместимые устройства или пропуска ет уже известные ошибки, это означает, что работа организована плохо. Все накопленные сотрудниками знания можно собирать в едином ме сте, доступ к которому должен быть простым и удобным. Разработчики, тестировщики, сотрудники групп маркетинга и технической поддержки должны мгновенно получать любые сведения об уже протестированных устройствах. Разумеется, всеми этими возможностями обладает только централизо ванная база данных. Каждая запись в ней может описывать либо отдельный принтер, либо группу совместимых устройств, управляемых одним драйве ром. В базе данных может храниться информация о возможностях прин теров, их типах, встроенных шрифтах и т.п. Не стоит включать в запись слишком много полей — ее размер должен быть оптимальным для быстрого заполнения и прочтения. Кроме несколь ких полей для стандартной обязательной информации, включите еще пару текстовых полей переменной длины, в которые каждый сможет вписать все, что считает важным. Например, в таком поле можно привести выдержки из журнальных обзоров, результаты тестирования или результаты исследований, проведен ных в ответ на звонки пользователей, сведения о совместимости устройства или сведения, полученные от производителя принтера. Обязательным тре бованием должно быть сопровождение каждой записи датой и фамилией ее автора. Со временем база данных аппаратно-программных конфигураций станет ценнейшим ресурсом вашей компании. Очень важно, чтобы доступ к базе данных был свободным для всех сотрудников компании — ведь каждый из них потенциально может внести в нее ценную информацию. Ограничивая доступ к данным, компания выиграет не много, зато много потеряет. Глава 8: Тестирование принтеров и других устройств 2 2 7 Советы по автоматизации тестирования Наступит момент, когда все принтеры и драйверы наконец будут протестированы и будет выявлено множество ошибок. Затем в программу будут внесены исправления, причем для этого еще должно оставаться до статочно времени. После этого ряд тестов придется повторить, чтобы про верить исправления и выявить новые ошибки, допущенные программистами. Поскольку тестирование печати — процесс наиболее тру доемкий, лучше провести его как можно позднее, когда все другие состав ляющие программы будут уже полностью отлажены. Однако не стоит и откладывать его до последней минуты, поскольку ошибок наверняка будет очень много и вы просто не уложитесь в график. Именно поэтому руководитель проекта будет настаивать, чтобы вы заня лись принтерами пораньше. Итак, запланируйте несколько циклов тестирования и начните его как можно позже, но так, чтобы успеть выполнить всю работу. И обязательно придерживайтесь описанной в этой главе последовательности работ, ина че повторное тестирование придется выполнять слишком много раз. Для ускорения процесса тестирование печати можно значительно авто матизировать. Однако автоматизация имеет и свои издержки. О чем следует помнить при автоматизированном тестировании печати • Автоматизация требует времени. Не стоит увлекаться технологи ями. Если на автоматизацию работы требуется слишком много вре мени, ее лучше выполнить вручную. • Выходные данные должны поддаваться анализу. Не переводите тон ны бумаги — вы не сможете все это прочесть. Тесты должны быть простыми, с короткими и наглядными результатами. В противном случае сотрудники, особенно неопытные, не смогут правильно их провести и обнаружить ошибки. Особенно важно проектировать тесты так, чтобы их правильные результаты четко отличались от ошибок. Если дефект печати прак тически незаметен, то каким бы старательным ни был тестировщик, мало шансов, что он обнаружит эту ошибку. • Отслеживайте ошибки, связанные с печатью. Кроме ошибок в выходных документах, с печатью могут быть связаны и другие про блемы. Они могут быть связаны с параллельным выполнением дру гих функций программы во время печати, выделением буфера для выходных данных и их некорректной записью в этот буфер, выпол нением оверлея. Возможные разрушения данных или кода проявятся 2 2 8 Часть II: Приемы и технологии тестирования позднее, поэтому необходимо внимательно следить не только за происходящим на экране во время печати, но и за ее последствия ми, продолжив работу с программой еще некоторое время. • Действуйте гибко. Не стоит раз за разом повторять одни и те же тесты с одним и тем же принтером. После того как программист исправит ошибку и вы убедитесь, что ее и в самом деле больше нет, старые тесты повторять бессмысленно. Чтобы найти новые ошибки понадобятся новые тестовые примеры. Поработайте с программой, выполняя полезные, а иногда и совершенно нестандартные дей ствия, поэкспериментируйте с ней. Поставьте себе определенную задачу и попробуйте выполнить ее с помощью тестируемой програм мы. Вы будете удивлены, как много ошибок обнаружится при таком способе тестирования. Разумеется, он не заменяет выполнения фор мальных плановых тестов, но успешно их дополняет. Как сэкономить время и улучшить результаты тестирования В тестировании печати можно выделить четыре задачи, на выполнение которых уходит больше всего времени. Первой является планирование и разработка тестов. Следующей является поиск принтера (вполне возможно, что его придется одолжить у друзей или сослуживцев), проверка его пере- мычек и переключателей и подключение к компьютеру. По окончании тестирования принтер нужно вернуть на место. Если принтер чужой, перед возвращением хозяину необходимо восстановить положение всех его перемычек и переключателей. Вся эта подготовитель ная и восстановительная работа занимает вдесятеро больше времени, чем само тестирование. Третьей задачей является выполнение тестов, а четвертой — анализ их результатов. В этом разделе рассказывается, как можно сэкономить время на всех четырех этапах работ. И хотя все описанные ниже способы доста точно эффективны, не все они совместимы между собой, так что вам при дется сделать выбор. Тестовые файлы Главным принципом разработки тестовых файлов должна быть их про стота и наглядность. • Атрибуты текста должны быть очевидны. Например, если тести руется полужирное начертание, распечатайте что-нибудь вроде сле дующего: Полужирный шрифт. Обычный шрифт. Полужирный шрифт. Обычный шрифт. Полужирный шрифт. Обычный шрифт. Полужирный шрифт. Обычный шрифт. Полужирный шрифт. Обычный шрифт. Полужирный шрифт. Обычный шрифт. Глава 8: Тестирование принтеров и других устройств 2 2 9 Обычный. Курсив. Полужирный. Полужирный курсив. Обычный. Курсив. Полужирный. Полужирный курсив. Обычный. Курсив. Полужирный. Полужирный курсив. Обычный. Курсив. Полужирный. Полужирный курсив. Обычный. Курсив. Полужирный. Полужирный курсив. Обычный. Курсив. Полужирный. Полужирный курсив. Повторяющиеся шаблоны облегчают анализ результата. • Границы области печати должны быть очевидны. Если можно на печатать рамку, показывающую, где проходит граница области пе чати, сделайте это. Если графическую рамку распечатать нельзя, заполните страницу текстом. Напечатайте что-нибудь полезное. 123456789а123456789б123456789в123456789г123456789д 223456789а123456789б123456789в123456789г123456789д 323456789а123456789б12345б 89в123456789г123456789д 42345б789а12345б789б12345б789в12345б789г123456789д Поскольку символы и строки пронумерованы, сразу будет очевидно, что в третьей строке 37-й символ не пропечатывается и все строки имеют длину 50 символов. Не правда ли, так гораздо проще, чем считать символы самостоятельно. Никогда не считайте символы вручную. • Заполняйте поля данных цифрами, реальными данными и граничны ми значениями. С помощью цифр легко определяются размеры по лей. Кроме того, стразу видны потерянные данные. Например, если вы печатаете 123456789а123, а получаете 456789а123, значит, пер вые три символа потерялись. А если получается 1а23987456, в про грамме явно не все в порядке. Можно напечатать А23456789а123 в первом поле и Б23456789а123 во втором, чтобы по первым буквам было видно, что значения распечатаны в нужных полях формы. Можно выбрать один из символов, которым всегда отмечать конец поля, чтобы сразу было видно, что поле распечатано целиком, например, А23456789а123Х, Б23456789а123Х. Или же делайте первый и последний символы одинаковыми, только разных регистров: А23456789а123а, Б23456789а123б. После этого введите в поля реальные данные (фамилии, телефоны, наименования — все то, что будет в них храниться при реальной эксплу атации программы). Очень важно посмотреть, как на практике будет выг лядеть печатаемая программой информация. Именно на этом этапе можно будет усовершенствовать выходные формы, сделав их более удобными и привлекательными. 230 Часть II: Приемы и технологии тестирования Тестируя пропорциональные шрифты, распечатайте короткую и длин ную строчки с одинаковым количеством символов. Вот 20 символов "т" и "Щ", напечатанных пропорциональным шрифтом. ТТТТТТТТТТТТТТТТТГ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Щ Чтобы одно и то же поле протестировать с цифрами, стандартными данными, узкими и широкими символами, проще всего заполнить четыре записи таблицы. Аналогичным образом можно распечатать четыре разных изображения или четыре файла. Сокращение времени подключения и отключения техники Чтобы сократить время подключения и отключения техники, необходи мо заранее подготовить все принтеры, подключить их к коммутаторам, которые, в свою очередь, подключить к тестовым компьютерам. Именно так работают профессионалы. Щелкаете переключателем на коммутаторе, включаете питание, и можно тестировать. Организация тестовой лаборато рии — вопрос очень важный, и мы к нему еще вернемся. Если же так организовать работу не получится, постарайтесь выполнить на каждом принтере максимум работы и только затем переходите к тести рованию следующего устройства. Чтобы это стало возможным, тестирова ние печати важно начать как можно позже, когда всех остальных ошибок в программе уже не останется. Однако руководитель проекта не позволит вам этого, и потому, тестируя печать пять раз в ходе разработки, вам при дется по пять раз подключать и отключать каждый принтер. • Печать в файлы. В самом начале разработки попросите программи стов включить в программу команду печати в файл. Результирующий файл должен содержать всю посылаемую на принтер информацию, включая и управляющие коды. Если вывод на принтер Okidata 82 перенаправляется в дисковый файл, при копировании этого файла на принтер Okidata 82 получается точно такой же результат, как и при непосредственной печати из программы. В первом цикле тестирования одни и те же данные отправьте на принтер и в файл. Во втором цикле снова распечатайте те же дан ные в файлы. Затем сравните файлы первого и второго циклов. Если они окажутся идентичными, значит, уже найденные ошибки еще не были исправлены. Если же файлы отличаются, их можно распечатать и посмотреть, что изменилось. При этом повторно запускать про грамму вовсе не нужно — достаточно просто скопировать файлы на принтер. Это очень ускоряет дело. Глава 8: Тестирование принтеров и других устройств 2 3 1 • Протестируйте выбор различных устройств на одном совместимом с ними принтере. Предположим, что принтеры Epson FX-86e и Panasonic 1191 абсолютно совместимы. Не стоит при каждом повтор ном тестировании печати по очереди подключать их оба. Подсоеди ните один из них, выберите Epson FX-86e и выполните тестирование. Затем выберите Panasonic 1191 и повторите те же тесты. Если с результирующими данными что-то будет не так, вы это прекрасно увидите и на одном устройстве. • Анализируйте результат сразу после его распечатки. Если проана лизировать результаты теста, пока принтер еще подключен к компь ютеру, то, обнаружив ошибку, можно провести дополнительное тестирование. При подозрении, что все дело в неверной установке переключателей, их можно тут же проверить. Если вы будете накап ливать пачки выходных документов, чтобы просмотреть их через неделю, тогда при необходимости в дополнительных проверках и тестировании принтеры придется подключать снова. • Пользуйтесь принтерами, подключенными к сети. Обычно в корпо ративной сети имеется немало принтеров. Если установить програм му на одном из компьютеров этой сети с достаточными правами доступа, то можно тестировать печать на целом ряде принтеров безо всякой возни с техникой. Ускорение тестирования Чем меньше вы печатаете, тем меньше времени тратится на тестирова ние. Однако не стоит увлекаться сокращением объема тестовых примеров — сократив хороший тест, можно получить короткий, но плохой. Сэконо мить время лучше на другом: вместо того чтобы стоять над принтером в ожидании, пока он напечатает все, что нужно, можно работать с несколь кими принтерами одновременно. Количество принтеров выбирается так, чтобы оставалось время подой ти от одного принтера к другому и проанализировать результат. Слишком много техники включать ни к чему — вы только начнете пропускать ошиб ки и путать проводимые тесты. Кроме того, попросите программиста включить в программу управление печатью из командной строки. В качестве параметров программе, скорее всего, понадобятся имя входного файла, который требуется распечатать, информация о принтере и драйвере и некоторые настроечные данные, касающиеся шрифтов, разрешения печати и т.п. После печати программа Должна завершать работу. Благодаря этой функции программы можно бу дет написать пакетный файл, выполняющий следующие действия: • Передачу программе входного файла, выбор принтера, печать в файл. 2 3 2 Часть II: Приемы и технологии тестирования • Сравнение полученного файла с предыдущей версией. • Если файлы отличаются — печать нового файла. • Передачу программе следующего входного файла, печать, сравнение и т.д. В результате принтер может работать хоть всю ночь, а утром вам оста нется только просмотреть результаты. При этом можно печатать на одном принтере, а можно выбирать и разные устройства, перенаправляя весь вывод в файлы. Если же выбираемые устройства полностью совместимы, можно, выбирая их по очереди, печатать все на одном принтере. Оценка результатов тестирования Тесты, которые не выявляют ошибок или выдают такие распечатки, в которых ошибку очень трудно найти, не многого стоят. Поэтому важнее всего правильно спроектировать тестовые примеры. • Результаты тестирования должны быть очевидными. Об этом уже упоминалось при описании разработки тестовых файлов. • Не печатайте ничего лишнего. Например, если выходной файл оказался идентичным файлу, распечатанному на прошлой неделе, его незачем печатать снова. Не печатайте лишних страниц, абзацев, полей — ничего, кроме самого необходимого. Чем больше объем выходных данных, тем легче пропустить в них ошибку. • Правильные или прошедшие сравнение распечатки откладывайте вправо, неправильные или не прошедшие сравнение — влево. Органи зуйте результаты тестирования таким образом, чтобы в них было легко ориентироваться. • Если две версии результирующих файлов не совпадают, распечатайте их обе и пометьте распечатки. Затем просмотрите результаты, опре делите, какой из них правильный, и, если проблема решена, прове дите дополнительное тестирование, чтобы в этом убедиться. • Анализируйте результаты сразу после их распечатки. Не ждите следующей недели или следующего месяца, когда вы вообще забу дете о том, что делали. Будьте готовы сразу оценить результат и при необходимости провести дополнительное тестирование. • Выполняйте некоторые тесты самостоятельно. Если все тесты проводить только автоматизированно, вы рискуете пропустить со путствующие проблемы (например, мерцание экрана после печати каждого задания). |