Jump to content

Самый быстрый

Fastest — это инструмент тестирования на основе моделей , который работает со спецификациями, записанными в Z. нотации Инструмент реализует [1] Структура шаблонов тестов (TTF), предложенная Филом Стоксом и Дэвидом Кэррингтоном. [2]

Использование

[ редактировать ]

Fastest представляет пользовательский интерфейс командной строки. Сначала пользователю необходимо загрузить спецификацию Z, написанную в формате LaTeX , подтверждающую стандарт ISO . [3] Затем пользователь должен ввести список операций для тестирования, а также тактику тестирования , которую следует применить к каждой из них. На третьем этапе Fastest генерирует дерево тестирования каждой операции. После создания деревьев тестирования пользователи могут просматривать их и их тестовые классы и, что более важно, они могут сокращать любой тестовый класс как автоматически, так и вручную . После обрезки деревьев тестирования пользователи могут поручить Fastest найти один абстрактный тестовый пример для каждого листа в каждом дереве тестирования. [4]

Тактика тестирования, поддерживаемая Fastest

[ редактировать ]

В настоящее время, [ когда? ] Fastest поддерживает следующие тактики тестирования:

Обрезка тестовых деревьев в Fastest

[ редактировать ]

Fastest предоставляет два способа обрезки деревьев тестирования: [6]

  • Автоматическая обрезка.
Чтобы сократить дерево тестирования, Fastest анализирует предикат каждого листа, чтобы определить, является ли предикат противоречием или нет. Поскольку эта проблема неразрешима , инструмент реализует алгоритм с максимальными усилиями, который может быть улучшен пользователями. Важнейшим аспектом алгоритма является библиотека так называемых теорем исключения, каждая из которых представляет собой семейство противоречий. Пользователи могут расширять эту библиотеку, просто редактируя текстовый файл. Теоремы исключения представляют собой соединения параметрических Z атомарных предикатов.
  • Ручная обрезка.
Самые быстрые пользователи могут обрезать поддеревья или отдельные листья тестовых деревьев, введя две команды. Эти команды удалят все тестовые классы в поддереве независимо от того, пусты они или нет. Основная цель этих команд — позволить инженерам сократить количество или исключить неважные тестовые случаи.

Как Fastest находит абстрактные тестовые примеры

[ редактировать ]

Инструмент находит абстрактные тестовые случаи , вычисляя конечную модель для каждого листа дерева тестирования. [7] Конечные модели рассчитываются путем ограничения типа каждой переменной VIS конечным набором, а затем путем вычисления декартова произведения между этими наборами. Каждый листовой предикат оценивается для каждого элемента этого декартова произведения до тех пор, пока он не будет удовлетворять предикату (что означает, что был найден абстрактный тестовый пример) или пока он не будет исчерпан (что означает, что либо тестовый класс невыполним , либо конечная модель неадекватна). В последнем случае у пользователя есть возможность помочь инструменту найти правильную конечную модель или сократить тестовый класс, поскольку он неудовлетворителен.

Архитектура и технологии

[ редактировать ]

Fastest — это Java- приложение, основанное на проекте Community Z Tools (CZT) . Инструмент может использоваться в одном из двух режимов: [8]

  • В распределенном режиме Fastest работает как клиент-серверное приложение. Приложение можно установить на несколько компьютеров, каждый из которых действует как клиент, сервер или и то, и другое. Пользователи получают доступ к приложению через клиентов, которые отправляют тестовые классы на серверы (называемые серверами тестирования ), которые пытаются найти абстрактный тестовый пример из них . Таким образом, самая тяжелая задача распределяется между максимально возможным количеством компьютеров. Поскольку расчет абстрактного тестового примера из тестового класса полностью независим друг от друга, такая архитектура ускоряет весь процесс пропорционально количеству серверов тестирования.
  • В режиме приложения каждый экземпляр Fastest полностью независим друг от друга. Все задачи выполняются на локальном компьютере.

Добавление новой тактики тестирования

[ редактировать ]

Как видно из презентации TTF , тактика тестирования имеет важное значение для этого метода. Это инструменты, которые инженеры должны использовать для создания наиболее интересных тестовых примеров. Чем больше разумных тактик тестирования будет доступно инженерам, тем лучше.

В Fastest пользователи могут добавлять собственные тактики тестирования, реализуя интерфейс Tactic , предоставляемый инструментом. В этом интерфейсе есть методы для настройки и применения тактик тестирования. Определение интерфейса следующее:

package client.blogic.testing.ttree.tactics;

import java.util.*;
import net.sourceforge.czt.z.ast.Spec;
import common.z.TClass;
import common.z.OpScheme;

/**
 * Interface that abstracts a testing tactic (needed to generate test trees) and
 * makes possible its application to a test class in order to generate new ones.
 */
public interface Tactic {
    
    /**
     * Applies this tactic to the specified test class and returns the list with
     * the generated test classes.
     * @param tClass
     * @return
     */
    public List<TClass> applyTactic(TClass tClass);
    
    /**
     * Sets the specification of the system under test.
     * @param opScheme
     */
    public void setSpec(Spec spec);
    
    /**
     * Gets the Z schema box of the operation under test.
     * @return
     */
    public Spec getSpec();  
    
    /**
     * Sets the Z schema box of the operation under test.
     * @param opScheme
     */
    public void setOriginalOp(OpScheme opScheme);
    
    /**
     * Gets the Z schema box of the operation under test.
     * @return
     */
    public OpScheme getOriginalOp();
    
    /**
     * Parses the parameters of this tactic.
     * @param str
     * @return
     */
    public boolean parseArgs(String str);
    
    /**
     * Sets the instance of TacticInfo associated to this object.
     * @param tacticInfo
     */
    public void setTacticInfo(TacticInfo tacticInfo);
    
    /**
     * Gets the instance of TacticInfo associated to this object.
     * @return
     */
    public TacticInfo getTacticInfo();
    
    /**
     * Gets the description of this tactic.
     * @return the string with the description of this tactic.
     */    
    public String getDescription();
    
    /**
     * Sets the description of this tactic.
     * @param description
     */
    public void setDescription(String description);
}

См. также

[ редактировать ]

Примечания

[ редактировать ]
  • Кристиа, Максимилиано; Родригес Монетти, Пабло (2009). «Внедрение и применение структуры Стокса-Кэррингтона для модельного тестирования». Формальные методы и программная инженерия, 11-я Международная конференция по формальным методам инженерии, ICFEM 2009 . Рио-де-Жанейро, Бразилия: Springer-Verlag .
  • Стокс, Фил; Кэррингтон, Дэвид (1996), «Среда тестирования на основе спецификаций», IEEE Transactions on Software Engineering , 22 (11): 777–793, doi : 10.1109/32.553698 .
  • Информационные технологии — Нотация формальной спецификации Z — Синтаксис, система типов и семантика (PDF, 1 МБ) , 2002 г., стр. 196 страниц . ИСО/МЭК 13568:2002
  • Кристиа, Максимилиано; Альбертенго, Пабло; Родригес Монетти, Пабло (2010). «Обрезка деревьев тестирования в структуре шаблонов тестов путем обнаружения математических противоречий». 8-я Международная конференция IEEE по программной инженерии и формальным методам (SEFM), 2010 г. Пиза, Италия: IEEE .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fa23bfcc19ccdd566b8fd5c62f0ed11a__1678897020
URL1:https://arc.ask3.ru/arc/aa/fa/1a/fa23bfcc19ccdd566b8fd5c62f0ed11a.html
Заголовок, (Title) документа по адресу, URL1:
Fastest - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)