Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Причина






 

Ядро Windows 95 (Kernel32.dll) содержит ошибку, которая препятствует корректному освобожде­ нию определенных небольших структур данных, связанных с процессами сокетов Windows и вы­ деленными каналами. Со временем эти небольшие утечки памяти могут приводить к существен­ ному уменьшению объема доступной памяти.

 

Имейте в виду, что ресурсы, связанные с программой, можно освободить, закрыв программу. По­ сле выхода из программы и перезапуска Windows 95 память освобождается.

 

Рис. 10.5. Поступившая в продажу версия Windows 95 с утечками памяти операционной системы.

 

Утечки памяти особенно трудно выявить в объектно-ориентированных исходных кодах. Тем не менее, при помощи трассировки и отслеживания гистограммы объектов (Object Histogram), разработчик может выяснить, какой объект выделяет и освобождаетпамять и какие вызовы присутствуют между этими вызовами диспетчера памяти. Пе­ ред загрузкой и запуском сомнительной Java-программы саму среду следует запустить с параметром -tracepopulation. Как только объект, вызывающий утечку памяти, локали­ зован, не забудьте воспользоваться технологией статического тестирования для ус­ корения выяснения основной причины. Еще важнее разобраться в коде и любых воз­ можных прерываниях в удачной ветви, которые могут помешать объекту освобождать память. В C++ существует объект debug_malloc, который может оказаться очень полез­ ным для трассировки утечки памяти. Хотя утечки памяти не носят перемежающийся характер, они быстрее проявляются в бездисковых системах с небольшим объемом памяти, нежели в конфигурациях с большим объемом оперативной памяти и диско­ вого пространства, перезагрузка которых выполняется редко (например, в сервер ных приложениях).

 

Исходя из концепции быстрого тестирования, можно дать следующий совет. Как только разработчик обнаружил и устранил утечку памяти, он должен проверить но­ вый код на предмет наличия в этой области других ошибок, могущих привести к утечкам памяти. Достаточно часто, столкнувшись с первым проявлением ошибки, разработчик считает ее единственной, упуская из виду другие ситуации, когда этот же код может не освобождать динамически распределяемую память. Этот совет проти­ воречит также призывам большинства инструкторов по тестированию и менеджеров конфигурации заниматься устранением только той проблемы, которая указана в от­ чете об ошибке. Если вы хотите следовать советам по быстрому тестированию, ино­ гда приходится отказываться от трафаретного подхода и просто заниматься повтор ным проектированием и реализацией приложения.


Глава 10, Технологии динамического тестирования и советы  

 

 

Тестирование интерфейса " человек-компьютер"

 

Интерфейс " человек-компьютер" (human-computer interface, HCI) в современных компьютерах может охватывать широкое множество различных периферийных уст­ ройств, таких как клавиатура, клавишная панель, мышь, световое перо, монитор с сенсорным экраном, речевой интерфейс, сканер и многие другие. Кроме того, в слу­ чае использования больших систем управления производством, работающих на осно­ ве больших вычислительных машин, для работы с программой может требоваться большое количество операторов, каждый из которых имеет собственный персональ­ ный компьютер, действующий как терминал большой вычислительной машины. Планирование тестирования исключительно важно для координации тестирования интерфейса " человек-компьютер", поскольку, возможно, это — единственное тести­ рование, при котором продукт рассматривается полностью с точки зрения пользова­ теля. Через этот интерфейс доступны для тестирования многие функциональные тре­ бования пользователя, а именно это и есть основная цель системных испытаний.

 

 

При использовании интерфейса " человек-компьютер" для выполнения тестиро­ вания с точки зрения пользователя следует учитывать одно важное обстоятельство. Если команда тестирования начинает тестирование с этапа системных испытаний и при этом интенсивно использует интерфейс " человек-компьютер", диапазон тести­ рования будет очень ограничен. Тестирование интерфейса " человек-компьютер" — лишь один из множества способов выполнения быстрого тестирования с целью об­ наружения ошибок. Фактически, как правило, процесс тестирования интерфейса " человек-компьютер" оказывается не слишком эффективным при поиске даже наибо­ лее общих ошибок, поскольку этот процесс больше ориентирован на проверку мар­ шрута прохождения потока данных по продукту, а этот маршрут уже подвергался ин­ тенсивному поблочному тестированию, выполняемому по тщательно разработанным сценариям.

 

 

При организации тестирования интерфейса " человек-компьютер" всегда полезно, чтобы с членами команды тестирования сотрудничал администратор баз данных и несколько конечных пользователей. Они могут разрабатывать тестовые случаи, сце­ нарии тестирования и методику обработки результатов тестирования для проверки правильности отображения входных данных на экране. Далее такая информация со­ храняется в соответствующих записях базы данных, обрабатывается и участвует при составлении отчетов. Администратор баз данных и пользователи могут также созда­ вать тестовые случаи, сценарии тестирования и методику обработки результатов тес­ тирования для проверки правильности форматирования выходных данных и их пе­ редачи на соответствующий носитель или в коммуникационные буферы.

 

Конечные пользователи могут оказать существенную помощь, сотрудничая с груп­ пой тестирования при разработке объективного приемочного теста. В больших ор­ ганизациях существует должность бизнес-аналитика. Как правило, бизнес-аналитик выполняет роль своего рода конечного пользователя, который оплачивает работы из фонда проекта и организует тестирование интерфейса " человек-компьютер", при­ званное определить приемлемость данной версии программного обеспечения. Приемочные тесты, выполняемые конечными пользователями, как правило, будут выполняться в соответствии с определенным сценарием и будут исследовать только



Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал