972 resultados para Testes : Software
Resumo:
A literatura sobre Teste de Software apresenta diversas estratégias e metodologias que definem critérios eficazes e automatizáveis para selecionar casos de teste capazes de detectar erros em softwares. Embora eficientes na descoberta de erros, as técnicas de seleção de casos de teste exigem que uma quantidade relativamente grande de testes seja realizada para satisfazer os seus critérios. Essa característica acarreta, em parte, um alto custo na atividade de teste, uma vez que, ao fim de cada teste deve-se verificar se o comportamento do software está ou não de acordo com os seus requisitos. Oráculo para teste de software é um mecanismo capaz de determinar se o resultado de um teste está ou não de acordo com os valores esperados. Freqüentemente, assume-se que o próprio projetista de teste é o responsável por esta tarefa. A automatização da atividade dos oráculos deu origem a oráculos automáticos, os quais são capazes de determinar o bom ou mau funcionamento do software a partir de uma fonte de informação confiável. Ao longo dos anos, a especificação formal vêm sendo largamente utilizada como fonte de informação para oráculos automáticos. Diversas estratégias vêm propondo geradores de oráculos baseados em especificações formais. Dentre as características marcantes dessas estratégias, cita-se aquelas que são aplicáveis a implementações derivadas a partir da estrutura da especificação e aquelas que geram oráculos a partir de técnicas específicas de seleção de casos. Essas características, entretanto, limitam a aplicação abrangente dos oráculos por restringi-los tanto a implementações derivadas diretamente de especificações como ao uso de técnicas específicas de seleção de casos de teste. Este trabalho apresenta um estudo sobre os geradores de oráculos para teste de software, identifica aspectos fundamentais que regem seu processo de construção e propõe uma estratégia que permite a geração de oráculos semi-automaticamente, mesmo para implementações não derivadas diretamente da estrutura da especificação. A estratégia proposta é, também, aplicável aos casos de teste derivados de qualquer técnica de seleção de casos de teste.
Resumo:
A atividade de teste constitui uma fase de grande importância no processo de desenvolvimento de software, tendo como objetivo garantir um alto grau de confiabilidade nos produtos desenvolvidos. O paradigma da Orientação a Objetos (OO) surgiu com o objetivo de melhorar a qualidade bem como a produtividade no desenvolvimento de aplicações. Entretanto, apesar do aumento constante de aceitação do paradigma OO pela indústria de software, a presença de algumas de suas características torna a atividade de teste de programas neste paradigma mais complexa do que o teste de sistemas tradicionais. Entre estas características cita-se a herança, o encapsulamento, o polimorfismo e a ligação dinâmica [EIS 97] [PRE 95] [UNG 97]. Algumas técnicas estão sendo implementadas para auxiliarem a atividade de teste através do uso da tecnologia de reflexão computacional [HER 99]. Estas técnicas permitem a realização de análises de aspectos dinâmicos dos programas, sem a necessidade de instrumentar o código-fonte das aplicações que estão sendo monitoradas. Com o objetivo de auxiliar o processo de teste de programas orientados a objetos, este trabalho aborda o desenvolvimento de uma ferramenta, a qual automatiza parcialmente o teste de programas escritos em Java. A ferramenta evidencia o teste de estados fazendo uso da tecnologia de reflexão computacional. Através da especificação de asserções, feitas pelo usuário da ferramenta, na forma de invariantes de classe, pré e pós-condições de métodos, é possível verificar a integridade dos estados dos objetos durante a execução do programa em teste. A ferramenta possibilita também, armazenar a seqüência de métodos chamados pelos objetos da aplicação em teste, tornando possível ao testador, visualizar o histórico das interações entre os objetos criados no nível-base.
Resumo:
As maiores dificuldades encontradas no teste de software estão relacionadas à definição dos dados de teste e a decisão de quando encerrar os testes. Uma das formas encontradas para minimizar tais dificuldades está centrada na utilização de critérios de cobertura. O principal objetivo dos critérios de cobertura é tornar o processo de testes mais rápido e preciso, fornecendo informações que determinem o que testar em um software para garantir sua qualidade. A modelagem é um dos elementos de maior importância nas atividades relacionadas ao desenvolvimento de software. Os modelos são construídos principalmente para melhor se entender o sistema, descrever a estrutura e comportamento desejados, visualizar a arquitetura e documentar as decisões tomadas durante o seu desenvolvimento. Atualmente, o sistema de notação mais utilizado para a modelagem de sistemas baseados nos conceitos de orientação a objetos é a Linguagem de Modelagem Unificada – UML [LAR 99]. Nesta notação, um sistema é descrito por um conjunto de diagramas que apresentam diferentes aspectos do sistema. As informações disponibilizadas por estes diagramas propiciam, já nas fases iniciais do desenvolvimento da aplicação (análise e projeto), o planejamento dos casos de teste e a definição de critérios de cobertura. Observa-se que nestas fases a maioria das informações necessárias para o teste já estão disponíveis, como por exemplo, a definição das classes com seus atributos, métodos e relacionamentos, a representação da interação existente entre objetos para a realização de um cenário e a descrição dos possíveis estados e transições de um objeto em resposta a eventos externos e internos. Este trabalho propõe um conjunto de diretrizes e critérios de cobertura de teste, tendo como base as especificações diagramáticas UML. As diretrizes estabelecem um conjunto de instruções para que o teste seja feito e os critérios de cobertura identificam os pontos principais e serem considerados durante o teste. Na definição das diretrizes e dos critérios foram avaliadas as informações disponibilizadas pelos diagramas de classes, seqüência, colaboração e estados.
Resumo:
O objetivo deste trabalho é o desenvolvimento de frameworks de testes automáticos de software. Este tipo de testes normalmente está associado ao modelo evolucionário e às metodologias ágeis de desenvolvimento de software, enquanto que os testes manuais estão relacionados com o modelo em cascata e as metodologias tradicionais. Como tal foi efetuado um estudo comparativo sobre os tipos de metodologias e de testes existentes, para decidir quais os que melhor se adequavam ao projeto e dar resposta à questão "Será que realmente compensa realizar testes (automáticos)?". Finalizado o estudo foram desenvolvidas duas frameworks, a primeira para a implementação de testes funcionais e unitários sem dependências a ser utilizada pelos estagiários curriculares da LabOrders, e a segunda para a implementação de testes unitários com dependências externas de base de dados e serviços, a ser utilizada pelos funcionários da empresa. Nas últimas duas décadas as metodologias ágeis de desenvolvimento de software não pararam de evoluir, no entanto as ferramentas de automação não conseguiram acompanhar este progresso. Muitas áreas não são abrangidas pelos testes e por isso alguns têm de ser feitos manualmente. Posto isto foram criadas várias funcionalidades inovadoras para aumentar a cobertura dos testes e tornar as frameworks o mais intuitivas possível, nomeadamente: 1. Download automático de ficheiros através do Internet Explorer 9 (e versões mais recentes). 2. Análise do conteúdo de ficheiros .pdf (através dos testes). 3. Obtenção de elementos web e respetivos atributos através de código jQuery utilizando a API WebDriver com PHP bindings. 4. Exibição de mensagens de erro personalizadas quando não é possível encontrar um determinado elemento. As frameworks implementadas estão também preparadas para a criação de outros testes (de carga, integração, regressão) que possam vir a ser necessários no futuro. Foram testadas em contexto de trabalho pelos colaboradores e clientes da empresa onde foi realizado o projeto de mestrado e os resultados permitiram concluir que a adoção de uma metodologia de desenvolvimento de software com testes automáticos pode aumentar a produtividade, reduzir as falhas e potenciar o cumprimento de orçamentos e prazos dos projetos das organizações.
Resumo:
Spacecraft move with high speeds and suffer abrupt changes in acceleration. So, an onboard GPS receiver could calculate navigation solutions if the Doppler effect is taken into consideration during the satellite signals acquisition and tracking. Thus, for the receiver subject to such dynamic cope these shifts in the frequency signal, resulting from this effect, it is imperative to adjust its acquisition bandwidth and increase its tracking loop to a higher order. This paper presents the changes in the GPS Orion s software, an open architecture receiver produced by GEC Plessey Semiconductors, nowadays Zarlink, in order to make it able to generate navigation fix for vehicle under high dynamics, especially Low Earth Orbit satellites. GPS Architect development system, sold by the same company, supported the modifications. Furthermore, it presents GPS Monitor Aerospace s characteristics, a computational tool developed for monitoring navigation fix calculated by the GPS receiver, through graphics. Although it was not possible to simulate the software modifications implemented in the receiver in high dynamics, it was observed that the receiver worked in stationary tests, verified also in the new interface. This work also presents the results of GPS Receiver for Aerospace Applications experiment, achieved with the receiver s participation in a suborbital mission, Operation Maracati 2, in December 2010, using a digital second order carrier tracking loop. Despite an incident moments before the launch have hindered the effective navigation of the receiver, it was observed that the experiment worked properly, acquiring new satellites and tracking them during the VSB-30 rocket flight.
Resumo:
Through the adoption of the software product line (SPL) approach, several benefits are achieved when compared to the conventional development processes that are based on creating a single software system at a time. The process of developing a SPL differs from traditional software construction, since it has two essential phases: the domain engineering - when common and variables elements of the SPL are defined and implemented; and the application engineering - when one or more applications (specific products) are derived from the reuse of artifacts created in the domain engineering. The test activity is also fundamental and aims to detect defects in the artifacts produced in SPL development. However, the characteristics of an SPL bring new challenges to this activity that must be considered. Several approaches have been recently proposed for the testing process of product lines, but they have been shown limited and have only provided general guidelines. In addition, there is also a lack of tools to support the variability management and customization of automated case tests for SPLs. In this context, this dissertation has the goal of proposing a systematic approach to software product line testing. The approach offers: (i) automated SPL test strategies to be applied in the domain and application engineering, (ii) explicit guidelines to support the implementation and reuse of automated test cases at the unit, integration and system levels in domain and application engineering; and (iii) tooling support for automating the variability management and customization of test cases. The approach is evaluated through its application in a software product line for web systems. The results of this work have shown that the proposed approach can help the developers to deal with the challenges imposed by the characteristics of SPLs during the testing process
Resumo:
The main goal of Regression Test (RT) is to reuse the test suite of the latest version of a software in its current version, in order to maximize the value of the tests already developed and ensure that old features continue working after the new changes. Even with reuse, it is common that not all tests need to be executed again. Because of that, it is encouraged to use Regression Tests Selection (RTS) techniques, which aims to select from all tests, only those that reveal faults, this reduces costs and makes this an interesting practice for the testing teams. Several recent research works evaluate the quality of the selections performed by RTS techniques, identifying which one presents the best results, measured by metrics such as inclusion and precision. The RTS techniques should seek in the System Under Test (SUT) for tests that reveal faults. However, because this is a problem without a viable solution, they alternatively seek for tests that reveal changes, where faults may occur. Nevertheless, these changes may modify the execution flow of the algorithm itself, leading some tests no longer exercise the same stretch. In this context, this dissertation investigates whether changes performed in a SUT would affect the quality of the selection of tests performed by an RTS, if so, which features the changes present which cause errors, leading the RTS to include or exclude tests wrongly. For this purpose, a tool was developed using the Java language to automate the measurement of inclusion and precision averages achieved by a regression test selection technique for a particular feature of change. In order to validate this tool, an empirical study was conducted to evaluate the RTS technique Pythia, based on textual differencing, on a large web information system, analyzing the feature of types of tasks performed to evolve the SUT
Resumo:
Testar software é uma das atividades que faz parte do desenvolvimento de software, e tem como objetivo apresentar evidências de confiabilidade contribuindo para uma maior qualidade do software. Esta atividade consome uma parte significativa do esforço de um projeto de desenvolvimento de software, sempre com o objetivo de encontrar erros antes da fase de manutenção, pois o custo de correção nesta fase pode ser até 100 vezes superior ao custo de correção na fase de conceção. Para auferir mais qualidade ao software, este pode ser certificado por uma norma de qualidade. As normas fornecem processos consistentes, rigorosos e uniformes para o desenvolvimento de software sempre com o objetivo de garantir qualidade ao software. As normas têm um papel importante na definição dos requisitos de teste, casos de teste e relatórios de teste que contemplam a atividade de testes permitindo elaborar um plano de testes mais rigoroso. Como o processo de testes é complexo no desenvolvimento de software, as ferramentas de automatização de testes de software permitem reduzir tempo, recursos e consequentemente os custos para a organização. A automatização deverá ser capaz de produzir os mesmos resultados obtidos através de um processo de testes manual, evidenciando sempre o resultado do teste. Deve também permitir a realização de testes sistemáticos e paralelos em diferentes ambientes de teste, sem o aumento do tempo e de recursos humanos. Nesta dissertação pretende-se desenvolver uma abordagem automatizada com o software Sikuli para a realização de testes seguindo a norma ISO/IEC 25051 para certificação de software. Depois da criação da abordagem e a respetiva criação de testes, é necessário validar a capacidade desta abordagem em comparação com uma abordagem de testes manuais.
Resumo:
A utilização de sistemas de informações geográficas via Web (Sigweb) tem crescido nos últimos anos pela facilidade na manipulação e visualização de informações de diferentes lugares através da Internet. O objetivo deste estudo é realizar testes de sistemas de informações geográficas na Internet com ênfase na técnica funcional para avaliar a funcionalidade, usabilidade, a navegabilidade dos programas conhecidos como Sigweb prontos para usar. Para tanto, foi necessária a identificação dos casos de uso dos programas propostos para o estudo. Como resultado se pode conferir o comportamento dos sistemas durante os testes, além de distinguir as características de cada SigWeb e as dificuldades encontradas.
Resumo:
Os testes são uma atividade crucial no desenvolvimento de sistemas, pois uma boa execução dos testes podem expor anomalias do software e estas podem ser corrigidas ainda no processo de desenvolvimento, reduzindo custos. Esta dissertação apresenta uma ferramenta de testes chamada SIT (Sistema de Testes) que auxiliará no teste de Sistemas de Informações Geográficas (SIG). Os SIG são caracterizados pelo uso de informações espaciais georreferenciadas, que podem gerar um grande número de casos de teste complexos. As técnicas tradicionais de teste são divididas em funcionais e estruturais. Neste trabalho, o SIT abordará os testes funcionais, focado em algumas técnicas clássicas como o particionamento de equivalência e análise do Valor Limite. O SIT também propõe o uso de Lógica Nebulosa como uma ferramenta que irá sugerir um conjunto mínimo de testes a executar nos SIG, ilustrando os benefícios da ferramenta.
Resumo:
Dissertação de natureza científica para obtenção do grau de Mestre em Engenharia Informática e de Computadores
Resumo:
Trabalho Final de Mestrado para obtenção do grau de Mestre em Engenharia Mecânica
Resumo:
Atualmente, verifica-se um aumento na necessidade de software feito à medida do cliente, que se consiga adaptar de forma rápida as constantes mudanças da sua área de negócio. Cada cliente tem os seus problemas concretos que precisa de resolver, não lhe sendo muitas vezes possível dispensar uma elevada quantidade de recursos para atingir os fins pretendidos. De forma a dar resposta a estes problemas surgiram várias arquiteturas e metodologias de desenvolvimento de software, que permitem o desenvolvimento ágil de aplicações altamente configuráveis, que podem ser personalizadas por qualquer utilizador das mesmas. Este dinamismo, trazido para as aplicações sobre a forma de modelos que são personalizados pelos utilizadores e interpretados por uma plataforma genérica, cria maiores desafios no momento de realizar testes, visto existir um número de variáveis consideravelmente maior que numa aplicação com uma arquitetura tradicional. É necessário, em todos os momentos, garantir a integridade de todos os modelos, bem como da plataforma responsável pela sua interpretação, sem ser necessário o desenvolvimento constante de aplicações para suportar os testes sobre os diferentes modelos. Esta tese debruça-se sobre uma aplicação, a plataforma myMIS, que permite a interpretação de modelos orientados à gestão, escritos numa linguagem específica de domínio, sendo realizada a avaliação do estado atual e definida uma proposta de práticas de testes a aplicar no desenvolvimento da mesma. A proposta resultante desta tese permitiu verificar que, apesar das dificuldades inerentes à arquitetura da aplicação, o desenvolvimento de testes de uma forma genérica é possível, podendo as mesmas lógicas ser utilizadas para o teste de diversos modelos distintos.
Resumo:
Este trabalho descreve a especificação e implementação do protótipo Assistente de Feedback que ajuda os usuários a ajustarem os parâmetros do serviço de filtragem de mensagens vindas do correio eletrônico de sistemas como o Direto. O Assistente de Feedback é instalado no computador do usuário do Direto para monitorar suas preferências representadas pelas ações aplicadas nas mensagens do correio eletrônico. O trabalho apresenta, ainda, uma revisão bibliográfica sobre os conceitos gerais de probabilidades, redes Bayesianas e classificadores. Procura-se descrever as características gerais dos classificadores, em especial o Naive Bayes, sua lógica e seu desempenho comparado a outros classificadores. São abordados, também, conceitos relacionados ao modelo de perfil de usuário e o ambiente Direto. O Naive Bayes torna-se atraente para ser utilizado no Assistente de Feedback por apresentar bom desempenho sobre os demais classificadores e por ser eficiente na predição, quando os atributos são independentes entre si. O Assistente de Feedback utiliza um classificador Naive Bayes para predizer as preferências por intermédio das ações do usuário. Utiliza, também, pesos que representarão a satisfação do usuário para os termos extraídos do corpo da mensagem. Esses pesos são associados às ações do usuário para estimar os termos mais interessantes e menos interessantes, pelo valor de suas médias finais. Quando o usuário desejar alterar os filtros de mensagens do Direto, ele solicita ao Assistente de Feedback sugestões para possíveis exclusões dos termos menos interessantes e as possíveis inclusões dos termos mais interessantes. O protótipo é testado utilizando dois métodos de avaliação para medir o grau de precisão e o desempenho do Assistente de Feedback. Os resultados obtidos na avaliação de precisão apresentam valores satisfatórios, considerando o uso de cinco classes pelo classificador do Assistente de Feedback. Os resultados dos testes de desempenho permitem observar que, se forem utilizadas máquinas com configurações mais atualizadas, os usuários conseguirão receber sugestões com tempo de respostas mais toleráveis.
Resumo:
The advent of the Internet stimulated the appearance of several services. An example is the communication ones present in the users day-by-day. Services as chat and e-mail reach an increasing number of users. This fact is turning the Net a powerful communication medium. The following work explores the use of communication conventional services into the Net infrastructure. We introduce the concept of communication social protocols applied to a shared virtual environment. We argue that communication tools have to be adapted to the Internet potentialities. To do that, we approach some theories of the Communication area and its applicability in a virtual environment context. We define multi-agent architecture to support the offer of these services, as well as, a software and hardware platform to support the accomplishment of experiments using Mixed Reality. Finally, we present the obtained results, experiments and products