« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга


ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
    Популярное
Работа с графикой, прозрачные картинки

Ввод формул в таблицу, производящую шесть простых действий

Функция CreatePalette

Индусские програмисты

Создание bootsector'а

Функция AccessResource

Как защитить мою программу, чтобы никто не смог её прочитать?

Введение

Стандартный API ввода/вывода Win32

Глава 7. Фреймы.




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 181
Пользователей: 0

Статьи:: Тестирование :: Как избавиться от ошибок в ПО



отправить ссылку другу версия для печати  Обсудить на форуме

Как избавиться от ошибок в ПО



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

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

Последнее, впрочем, не совсем верно, если повнимательнее рассмотреть некоторые частные случаи. Например, научного сотрудника Массачусетского технологического института Шарфраза Хуршида, разрабатывающего процедуры автоматического тестирования ПО, никак нельзя отнести к числу виноватых.

Тестирование программного обеспечения предусматривает генерацию «входного потока» — специальных инструкций, которые должны выполнять программы. На каждую возможную ошибку должен быть создан свой тест, способный выявить ее.

Хуршид уже создал ряд алгоритмов «генерации входных потоков» и твердо верит в то, что качество подобных алгоритмов в ближайшие несколько лет заметно повысится. Однако эксперты утверждают, что само по себе улучшение технологии автоматического тестирования не оказывает прямого воздействия на повышение качества программного обеспечения.

«При создании большей части программных продуктов вопросам их качества просто не уделяется достаточного внимания, — пояснил директор Института изучения качества программного обеспечения при Техасском университете Херб Краснер. — В деловом мире основным условием является не высокое качество программного обеспечения, а максимально сжатые сроки его выпуска на рынок. Это постоянная гонка, которая отодвигает вопросы качества на второй план».

Результаты исследования, проведенного в прошлом году Национальным институтом по стандартам и технологиям при Министерстве торговли США, показывают, что недостаточно тщательное тестирование программного обеспечения ежегодно увеличивает расходы производителей и клиентов на 60 млрд. долл. Вирусы, проникающие через имеющиеся бреши, приводят к дополнительным убыткам, которые также исчисляются в миллиардах долларов.

Внедрение стандартов

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

Новый импульс усилиям органов стандартизации в какой-то степени был придан обнаружением знаменитой «ошибки всех времен и народов», которая в 1999 году привела к катастрофе космического аппарата Mars Polar Lander, запущенного для проведения исследований на Красной планете. Для НАСА это стало переломным моментом, после которого руководство космического агентства стало более широко привлекать университеты к решению задач повышения качества. Агентство НАСА выступило также в качестве одного из инициаторов создания при Университете Карнеги-Меллона консорциума Sustainable Computing Consortium (SCC), в который вошли представители компаний FedEx, Pfizer, Microsoft и Oracle.

Инженеры знают, как оценить качество многих сложных продуктов: самолетов, лекарств, мостов и т. д. Но стандартов для оценки качества программного обеспечения и сравнения его с другими программными продуктами аналогичного назначения пока не существует. Поэтому непонятно, как следует расценивать, к примеру, заявления Microsoft о намерении выпускать продукты, «заслуживающие доверия», или желание Oracle придать своему «супернадежному» пакету статус стандарта.

«Как сравнить то, что ‘заслуживает доверия’, с тем, что провозглашается ‘супернадежным’?» — задается вопросом директор SCC Уильям Гуттман. Консорциум стремится поддержать процесс создания стандартов и спецификаций, которые позволят оценивать различные параметры систем, в частности их функциональную надежность и безопасность. Если эти показатели применительно к программным продуктам будут поддаваться количественной оценке, пользователи получат возможность делать покупки, исходя из качества предлагаемой продукции.

Такова точка зрения Гуттмана, сравнивающего сложность задачи, поставленной перед его группой, с разработкой норм и правил муниципального строительства фактически с нуля.

Вина законодателей

Во многом дальнейшее повышение качества программного обеспечения зависит еще и от законодательного и правового регулирования.

Профессор информатики технологического института Мельбурна (шт. Флорида) Сэм Канер, рассмотревший вопросы юридической защиты пользователей программного обеспечения в своей книге Bad Software (John Wiley & Sons, 1998), сравнивает сегодняшние обязательства создателей программ с обязательствами автомобилестроителей до принятия законов об обмане потребителей. (Сейчас такие законы действуют практически во всех штатах. К примеру, в Калифорнии один из законов гласит, что, если новый автомобиль в течение первого года после приобретения провел в ремонте более 30 дней или если один и тот же дефект трижды безуспешно пытались устранить, автопроизводитель обязан забрать машину и полностью компенсировать затраты клиента. Кроме того, продавая уже отремонтированную машину (естественно, как подержанную), производитель обязан сообщить покупателю, что ему предлагается именно возвращенный первым владельцем автомобиль. — Прим. ред.)

Сейчас ответственность производителя программного обеспечения, как правило, ограничена стоимостью продукта. Убытки, понесенные пользователем в результате простоя, и упущенная выгода при этом не компенсируются.

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

Создание программного обеспечения с минимальным числом ошибок — настоящая страсть Дэйла Кемпбелла. Директор информационной службы Warner Music Group видит отличную возможность для снижения фактических затрат компаний за счет совершенствования процесса разработки.

В Warner Music Group используют различные инструментальные средства обнаружения ошибок в программном обеспечении, которое разрабатывается внутренними силами компании (в частности, пакет Monrovia, предлагаемый компанией Parasoft). По словам Кемпбелла, процедура разработки совершенствуется по мере повышения качества приобретаемых инструментальных средств.

«Изъяны программного обеспечения вызывают необходимость повторного выполнения работ, а дополнительные работы приводят к потере денег, — пояснил Кемпбелл. — Не думаю, что покупатели когда-нибудь согласятся приобретать ‘физические’ продукты с таким же количеством дефектов».




Рубрика: Тестирование




Вышел MySQL 5.1.30, первый стабильный рели....

MySQL

После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:


Подробнее... | Рубрика: MySQL | Добавлено: 28.11.2008

Тестирование параллельных программ.

Тестирование

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


Подробнее... | Рубрика: Тестирование | Добавлено: 28.11.2008

Архитектура AMD64 (EM64T).

Архитектура AMD

Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.


Подробнее... | Рубрика: Архитектура AMD | Добавлено: 27.11.2008

Остальные статьи:

Платформа 2009. Определяя будущее
Windows Vista Bridge Sample Library - упра...
Оптимизация 64-битных программ
Подгрузка через AJAX HTML-кода, содержащег...
Обзор нового релиза самой мощной Ajax библ...
Firebug 1.3 и 1.4 alpha — что нового и инт...
Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новы...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейс...
Генераторы отчетов FastReport 4 и QuickRep...


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия