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

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 Распечатать этот пост

Спецификация, соответствия, совместимость, испытания ... Что они такое?

Иногда все это кажется условиях весьма запутанной. Или, лучше сказать, что они обычно или даже всегда. abstract Specification, conformance, compatibility, tests... What are they all about? Особенно, когда разные люди и компании, понять ситуацию вокруг них по-разному. Так давайте начнем с самого начала.

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

Давайте создадим компьютерный язык. Прежде всего необходимо спецификации, которые будут описывать всю модель концепции, сказать разработчикам, что может быть представлено в виде программы, как она будет вести себя, что будет подготовлен, выполнены и т.д. После создания всех этих необходимых документов - вот и все, можно остановить прямо здесь. Если эта идея достаточно несколько других компаний, возможно, захотите создать их реализации: Fe компиляторы и выполнение условий. Но они должны соблюдать спецификации. В противном случае те же программы, будут работать на 1 и заканчиваться в разное время или даже провалиться по реализации других. Исполнение по выполнению всех указанных требований называется соответствия.

Почему это так важно? money coins Specification, conformance, compatibility, tests... What are they all about? Ну, скажем, новый язык программирования использовался для создания программы на фондовой бирже. Представьте себе, она была написана в США, также протестированы и использованы на NYSE. Это было так хорошо, что и другие страны по всему миру купил лицензию и начал использовать его в их реализации этого нового языка. Если реализация не подчиняются спецификации и той же программы могут делать различные вещи с деньгами клиентов. В основном это программы биржи может его продать, когда торговый агент толкнул кнопку "Купить", либо купить стали вместо плодов.

Хороший вопрос может быть следующим: "Почему различных реализаций? Давайте создадим один и использовать его. ". Существуют различные ответы. Некоторые компании, возможно, захотите использовать этот язык на различных платформах (Solaris, Linux, Windows) и устройства (настольный компьютер, мобильный телефон, PDA, студент калькулятор и т.д.). Другие хотят оптимизировать алгоритмы для их нужд, Fe осуществлять их таким образом большую программу база данных будет в 10 раз быстрее.

Ключевым моментом является то, что несколько различных реализаций должны работать точно так же и в соответствии со спецификацией. Если они делают это они называются совместимыми. Плохой части является то, что никто не может быть уверен. Вот почему механизм контроля не требуется. Обычно это набор тестов, которая проверяет на соответствие и совместимость. И в этом случае было бы неправильно сказать, что что-то почти согласованные или 99% совместимы. Там может быть либо "да" или нет.

no bug2 Specification, conformance, compatibility, tests... What are they all about? Перейдем к примеру. Sun Microsystems Java изобрели язык. Если быть более точным несколько версий Java для различных рынков были созданы. Самые известные из них Java ME , Java SE и Java EE . И для каждого из них есть отдельные спецификации. Sun Microsystems имеет свою собственную реализацию, которая является наиболее часто используемых. Однако язык так хорошо, что Есть немало и других компаний и их реализации. Для обеспечения совместимости и соответствия целям Есть TCKs (тест соответствия Kit). TCK это продукт, который включает в себя ряд тестов, которые проверяют, если реализация исправить в соответствии с правилами, от спецификации.

Мой намерен был дать представление о том, что спецификации, соответствия, совместимости и TCK и почему они так важны.



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

Здравствуй, мир.

Я читаю блоги. Я начал читать их гораздо больше. Почему я это делаю? Ну .. Я верю, что обмен информацией делает работу других людей больше удовольствия. И не только работать, но народ живет в целом. Обмен знаниями и мыслями является большим шагом в направлении создания общин. Блог позволяет публиковать мысли, мнения, идеи, относится к читателям. Читатели могут открыть диалог на тему обсудили систему комментариев.
Я хотел создать свой личный блог уже давно, но, думаю я, наконец, сделал это.
Я работаю инженером-программистом в группе, которая создает очень важный продукт. Этот продукт не так хорошо известен как Java или Solaris. Я бы сказал, что большинство разработчиков программного обеспечения в этом огромном мире не знает об этом. Однако без этого продукта не будет Java, как мы ее знаем. По крайней мере, Java не будет так хорошо, как и в популярных распространенным, как он есть и каким мы хотим его видеть. Без этого продукта не будет износу (однократная запись работает везде). Да, я говорю о совместимости. И продукт TCK (технология совместимости Kit) для Java. В двух словах TCK это набор тестов, который гарантирует, что реализаций Java соответствует спецификации. Моя группа работает в нескольких TCK в. Но главное один для платформы Java SE.
Есть несколько различных районах JCK (TCK для Java SE): API, Java Язык и VM.
Моя область, что я работаю на протяжении более 2 лет "Java язык". Я пишу компилятор и среду выполнения тесты, чтобы убедиться, что ВС и реализации других компаний ведут себя именно так, как сказано в JLS (Java Language Specification).
В этом блоге я постараюсь поделиться своими знаниями, мое мнение и мысли по поводу моей работы.
PS: английский не является моим родным языком. Вот почему я хотел бы извиниться за возможные ошибки (я уверен Есть многие из них уже есть) и странные sentances в моем блоге. Я постараюсь сделать все возможное.



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