• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 42
  • Tagged with
  • 42
  • 42
  • 15
  • 15
  • 15
  • 12
  • 12
  • 12
  • 9
  • 9
  • 6
  • 6
  • 6
  • 6
  • 6
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
21

Aumento da testabilidade do hardware com auxilio de técnicas de teste de software / Hardware testyability increase with software testing techniques

Krug, Margrit Reni January 2007 (has links)
O projeto, seja ele de software ou hardware, envolve uma série de atividades que, apesar das técnicas, ferramentas e métodos empregados, não estão livres de erros que podem levar ao mau funcionamento do produto final. Estes erros podem ocorrer durante a especificação do projeto, como também em estágios finais do desenvolvimento ou no processo de manufatura. A fim de minimizar prejuízos é necessário garantir a qualidade do sistema a partir da verificação do projeto, da validação de protótipo e do teste de fabricação. Por muito tempo o teste de hardware e o teste de software foram estudados como disciplinas completamente independentes. Porém, similaridades entre o desenvolvimento de software e o projeto de hardware já foram exploradas com sucesso em adaptações de técnicas originalmente desenvolvidas para um sendo utilizadas por outro. Um exemplo é a cobertura de código, que foi inicialmente desenvolvida para o teste de software, e agora é comumente utilizada na verificação de hardware. Visto que dispositivos são descritos em linguagem de descrição de hardware, e estas possuem características semelhantes às linguagens de programação, parece uma boa alternativa valer-se desta semelhança para utilizar os métodos propostos pela engenharia de software para garantir a qualidade do hardware desenvolvido. Utilizar tais métodos para gerar padrões de teste para dispositivos de hardware descritos em HDL (Hardware Description Language) e identificar nestas descrições características que, alteradas, aumentem a testabilidade dos mesmos, são os principais objetivos desta tese. / Both software and hardware designs require several tasks to increase reliability and ensure high quality of the final system. Although different techniques, tools and methods can be applied, error free products are difficult to be achieved. Errors may occur on design specification, on development stages and also during manufacturing process. To increase system quality and minimize costs it is mandatory to perform design verification, prototype validation and manufacturing test. For a long time hardware and software tests were studied as disciplines completely apart. However, similarities between software development and hardware design have already been explored successfully by adapting techniques originally developed for one of them, and applying to the other. For instance, code coverage concept and methods were firstly developed for software testing, but nowadays are commonly used in hardware verification. Due to the high similarity observed between software programming languages and hardware description languages (HDL), it seems to be a valuable approach applying software engineering techniques to help ensuring a high quality hardware device. Therefore, the main purpose of this thesis is to use such techniques to extract test patterns from HDL descriptions of hardware devices and to identify at these descriptions means to increase hardware testability.
22

Reúso de cenários BDD para minimizar o esforço de migração de testes para a plataforma android / Minimizing the migration effort for the existing Android BDD platform

Ritter, Roger January 2018 (has links)
O desenvolvimento de versões móveis de sistemas corporativos que já executam em plataformas Desktop e/ou Web tem se tornado comum. No entanto, o processo de migração tanto da lógica de programação quanto dos testes pode ser bastante complexo, embora muitas funcionalidades permaneçam as mesmas no novo ambiente. Este trabalho propõe o reúso de cenários de teste automatizados como uma alternativa para diminuir este esforço de migração. Para isso, propõe-se uma metodologia para o reúso de cenários de teste suportada por um framework de automação de testes. A metodologia propõe que cenários BDD sejam escritos uma única vez e executados em diferentes plataformas, como Desktop, Web, Móvel ou outra que venha a existir. Para dar suporte à metodologia proposta, o framework dbehave foi estendido para permitir a execução de cenários de teste em plataformas móveis. Uma segunda extensão no framework permite ainda que cenários específicos de uma plataforma possam ser escritos junto aos demais cenários mas executados apenas na plataforma de interesse, permitindo ao desenvolvedor uma maior autonomia na organização e manutenção dos cenários. A metodologia proposta foi utilizada em dois estudos de caso e se mostrou útil, uma vez que uma média de 81.2% dos cenários de aplicações reais foram reutilizados, havendo uma redução considerável no esforço de migração entre plataformas e na escrita de cenários. / The development of enterprise applications in multiple platforms (Desktop and/or Web and/or Mobile) has become a trend. However, the process of migrating both programming logic and software tests can be very complex, although many functionalities remain the same in the new environment. This work proposes the reuse of automated test scenarios as an alternative to reduce this migration effort. We propose a test methodology that is supported by a test automation framework. The methodology proposes the developer writes BDD scenarios only once and executes such scenarios on different platforms, such as Desktop, Web, Mobile or other that may exist. The dbehave framework was extended to support the execution of test scenarios in mobile platforms. Furthermore, the framework now allows the selection of which scenarios should be executed in which platforms, i.e., platform-specific scenarios can be written next to the other scenarios and run only on the platform of interest. This provides the developer greater autonomy in the organization and maintenance of the scenarios. The proposed methodology was used in two case studies and proved useful, since an average of 81.2% of the real application scenarios were reused, with a considerable reduction in the effort for cross-platform migration and scenario writing.
23

Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM / Implementation and evaluation of the ACCE technique to detection and correction of control flow errors in the LLVM

Parizi, Rafael Baldiati January 2013 (has links)
Técnicas de prevenção de falhas como testes e verificação de software não são suficientes para prover dependabilidade a sistemas, visto que não são capazes de tratar falhas ocasionadas por eventos externos tais como falhas transientes. Nessas situações faz-se necessária a aplicação de técnicas capazes de tratar e tolerar falhas que ocorram durante a execução do software. Grande parte das técnicas de tolerância a falhas transientes está focada na detecção e correção de erros de fluxo de controle, que podem corresponder a até 70% de erros causados por esse tipo de falha. Essas técnicas tratam as falhas em nível de software, alterando o programa com a inserção de novas instruções que devem capturar e corrigir desvios inesperados ocorridos durante a execução do software, sendo ACCE uma das técnicas mais conhecidas. Neste trabalho foi feita uma implementação da técnica ACCE através da criação de um passo de transformação de programas para a infraestrutura de compilação LLVM. ACCE atua sobre a linguagem intermediária dos programas compilados com o LLVM, resultando em portabilidade de linguagem de programação e de arquitetura de máquina. Além da implementação da técnica como um passo de transformação, o LLVM foi utilizado para a realização dos experimentos para avaliar o impacto na eficácia de ACCE quando aplicada em programas previamente otimizados por outras transformações. Esse tipo de avaliação é fundamental uma vez que dificilmente a compilação de programas é feita sem a ativação de otimizações, e, até onde sabemos, nunca havia sido feito anteriormente. Os experimentos deste trabalho foram realizados através de baterias de injeção de falhas em programas da suíte de benchmarks Mibench, divididas em diferentes cenários, que avaliaram ACCE em termos de correção de falhas, quando aplicada em programas otimizados por transformações individuais e também por combinações de transformações. Os resultados dos experimentos realizados mostram que a técnica ACCE é eficaz na correção de falhas, porém, para alguns programas otimizados por determinadas transformações, houve redução na correção de falhas. Esse trabalho analisa os experimentos nos quais houve redução da eficácia de ACCE e aponta possíveis causas. / Computer-based systems are used in several eletronic devices that are, in many cases, responsable by the execution of critical tasks. There are situations where techniques of prevention against faults such as software validation and verification, can not be sufficient for ensuring acceptable rates of confiability, because they are not capable of treating faults that occur in execution time, such as transient faults. Most of the fault tolerance techniques for transient faults are focused in detection and correction of control flow errors, that can correspond to 70% errors caused by this kind of faults. These techniques treat the faults at software level, changing the program with the insertion of new instructions that must to capture and to correct illegal jumps occurred during the software execution, being ACCE the most known technique today. In this work an implementation of the ACCE technique was developed as a program transformation pass in the LLVM compiler infraestructurre. ACCE acts over the intermediate language of LLVM, which results in both programming language and machine architecture language portabilities. Besides the implemetation of the technique like a transformation pass, the LLVM was also used in the experiments for the avaliation of impact in the ACCE eficacy when it is applied into programs previously optimized by others compiler transformations. This evaluation is essential since hardly the compilation of programs is made without the activation of other optimizations. As far as we know this kind of evaluation has never beem made before. The experimental results show that the ACCE techinque is effective in the fault correction, but for some programs optimized by specific transformations, there was a reduction in the correction rate. This work analyses these experiments and gives an explanation for what causes a reduction in the effectiveness of ACCE.
24

Reúso de cenários BDD para minimizar o esforço de migração de testes para a plataforma android / Minimizing the migration effort for the existing Android BDD platform

Ritter, Roger January 2018 (has links)
O desenvolvimento de versões móveis de sistemas corporativos que já executam em plataformas Desktop e/ou Web tem se tornado comum. No entanto, o processo de migração tanto da lógica de programação quanto dos testes pode ser bastante complexo, embora muitas funcionalidades permaneçam as mesmas no novo ambiente. Este trabalho propõe o reúso de cenários de teste automatizados como uma alternativa para diminuir este esforço de migração. Para isso, propõe-se uma metodologia para o reúso de cenários de teste suportada por um framework de automação de testes. A metodologia propõe que cenários BDD sejam escritos uma única vez e executados em diferentes plataformas, como Desktop, Web, Móvel ou outra que venha a existir. Para dar suporte à metodologia proposta, o framework dbehave foi estendido para permitir a execução de cenários de teste em plataformas móveis. Uma segunda extensão no framework permite ainda que cenários específicos de uma plataforma possam ser escritos junto aos demais cenários mas executados apenas na plataforma de interesse, permitindo ao desenvolvedor uma maior autonomia na organização e manutenção dos cenários. A metodologia proposta foi utilizada em dois estudos de caso e se mostrou útil, uma vez que uma média de 81.2% dos cenários de aplicações reais foram reutilizados, havendo uma redução considerável no esforço de migração entre plataformas e na escrita de cenários. / The development of enterprise applications in multiple platforms (Desktop and/or Web and/or Mobile) has become a trend. However, the process of migrating both programming logic and software tests can be very complex, although many functionalities remain the same in the new environment. This work proposes the reuse of automated test scenarios as an alternative to reduce this migration effort. We propose a test methodology that is supported by a test automation framework. The methodology proposes the developer writes BDD scenarios only once and executes such scenarios on different platforms, such as Desktop, Web, Mobile or other that may exist. The dbehave framework was extended to support the execution of test scenarios in mobile platforms. Furthermore, the framework now allows the selection of which scenarios should be executed in which platforms, i.e., platform-specific scenarios can be written next to the other scenarios and run only on the platform of interest. This provides the developer greater autonomy in the organization and maintenance of the scenarios. The proposed methodology was used in two case studies and proved useful, since an average of 81.2% of the real application scenarios were reused, with a considerable reduction in the effort for cross-platform migration and scenario writing.
25

Metodologia de projeto de software embarcado voltada ao teste

