11 research outputs found

    Fault-Based Test of XML Schemas

    Get PDF
    XML is largely used by most applications to exchange data among different software components. XML documents, in most cases, follow a grammar or schema that describes which elements and data types are expected by the application. These schemas are translated from specifications written in natural language, and consequently, in this process some mistakes are usually made. Because of this, faults can be introduced in the schemas, and incorrect XML documents can be validated, causing a failure in the application. Hence, to test schemas is a fundamental activity to ensure the integrity of the XML data. With the growing number of Web applications and increased use of XML, there is a demand for specific testing approaches and tools to test schemas. To fulfill this demand, this work introduces a fault-based approach for testing XML schemas. This approach is based on a classification of common faults found in schemas. A supporting tool was implemented and used in evaluation studies. The obtained results show the applicability of the fault-based testing in this context and its efficacy in revealing faults

    Ontology for service oriented testing of web services

    Get PDF
    This paper presents a service oriented architecture for testing Web Services. In this architecture, various parties interoperate with each other to complete testing tasks through testing service registration, discovery and invocation. The analysis of the architecture in a typical scenario shows that it has the advantages of supporting dynamic discovery and invocation of testing services as required by the dynamic discovery and invocation of normal functional services without compromising security, privacy and intellectual property rights. It is flexibleand extendable. It also helps to reduce the risk ofunnecessary disturbances to the normal operations of services due to testing activities. The paper reports a prototype implementation of the architecture by adapting and implementing the ontology of software testing using Semantic Web Services technology. A case studywith the WS wrapping of an automated testing tool is also reported, which demonstrated that the architecture is technically feasible

    Pruebas de Mutación de APIs Web: Un Enfoque de Caja Negra

    Get PDF
    Las Interfaces de Programación de Aplicaciones (APIs) web tienen un papel clave en la integración de aplicaciones, por lo que validar su correcto funcionamiento es crucial. La mayoría de técnicas de generación de casos de prueba en este ámbito son de caja negra y suelen evaluarse con APIs sin código fuente disponible. Por ello, no es posible emplear pruebas de mutación tradicional, y no podemos cuantificar la efectividad de las pruebas si la API no expone ningún error. Este artículo propone un enfoque de caja negra para evaluar la capacidad de detección de errores de las pruebas para APIs web: en lugar de crear variantes defectuosas del código del programa (pruebas de mutación tradicionales), se crean mutantes de las salidas del programa (respuestas HTTP). JSONMutator es la herramienta implementada para llevar a cabo estas mutaciones. Los oráculos de pruebas se aplican sobre dichos mutantes y, a medida que las pruebas fallan, la cobertura de mutación aumenta. Experimentos preliminares sugieren que la herramienta es efectiva para crear mutantes a partir de la salida de APIs web y que existe correlación entre la cobertura de mutación de caja negra y caja blanca.Junta de Andalucía US-1264651Junta de Andalucía P18-FR-2895Gobierno de España RTI2018- 101204-B-C21Ministerio de Educación y Formación Profesional de España FPU17/0407

    Front-End for Generator of Structured Test Data

    Get PDF
    Bakalářská práce se zabývá tvorbou webové aplikace, která umožňuje generování stromových datových struktur vhodných pro testování softwaru. Aplikace je rozdělena na klientskou a serverovou část. Klientská aplikace poskytuje uživateli grafické rozhraní, kde si vytvoří vstupní stromovou datovou strukturu ve formátu JSON nebo XML. Na ni aplikuje vhodné modifikace pro testování s možností dodání vlastních kritérií pro generování. Implementována je pomocí platformy Angular. Serverová aplikace slouží ke generování testovacích dat a nabízí seznam dostupných modifikací. Prostředí Node.js a framework Express jsou použity pro implementaci. Serverová aplikace poskytuje rozhraní REST. Produkční nasazení obstarává nástroj pro virtualizaci Docker. Obě aplikace jsou nasazeny na serverech Heroku.The bachelor's thesis deals with the creation of a web application that allows the generation of tree data structures suitable for software testing. The application is divided into client and server part. The client application provides the user with a graphical interface where he creates an input tree data structure in JSON or XML format. It applies appropriate modifications for testing with the possibility of supplying its own criteria for generation. It is implemented using the Angular platform. The server application is used to generate test data and offers a list of available modifications. The Node.js environment and the Express framework are used for implementation. The server application provides a REST interface. Production deployment is provided by the Docker virtualization tool. Both applications are deployed on Heroku servers.

    XESS: The XML expert system shell

    Get PDF
    The XML Expert System Shell (XESS) was designed to alleviate some of the difficulties associated with translating a knowledge base from one expert system to another. The major goal of XESS is to allow programmers to model an expert system, complete with traditional facts and rules, in an XML-based language that leverages the universally understood terms used when teaching artificial intelligence to students. XML, the extensible markup language, is a text-based standard for information interchange between disparate systems1; it was originally designed to represent data in an easily parsable, human readable format2. While some extensions of the XML specification, particularly the Simple Object Access Protocol (SOAP), have long since abandoned human readability, the core XML specification is still used frequently to produce documents that can easily be exchanged between computational platforms and created or understood by human beings. The XESS-XML language inherits all of the usability of XML; it can be edited by hand in any text editor, is human readable, and can be parsed using XML parsers commonly available in any modern programming language. The XML Schema specification provides a mechanism for explicitly defining the content of an XML document so that a document can be validated3,4,5. XML schemas specify the make-up of an XML document in exacting detail6, using a pseudo-object-oriented syntax to specify exactly which entities are allowed in the document, the attributes of those entities, where they are allowed in the document, and how often they may occur. The XESS-XML language is defined as a fully extensible XML Schema, which can be used to validate any knowledge base written in the language. The Schema provides entities for common facts (e.g. predictes, structs) and a robust syntax for expressing rules in an if-then-else format, as well as the actions that should be taken in the event that a rule is fired. Additionally, because XML schemas are fully extensible, the XESS schema may be extended to add additional functionality such as support for fuzzy logic, new clause types, or new actions to be taken when rules are fired. In addition to the XML language, XESS also includes an object oriented interpreter specification that defines a robust set of language independent APIs for interacting with the expert system. This interpreter specification is meant to set expectations, both for XESS developers and users, as to the features provided by the XESS API regardless of the language in which the interpreter has been implemented. As part of the specification, the XESS API also provides object oriented definitions for XESS plug-ins; a plug-in is capable of translating from an XESS document to the native language of a specific expert system shell in a generic way (i.e. not specific to any one rule set) and back again. This allows users to express custom expert system shells in the XESS-XML language, parse them using an XESS interpreter written in any language, and translate them to a specific expert system shell through the use of an XESS plug-in without needing to learn the specific expert system shell language or rewriting the knowledge base once for each shell tested

    X-TOOL : uma ferramenta de teste de esquemas para estrutura de dados

    Get PDF
    Orientador : Sílvia Regina VergílioDissertação (mestrado) - Universidade Federal do Paraná, Setor de Ciências Exatas, Programa de Pós-Graduação em Informática. Defendida em 27 de fevereiro de 2007Inclui bibliografiaÁrea de concentração: Ciências da Computaça

    Utilizando análise de mutantes para realizar o teste de documentos XML Schema

    Get PDF
    Orientadora: Silvia Regina VergílioInclui apendicesDissertaçao (mestrado) - Universidade Federal do Paraná, Setor de Ciencias Exatas, Programa de Pós-Graduaçao em Informática. Defesa: Curitiba, 2006Inclui bibliografia e anexosResumo: Diversas aplicações Web utilizam documentos XML para troca de informações, tanto entre componentes de aplicações distintas quanto entre componentes da própria aplicação. Estes documentos, na maioria dos casos, obedecem a uma gramática previamente descrita por um esquema. O tipo de esquema que está se tornando mais utilizado é o documento XML Schema. Este fato deve-se principalmente a algumas de suas características, tais como: possuir uma gramática rica na representação dos dados e poder ser escrito utilizando-se a linguagem XML que é a mesma usada para escrever documentos. Estes esquemas são "traduzidos" de especificações textuais escritas em linguagem natural, e consequentemente, é usual que neste processo de tradução aconteçam enganos que acabam permitindo que defeitos semânticos estejam presentes nos documentos XML utilizados pela aplicação. Este trabalho apresenta um processo de teste para revelar defeitos em documentos XML Schema baseado na técnica Análise de Mutantes. Operadores de mutação são propostos tendo-se como base os erros mais comuns cometidos ao se projetar um documento XML Schema. Para dar suporte aos operadores propostos, foi implementada uma ferramenta denominada XTM. Com o auxílio dessa ferramenta alguns experimentos puderam ser realizados. Resultados desses experimentos mostram a aplicabilidade dos operadores propostos bem como sua eficácia em revelar defeito

    A Software Factory Engine

    Get PDF

    Teste de aplicações baseado em análise de instâncias de dados alternativas.

    Get PDF
    Resumo: No desenvolvimento de software frequentemente é necessário validar a especificação dos dados do sistema, geralmente descrita por esquemas. O esquema de dados define a estrutura lógicae os relacionamentos entre os dados manipulados e armazenados por aplicações de software. Para auxiliar a detectar defeitos em esquemas e garantir a integridade dos dados por eles definidos, foi proposta uma abordagem de teste baseada em defeitos, denominada Análise de Instâncias de Dados Alternativas (AIDA). Na abordagem AIDA, uma instância de dados associada ao esquema em teste sofre alterações simples gerando instâncias de dados alternativas. A Análise de Instâncias de Dados Alternativas (AIDA) pode ser aplicada no teste de diferentes tipos de esquema, desde que o mesmo seja representado de acordo com um modelo formal. Apesar de existirem trabalhos na literatura que utilizam informações do esquema para testar as aplicações, a maioria não considera os possíveis efeitos presentes no esquema para gerar os dados de teste. Esses defeitos podem ocasionar falhas na aplicação e, considerando esse fato, este trabalho explora a utilização da AIDA no teste de aplicações que utilizam esquemas de dados, introduzindo estratégias de uso em dois contextos de aplicação: aplicações de banco de dados relacional e aplicações que utilizam Serviços Web. Para validar as estratégias em ambos contextos foram realizados experimentos em aplicações reais. Os resultados obtidos são analisados e verifica-se que a abordagem utilizada foi eficaz em revelar não somente defeitos de esquema, mas também defeitos relacionados à própria aplicação

    Higher Order Mutation Testing

    Get PDF
    Mutation testing is a fault-based software testing technique that has been studied widely for over three decades. To date, work in this field has focused largely on first order mutants because it is believed that higher order mutation testing is too computationally expensive to be practical. This thesis argues that some higher order mutants are potentially better able to simulate real world faults and to reveal insights into programming bugs than the restricted class of first order mutants. This thesis proposes a higher order mutation testing paradigm which combines valuable higher order mutants and non-trivial first order mutants together for mutation testing. To overcome the exponential increase in the number of higher order mutants a search process that seeks fit mutants (both first and higher order) from the space of all possible mutants is proposed. A fault-based higher order mutant classification scheme is introduced. Based on different types of fault interactions, this approach classifies higher order mutants into four categories: expected, worsening, fault masking and fault shifting. A search-based approach is then proposed for locating subsuming and strongly subsuming higher order mutants. These mutants are a subset of fault mask and fault shift classes of higher order mutants that are more difficult to kill than their constituent first order mutants. Finally, a hybrid test data generation approach is introduced, which combines the dynamic symbolic execution and search based software testing approaches to generate strongly adequate test data to kill first and higher order mutants
    corecore