Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1420
Title: Aumentando a confiança nos resultados de testes de sistemas multi-threaded: evitando asserções antecipadas e tardias.
Other Titles: Increasing confidence in test results from multi-threaded systems.
???metadata.dc.creator???: REBOUÇAS, Ayla Débora Dantas de Souza.
???metadata.dc.contributor.advisor1???: BRASILEIRO, Francisco Vilar.
???metadata.dc.contributor.referee1???: MACHADO, Patrícia Duarte de Lima.
???metadata.dc.contributor.referee2???: GUERRERO, Dalton Dario Serey.
???metadata.dc.contributor.referee3???: D'AMORIM, Marcelo Bezerra.
???metadata.dc.contributor.referee4???: COELHO, Roberta de Souza.
Keywords: Sistemas Multi-Threaded;Testes de Software;Software - Confiabilidade;Avaliação de Software;Abordagem Thread Control for Tests;Software Testing
Issue Date: 30-Aug-2010
Publisher: Universidade Federal de Campina Grande
Citation: REBOUÇAS, Ayla Débora Dantas de Souza. Aumentando a confiança nos resultados de testes de sistemas multi-threaded: evitando asserções antecipadas e tardias. 2010. 302 f. (Tese de Doutorado em Ciência da Computação), Programa de Pós-graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande - Paraíba - Brasil, 2010. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1420
???metadata.dc.description.resumo???: Testar sistemas com múltiplas threads é uma atividade que envolve vários desafios. O fato de serem inerentemente não determinísticos torna tanto a implementação desses sistemas quanto a implementação de seus testes suscetível a erros. É comum existirem testes nestes sistemas que falham em apenas algumas execuções, sem que as causas dessas falhas sejam faltas na aplicação (também conhecidas como defeitos oubugs), mas sim devido a problemas nos testes. Por exemplo, isso pode acontecer se a fase dos testes em que são feitas as verificações (asserções) for executada em momentos inadequados. Isso é freqüente quando os testes envolvem operações assíncronas. Deve-se evitar que nestes testes as asserções sejam feitas antes que essas operações tenham sido concluídas ou também que sejam feitas em um momento tardio, quando o sistema mudou de estado e as condições verificadas não são mais satisfeitas, gerando assim falsos positivos. Testes que não são confiáveis, como os que falham devido a tais problemas, levam os desenvolvedores a desperdiçar muito tempo procurando faltas de software que não existem. Além disso, os desenvolvedores podem perder a confiança nos testes parando de acreditar que falhas em certos testes são devidas a faltas, mesmo quando este é o caso. A existência de tais cenários foi o que motivou este trabalho, que tem como objetivo evitar que asserções em testes sejam feitas cedo ou tarde demais. Para atingir esse objetivo, apresenta-se uma abordagem baseada na monitoração e controle das threads daaplicação e quedê suporte ao desenvolvimento de testes corretos de sistemas multi-threaded. A abordagem visa facilitar a implementação de testes envolvendo operações assíncronas e aumentar a confiança dos desenvolvedores nos seus resultados. Esta abordagem foi avaliada através de estudos de caso utilizando uma ferramenta de suporte ao teste de sistemas multi-threaded, desenvolvida para este trabalho, e também através de sua modelagem formal utilizando a linguagem TLA+, com o objetivo de demonstrar que asserções antecipadas e tardias não ocorrem quando ela é utilizada.
Abstract: Testing multi-threaded systems is quite a challenge. The inherent non-determinism of these systems makes their implementation and the implementation of their tests far more susceptible to error. It is common to have tests of these systems that may not sometimes pass and whose failures are not caused by application faults (bugs), but by problems with the tests. For instance, thiscan happen when there are asynchronous operations whose corresponding test verifications (assertions) are performed at inappropriate times. Unreliable tests make developers waste their time trying to find non-existing bugs, or else make them search for bugs in the wrong place. Another problem is that developers may cease to believe that certain test failures are caused by software bugs even when this is the case. Scenarios like these have motivated this work. Our main objective is to avoid test failures that are caused, not by application defects, but by test assertions performed either too early or too late. In order to achieve this goal, we present an approach whose basic idea is to use thread monitoring and control in order to support the development of multi-threaded systems tests involving asynchronous operations. This approach is intended to make it easier the development of correct tests for these systems and also to improve developers’ confidence on the results of their tests. The proposed approach has been evaluated through case studies using a tool to support the development of multi-threaded systems tests (developed for this work) and also by formally modeling the approach using theTLA+ language in order to prove that early and late assertions do not occur when this approach isused.
Keywords: Sistemas Multi-Threaded
Testes de Software
Software - Confiabilidade
Avaliação de Software
Abordagem Thread Control for Tests
Software Testing
???metadata.dc.subject.cnpq???: Ciência da Computação.
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1420
Appears in Collections:Doutorado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
AYLA DEBORA DANTAS DE SOUZA REBOUÇAS - TESE PPGCC 2010..pdfAyla Débora Dantas de Souza Rebouças - Tese PPGCC 2010.2.19 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.