Gomes, Humberto Vargas January 2010 (has links)
Devido ao crescente incremento de complexidade do software embarcado atual, dada a abundância de recursos disponíveis de hardware, está cada vez mais difícil manter a qualidade do software embarcado desenvolvido sem incorrer em aumentos de custo que inviabilizem o projeto. Com isto, o teste de software embarcado é atualmente uma importante área de pesquisa, onde são buscadas técnicas de teste que maximizem o número de falhas encontradas ainda em tempo de projeto e a um custo satisfatório. Muitas das soluções pesquisadas envolvem aspectos não apenas relativos ao teste propriamente dito, mas ao projeto do produto desde a sua concepção, daí a necessidade de metodologias conjuntas de desenvolvimento e teste. Neste trabalho, é apresentada uma metodologia de desenvolvimento e testes de software embarcado com o objetivo de permitir que grande parte da tarefa de desenvolvimento e teste seja executada em um ambiente de desenvolvimento de software de aplicação, sem a presença do hardware. Neste ambiente, o desenvolvimento é pensado desde o início do projeto visando à qualidade do teste, assim caracterizando esta metodologia como uma técnica DFT (do inglês design for testability). Na abordagem proposta, o hardware físico é substituído por modelos funcionais, construídos na mesma linguagem de programação do software em desenvolvimento. O uso destes modelos permite ao desenvolvedor a construção e aplicação de casos de teste capazes de exercitar o software embarcado tanto no ambiente de software de aplicação, quanto na plataforma alvo, sem alterações. Esta dissertação mostra a metodologia sendo aplicada ao software embarcado de um medidor eletrônico de energia, onde cinco modelos de dispositivos de hardware foram construídos, que permitiram a execução tanto de testes de unidade, quanto de testes de integração, em um ambiente de desenvolvimento de software de aplicação. Finalmente, uma análise de cobertura, realizada com o auxílio de uma ferramenta que, de outra forma, não seria compatível com o software da plataforma alvo, mostrou que a execução conjunta do software e dos modelos permite atingir a cobertura de quase a totalidade do software embarcado desenvolvido, onde os casos de teste foram capazes de verificar desde as camadas de software de aplicação até as camadas de software dependente do hardware. / Due to the growing increment of complexity of the current embedded software, given the abundance of hardware resources, it is becoming increasingly difficult to maintain the software quality without requiring high development and test costs that could make the project impracticable. In this context, embedded software testing is an important research area, where test techniques that maximize the number of errors detected during design time at a satisfactory cost have been investigated. Many of the proposed solutions involve aspects not related only to the testing itself, but to the product design since its conception, hence the need of methodologies for the development and test of software. In this work, we present a methodology of development and test of embedded software that allows the execution of most of the task of development and test in an application software development environment, without the physical hardware. In the application software environment, the development is thought, since the first stages, aiming the execution of the test, hence this methodology can be seen as a DFT (design for testability) technique. In the proposed approach, the physical hardware is replaced by functional models, constructed using the same programming language of the embedded software under development. The use of such models allows the developer to construct and apply test cases capable of exercising the embedded software both in the application software environment and in the target platform environment, without any change. In this work, the presented methodology is applied to the embedded software of an electronic energy meter, where five hardware device models were constructed, which enabled the execution of both unit and integration tests in the application software environment. Finally, the coverage analysis, performed with a software tool that otherwise would not be compatible with the target platform, showed that the simultaneous execution of the software and the models make it possible to achieve an almost complete coverage of the developed embedded software, where the test cases were able to verify the software from the application layers to the hardware dependent layers.
26

Injeção de falhas de comunicação em aplicações multiprotocolo / Communication fault injection in multi-protocol applications

