Разметки метаданных

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

  • возраста:
    без измененный текст, тесты не нужны изменения;
  • oldToBeChanged:
    текст изменен, тесты должны быть изменены;
  • новое:
    суммарно новый текст, новые испытания необходимы;
  • newWritten:
    Новый текст, но испытания уже существует (потому что процесс развития испытания начались, как только проект был доступен спектр);
  • newWrittenToBeChanged:
    Новый текст, тесты существуют, проект спектра изменить таким образом, испытания должны быть изменены или существующие тесты недостаточно.

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

С данной разметки архитектуры это было решено использовать название атрибута HREF-теги (второй якорь). Так разметки будет выглядеть так:

<a name=assertionID> <! - Шорд описание в виде HTML-комментарий ->
утверждение выступлении здесь
<img src="pics/assert.gif"> href="path <a к test" title=assertType> тест ID который так же, как утверждение ID </ A>

Название атрибута можно просматривать в браузере, как намек.

JLS3 html Markup metadata

JLS3 html code Markup metadata



, , , , , , , , , ,
  • Закладки
Print This Post Распечатать этот пост

Разметки перевода - кошмар или кусочек торта?

train Markup transfer   nightmare or a piece of cake?
Весь процесс создания разметки и развивающихся испытаний времени. И когда кажется, что работа сделана, новая версия спецификации освобождены. Что происходит дальше? Конечно, есть необходимость в новой версии тестового пакета. Новые тесты должны быть написаны, а старые обновлены или даже исключить.

Самый лучший способ начать это делать разметку. Эта задача может быть разделена на две подзадачи:

  • передачи старой разметки с предыдущих спектр новой спектра (это необходимо, потому что многие испытания были уже написаны, они связаны спецификации идентификаторов, повторно все возможные тесты это хорошая идея);
  • разметки, новые и обновленные утверждений.

Перенос разметки является достаточно простым, чтобы сделать это вручную:

  1. Найти теги разметки в старой спецификации.
  2. Найти лучшее место для вставки тегов в новой версии спецификации.
  3. Включить метку.

Если Есть только 10 утверждений - это работа кусок пирога. Но если Существуют тысячи это тяжелый труд, который должен быть автоматизирован. Самая трудная часть, чтобы найти новых правильное место для разметки тегов. Трудно только потому, что спектр был изменен. Для JLS2 JLS3 в процессе миграции flollowing alrorithm были использованы:

Каждое утверждение округляется с HTML якорей. Оба они должны быть переданы с использованием таких алгоритмов.

Хин 1T: если некоторые теги передается, есть большая вероятность того, что следующий тег в старых спектра будут размещены после 1, которая передается.

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

  1. Посмотрите на текст перед и после тега в старой спецификации. Найти ее в новой спецификации. Если один из них 72s Markup transfer   nightmare or a piece of cake? не изменилась - ответ найден. Обычно длина должна быть на 1-2 sentances, по крайней мере 60 символов. Если ни один или несколько sentances найдено - пропустить этот шаг.
  2. Попробуйте сделать то же самое, как в (1), но удалить все HTML-теги к тексту, который окружает метки. Если никто не нашел - пропустить этот шаг.
  3. Попробуйте принять алгоритм, который пытается найти подобный текст в новой спецификации.
    . Используйте действия (1) и (2), но desrease длина поиска текста в цикле, пока Сентанс находится или длина является слишком коротким. Практической работы показал, что это число не должно быть меньше 20.
    б. Если шаги (1) и (2), или (3, a) нашел несколько sentances увеличить длину текстового поиска, пока текст не находится в спектре новых или верхний предел (напр. 140 символов) будет достигнут. Использовать подсказки, чтобы найти наиболее подходящий текст.

Принять алгоритм может использоваться как с игнорируя HTML-теги и воспользоваться ими. Алгоритм подходит для спецификации написаны в виде простого текста, HTML или XML.

Этот алгоритм был реализован в JLS2-> JLS3 инструмент передачи разметки. 84% от разметки метки были переведены автоматически. Остальные были сделаны вручную.



, , , , , ,
  • Закладки
Print This Post Распечатать этот пост

Утверждения и разметки

book Assertions and markup

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

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

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

Пример утверждений из Java спецификации языка: smt Assertions and markup

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

Там может быть много заявлений, которые не являются проверяемыми или включать неопределенности. Иногда такие заявления включать такие слова, как "возможно" или "возможно". Это неправда, что если предложение имеет слово "может" не проверяемого, но обычно это так.

Пример не-проверяемым заявления:

  • Мы не рекомендуем такой "смешанных обозначения" для массивов.
  • Ситуации, когда класс объекта не известны статически может привести к ошибки времени выполнения типа.
  • Если, однако, оценка выражение генерирует исключение, то выражение называется полной круто.

Есть много дискуссий и споров о утверждений. Некоторые говорят, что примеры не должны рассматриваться как утверждения. Другие говорят, что каждый оператор и утверждения Есть два вида из них: проверяемые и не проверяемые. Мое личное мнение таково, что утверждение, безусловно, то проверяемым. И в большинстве случаев примеры утверждения только потому, что испытания могут быть записаны проверки конкретного примера.

Процесс выявления утверждения в спецификации называется разметки. Есть много подходов. Но в любом случае пользователь должен иметь возможность получить информацию о том, утверждение утверждение и как-то отличать один от другого утверждения. Там может быть отдельное хранилище с отображением утверждений и их идентификаторов для отчетности. Мне нравится идея интеграции разметки в спецификацию. Этот подход был выбран для языка области Java SE тестов. JLS была написана в FrameMaker. С механизмы экспорта PDF и HTML версии были созданы. HTML-версия была использована при создании тестового набора.

В JLS JLS и 2 специальных якорей определены в начале и в конце утверждение. Дополнительная информация была assertionID и краткое резюме в заявлении. Конец якорь изображение и ссылку на тест. HTML Посмотреть и код вид приведены на соответствующих рисунках. Утверждение ID являются arr033, arr034, arr020 и т.д.

JLC2 html1 Assertions and markup

JLC2 html code1 Assertions and markup

Общая идея может быть описана как:

<a name=assertionID> <! - Шорд описание в виде HTML-комментарий ->
утверждение выступлении здесь
<img src="pics/assert.gif"> href="path <a к test"> тест ID который так же, как утверждение ID </ A>

Если отдельные заявления в различных частях спецификации проверяются один тест первый тэг будет что-то вроде arr033_0, arr033_1, arr033_2.

Такая архитектура была использована для JLS и JLS 2. Она была немного модифицирована для JLS3, но основная идея была сохранена. Я знаю несколько примеров подходов нестатических утверждение идентификаторы хранятся в отдельном хранилище, где ID некоторая хэш-значение, вычисленное на основе содержания. По ряду причин он показал, чтобы быть не очень хорошим решением. Существует всегда сложный процесс перехода на новую версию спецификации. Но, на мой взгляд, это гораздо проще с помощью статического удостоверения личности вкладывается в спецификации.



, , , , , , , , , , , , , , , , , ,
  • Закладки
Print This Post Распечатать этот пост