Menegotto, Cristina Ciprandi January 2009 (has links)
Aplicações de rede com altos requisitos de dependabilidade devem ser testadas cuidadosamente em condições de falhas de comunicação para aumentar a confiança no seu comportamento apropriado na ocorrência de falhas. Injeção de falhas de comunicação é a técnica mais adequada para o teste dos mecanismos de tolerância a falhas destas aplicações em presença de falhas de comunicação. Ela é útil tanto para auxiliar na remoção de falhas como na previsão de falhas. Dentre as aplicações de rede, algumas são baseadas em mais de um protocolo, como UDP, TCP e RMI. Elas são denominadas multiprotocolo no contexto desse trabalho, que foca naquelas escritas em Java e baseadas em protocolos que estão acima do nível de rede na arquitetura TCP/IP. Um injetor de falhas de comunicação adequado, que trate todos os protocolos utilizados, é necessário para o seu teste. Caso a emulação de uma falha que afete a troca de mensagens não leve em consideração todos os protocolos simultaneamente utilizados, o comportamento emulado durante um experimento poderá ser diferente daquele observado na ocorrência de uma falha real, de modo que podem ser obtidos resultados inconsistentes sobre o comportamento da aplicação alvo em presença da falha. Muitos injetores de falhas de comunicação encontrados na literatura não são capazes de testar aplicações Java multiprotocolo. Outros possuem potencial para o teste dessas aplicações, mas impõem grandes dificuldades aos engenheiros de testes. Por exemplo, contrariamente ao enfoque deste trabalho, algumas ferramentas são voltadas à injeção de falhas de comunicação para o teste de protocolos de comunicação, e não de aplicações. Tal orientação ao teste de protocolos costuma levar a grandes dificuldades no teste de caixa branca de aplicações. Entre outros exemplos de dificuldades proporcionadas por ferramentas encontradas na literatura estão a incapacidade de testar diretamente aplicações Java e a limitação quanto aos tipos de falhas que permitem emular. A análise de tais ferramentas motiva o desenvolvimento de uma solução voltada especificamente ao teste de aplicações multiprotocolo desenvolvidas em Java. Este trabalho apresenta uma solução para injeção de falhas de comunicação em aplicações Java multiprotocolo. A solução opera no nível da JVM, interceptando mensagens de protocolos, e, em alguns casos, opera também no nível do sistema operacional, usando regras de firewall para emulação de alguns tipos de falhas que não podem ser emulados somente no nível da JVM. A abordagem é útil para testes de caixa branca e preta e possui características importantes como a preservação do código fonte da aplicação alvo. A viabilidade da solução proposta é mostrada por meio do desenvolvimento de Comform, um protótipo para injeção de falhas de comunicação em aplicações Java multiprotocolo que atualmente pode ser aplicado para testar aplicações Java baseadas em qualquer combinação dos protocolos UDP, TCP e RMI (incluindo as baseadas em um único protocolo). / Networked applications with high dependability requirements must be carefully tested under communication faults to enhance confidence in their proper behavior. Communication fault injection is the most suitable technique for testing the fault tolerance mechanisms of these applications under communication faults. The technique is useful both for helping in fault removal and for fault forecasting. Some networked applications are based on more than one protocol, such as UDP, TCP and RMI. They are called multi-protocol in the context of this work, that targets on those written in Java and based on protocols above Internet layer in TCP/IP architecture. A suitable communication fault injector, that properly handles all used protocols, is required for their test. If the emulation of a fault that affects message exchanging does not take into account all simultaneously used protocols, the behavior emulated in an experiment can be different from that observed under real fault occurrence. Therefore, inconsistent results about the target application’s behavior under faults can be obtained from the experiments. Many communication fault injectors found in literature are not capable of testing multi-protocol Java applications. Others can potentially test these applications, but they impose several drawbacks for test engineers. For instance, contrarily to the focus of this work, some tools aim to communication protocol testing and not to application testing. This orientation to protocol testing usually leads to great difficulties in white box testing of applications. Other examples of difficulties related to using tools found in literature include inability to directly test Java applications and limitations in respect to types of emulated faults. The analysis of the fault injectors found in literature motivates the development of a solution specifically aimed at testing multi-protocol applications written in Java. This work presents a solution for communication fault injection in multi-protocol Java applications. The solution works at JVM level, intercepting protocol messages, and, in some cases, it also operates at the operating system level, using firewall rules for the emulation of faults that could not be emulated at JVM level. The approach is useful for both white box and black box testing and has advantages such as preserving the target application’s source code. The viability of the proposed solution is shown by the development of a prototype tool called Comform, that is aimed at multi-protocol Java application testing. Comform can be applied to test Java applications based on any combination of UDP, TCP, and RMI (including those based on a single protocol).
27

Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM / Implementation and evaluation of the ACCE technique to detection and correction of control flow errors in the LLVM

Parizi, Rafael Baldiati January 2013 (has links)
Técnicas de prevenção de falhas como testes e verificação de software não são suficientes para prover dependabilidade a sistemas, visto que não são capazes de tratar falhas ocasionadas por eventos externos tais como falhas transientes. Nessas situações faz-se necessária a aplicação de técnicas capazes de tratar e tolerar falhas que ocorram durante a execução do software. Grande parte das técnicas de tolerância a falhas transientes está focada na detecção e correção de erros de fluxo de controle, que podem corresponder a até 70% de erros causados por esse tipo de falha. Essas técnicas tratam as falhas em nível de software, alterando o programa com a inserção de novas instruções que devem capturar e corrigir desvios inesperados ocorridos durante a execução do software, sendo ACCE uma das técnicas mais conhecidas. Neste trabalho foi feita uma implementação da técnica ACCE através da criação de um passo de transformação de programas para a infraestrutura de compilação LLVM. ACCE atua sobre a linguagem intermediária dos programas compilados com o LLVM, resultando em portabilidade de linguagem de programação e de arquitetura de máquina. Além da implementação da técnica como um passo de transformação, o LLVM foi utilizado para a realização dos experimentos para avaliar o impacto na eficácia de ACCE quando aplicada em programas previamente otimizados por outras transformações. Esse tipo de avaliação é fundamental uma vez que dificilmente a compilação de programas é feita sem a ativação de otimizações, e, até onde sabemos, nunca havia sido feito anteriormente. Os experimentos deste trabalho foram realizados através de baterias de injeção de falhas em programas da suíte de benchmarks Mibench, divididas em diferentes cenários, que avaliaram ACCE em termos de correção de falhas, quando aplicada em programas otimizados por transformações individuais e também por combinações de transformações. Os resultados dos experimentos realizados mostram que a técnica ACCE é eficaz na correção de falhas, porém, para alguns programas otimizados por determinadas transformações, houve redução na correção de falhas. Esse trabalho analisa os experimentos nos quais houve redução da eficácia de ACCE e aponta possíveis causas. / Computer-based systems are used in several eletronic devices that are, in many cases, responsable by the execution of critical tasks. There are situations where techniques of prevention against faults such as software validation and verification, can not be sufficient for ensuring acceptable rates of confiability, because they are not capable of treating faults that occur in execution time, such as transient faults. Most of the fault tolerance techniques for transient faults are focused in detection and correction of control flow errors, that can correspond to 70% errors caused by this kind of faults. These techniques treat the faults at software level, changing the program with the insertion of new instructions that must to capture and to correct illegal jumps occurred during the software execution, being ACCE the most known technique today. In this work an implementation of the ACCE technique was developed as a program transformation pass in the LLVM compiler infraestructurre. ACCE acts over the intermediate language of LLVM, which results in both programming language and machine architecture language portabilities. Besides the implemetation of the technique like a transformation pass, the LLVM was also used in the experiments for the avaliation of impact in the ACCE eficacy when it is applied into programs previously optimized by others compiler transformations. This evaluation is essential since hardly the compilation of programs is made without the activation of other optimizations. As far as we know this kind of evaluation has never beem made before. The experimental results show that the ACCE techinque is effective in the fault correction, but for some programs optimized by specific transformations, there was a reduction in the correction rate. This work analyses these experiments and gives an explanation for what causes a reduction in the effectiveness of ACCE.
28

WebTestManager : ferramenta de apoio ao processo de teste de aplicações web / Webtestmaneger : tool for support process web application

Silva, Delcio Nonato Araujo da January 2003 (has links)
Este trabalho apresenta uma ferramenta para o gerenciamento do processo de teste de aplicações baseadas na Web, priorizando as fases de planejamento e execução através da integração com os resultados de ferramentas automatizadas. Nos últimos anos a World Wide Web apresentou um crescimento extraordinário com novas aplicações em diversas áreas, como por exemplo, comércio eletrônico, serviços governamentais, educação, entretenimento, entre outras, necessitando assim um maior controle de qualidade das aplicações baseadas na Web. A Engenharia para Web é uma nova disciplina cujo objetivo é a utilização de processos, abordagens sistemáticas, princípios de gerenciamento e de engenharia com a finalidade de projetar, implementar, testar e manter sistemas e aplicações baseados na Web com alta qualidade. A qualidade e a confiabilidade das aplicações Web devem ser controladas como em todo produto de software. Porém, algumas características particulares mostram que as aplicações Web devem exigir uma maior preocupação, em função da heterogeneidade de plataformas de hardware e de software, e do grande número de usuários. O teste de aplicações web deve abranger diversas áreas como validação de códigos, navegação, desempenho, usabilidade, segurança, compatibilidade, funcionalidade, interoperabilidade, confiabilidade e integridade dos dados. A ferramenta proposta neste trabalho, chamada de WebTestManager, realiza o planejamento do processo de teste voltado para aplicações Web, na qual casos de testes são introduzidos de acordo com os requisitos de cada área de teste. Esta ferramenta permite o armazenamento de informações de teste e seus resultados, possibilitando uma avaliação através de métricas de teste. Como estudo de caso, a ferramenta é exemplificada no planejamento do teste de uma aplicação de bancária desenvolvida para a Web e de uma aplicação de reserva e compra de passagens aéreas. / This work presents a tool for the managing the testing process of Web based applications, which prioritizes the planning and execution phases with the integration of testing results from automated tools. In the last years, the World Wide Web has presented an extraordinary growth related to new applications on several areas, such as electronic trade, government services, education, and entertainment among others, needing though a larger quality control of applications based on that plataform. Web Engineering is a new discipline whose objective is the use of processes, systematic approaches, administration and engineering principles with the purpose of designing, implementing, testing and maintaining high quality systems based on the Web. The quality and reliability of Web applications should be controlled on every software product. However, some inherent characteristics show that the Web applications all demand a larger concern because of the heterogeneity of both hardware and software platforms, and the great number of users. The testing of Web applications all include several approaches such as validation of code, navigation, usability, safety, compatibility, functionality, interoperability, and integrity of data. The tool proposed in this work, called WebTestManager, accomplishes the planning of the testing process for Web applications. Through it, test cases can be introduced in agreement with requirements for each testing type. This tool shall allow the storage of testing information and its results, intented, for metric evaluation of the performed test. That information can be obtained through the execution of automated tools for each testing type. As case studies, the tool is exemplified through a test planning for both a bank application and a flight ticket reservation application on the Web.
29

Geração de testes de aceitação a partir de modelos U2TP para sistemas web / Acceptance tests generation from U2TP models for web applications

Feller, Nadjia Jandt January 2015 (has links)
A utilização desta abordagem no ciclo de desenvolvimento de uma aplicação web traz algumas vantagens, como ser necessário gerar manualmente apenas o modelo de comportamento de cada funcionalidade da aplicação, (pois os demais artefatos são gerados automaticamente), consumindo menos tempo e estando menos sujeitos a erros, além de prevenir diferentes interpretações dos requisitos pelos stakeholders, desenvolvedores e testadores. O tempo despendido na especificação dos modelos é compensado pelo tempo economizado com a geração dos cenários e do código de testes. / The testing activity throughout software development is fundamental to the pursuit of software quality and reliability, finding faults to be removed. However, despite its importance, software testing is often an underutilized phase in software development. Moreover, tests are proved to be expensive, difficult and problematic when not done in the appropriate way. A new paradigm for software testing is model-driven testing (MDT), which can be defined as software testing where test cases are derived from a model that describes some aspects of the system being tested, such as behavior, for example. This description, often using UML diagrams and/or its profiles, can be processed to produce a set of test cases. Software specifications based on usage scenarios expressed by appropriate UML diagrams are considered significant and effective, because they describe the system’s requirements from an intuitive and visual perspective. Thus, they can be used for the description of acceptance tests, which validate that the system meets user requirements. These specifications also facilitate the automation of this kind of test. Test automation can decrease time spent on testing, thereby reducing the cost of this activity. Thus, this work proposes an approach for automated generation of acceptance tests from U2TP (the UML 2.0 test profile) diagrams for web applications, based on behavior driven development (BDD) paradigm, obtaining acceptance scenarios and executable test code supported by an acceptance testing automation framework. This approach was applied on an actual development environment, by means of an experiment. Using this approach in an web application development cycle has some advantages, such as being required only to manually generate the model of behavior of each application functionality (because other artifacts are generated automatically), thus being less time consuming and less prone to errors, and preventing different interpretations of requirements by stakeholders, developers and testers. The time spent at the models’ specification is compensated by the time saved with the generation of scenarios and test code.
30

Injeção de falhas de comunicação em aplicações multiprotocolo / Communication fault injection in multi-protocol applications

Menegotto, Cristina Ciprandi January 2009 (has links)
Aplicações de rede com altos requisitos de dependabilidade devem ser testadas cuidadosamente em condições de falhas de comunicação para aumentar a confiança no seu comportamento apropriado na ocorrência de falhas. Injeção de falhas de comunicação é a técnica mais adequada para o teste dos mecanismos de tolerância a falhas destas aplicações em presença de falhas de comunicação. Ela é útil tanto para auxiliar na remoção de falhas como na previsão de falhas. Dentre as aplicações de rede, algumas são baseadas em mais de um protocolo, como UDP, TCP e RMI. Elas são denominadas multiprotocolo no contexto desse trabalho, que foca naquelas escritas em Java e baseadas em protocolos que estão acima do nível de rede na arquitetura TCP/IP. Um injetor de falhas de comunicação adequado, que trate todos os protocolos utilizados, é necessário para o seu teste. Caso a emulação de uma falha que afete a troca de mensagens não leve em consideração todos os protocolos simultaneamente utilizados, o comportamento emulado durante um experimento poderá ser diferente daquele observado na ocorrência de uma falha real, de modo que podem ser obtidos resultados inconsistentes sobre o comportamento da aplicação alvo em presença da falha. Muitos injetores de falhas de comunicação encontrados na literatura não são capazes de testar aplicações Java multiprotocolo. Outros possuem potencial para o teste dessas aplicações, mas impõem grandes dificuldades aos engenheiros de testes. Por exemplo, contrariamente ao enfoque deste trabalho, algumas ferramentas são voltadas à injeção de falhas de comunicação para o teste de protocolos de comunicação, e não de aplicações. Tal orientação ao teste de protocolos costuma levar a grandes dificuldades no teste de caixa branca de aplicações. Entre outros exemplos de dificuldades proporcionadas por ferramentas encontradas na literatura estão a incapacidade de testar diretamente aplicações Java e a limitação quanto aos tipos de falhas que permitem emular. A análise de tais ferramentas motiva o desenvolvimento de uma solução voltada especificamente ao teste de aplicações multiprotocolo desenvolvidas em Java. Este trabalho apresenta uma solução para injeção de falhas de comunicação em aplicações Java multiprotocolo. A solução opera no nível da JVM, interceptando mensagens de protocolos, e, em alguns casos, opera também no nível do sistema operacional, usando regras de firewall para emulação de alguns tipos de falhas que não podem ser emulados somente no nível da JVM. A abordagem é útil para testes de caixa branca e preta e possui características importantes como a preservação do código fonte da aplicação alvo. A viabilidade da solução proposta é mostrada por meio do desenvolvimento de Comform, um protótipo para injeção de falhas de comunicação em aplicações Java multiprotocolo que atualmente pode ser aplicado para testar aplicações Java baseadas em qualquer combinação dos protocolos UDP, TCP e RMI (incluindo as baseadas em um único protocolo). / Networked applications with high dependability requirements must be carefully tested under communication faults to enhance confidence in their proper behavior. Communication fault injection is the most suitable technique for testing the fault tolerance mechanisms of these applications under communication faults. The technique is useful both for helping in fault removal and for fault forecasting. Some networked applications are based on more than one protocol, such as UDP, TCP and RMI. They are called multi-protocol in the context of this work, that targets on those written in Java and based on protocols above Internet layer in TCP/IP architecture. A suitable communication fault injector, that properly handles all used protocols, is required for their test. If the emulation of a fault that affects message exchanging does not take into account all simultaneously used protocols, the behavior emulated in an experiment can be different from that observed under real fault occurrence. Therefore, inconsistent results about the target application’s behavior under faults can be obtained from the experiments. Many communication fault injectors found in literature are not capable of testing multi-protocol Java applications. Others can potentially test these applications, but they impose several drawbacks for test engineers. For instance, contrarily to the focus of this work, some tools aim to communication protocol testing and not to application testing. This orientation to protocol testing usually leads to great difficulties in white box testing of applications. Other examples of difficulties related to using tools found in literature include inability to directly test Java applications and limitations in respect to types of emulated faults. The analysis of the fault injectors found in literature motivates the development of a solution specifically aimed at testing multi-protocol applications written in Java. This work presents a solution for communication fault injection in multi-protocol Java applications. The solution works at JVM level, intercepting protocol messages, and, in some cases, it also operates at the operating system level, using firewall rules for the emulation of faults that could not be emulated at JVM level. The approach is useful for both white box and black box testing and has advantages such as preserving the target application’s source code. The viability of the proposed solution is shown by the development of a prototype tool called Comform, that is aimed at multi-protocol Java application testing. Comform can be applied to test Java applications based on any combination of UDP, TCP, and RMI (including those based on a single protocol).

Page generated in 0.471 seconds