• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 28
  • 13
  • 10
  • 3
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 64
  • 64
  • 57
  • 31
  • 27
  • 24
  • 20
  • 15
  • 15
  • 12
  • 12
  • 11
  • 11
  • 9
  • 9
  • 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.
41

Rehearsal: Um arcabouço para teste automatizado de coreografias de serviços web / Rehearsal: A framework for automated testing of web service choreographies

Besson, Felipe Meneses 14 September 2012 (has links)
Servicos web sao componentes de software fracamente acoplados projetados para promover a comunicacao interoperavel entre aplicacoes na Internet. O acesso a servicos web da-se de maneira padronizada (via protocolos definidos pelo W3C), independente da linguagem de programacao, sistema operacional ou plataforma em que sao desenvolvidos. Devido a essas caracteristicas, servicos simples podem ser combinados em servicos mais completos. Coreografia consiste em uma abordagem descentralizada para a composicao de servicos. Diferentemente de orquestracoes, abordagem na qual servicos distribuidos sao coordenados de modo centralizado, a interacao entre os servicos de uma coreografia e colaborativa e a coordenacao descentralizada. Apesar das vantagens, o desenvolvimento de coreografias, incluindo as atividades de testes, nao e algo consolidado. O objetivo desta dissertacao foi desenvolver uma arcabouco de teste que facilite o uso de Desenvolvimento Guiado por Testes (Test-Driven Development, TDD) em coreografias de servicos web. Rehearsal, o arcabouco proposto, fornece funcionalidades para o teste automatizado de (i) servicos web atomicos (teste de unidade); (ii) composicao de servicos (teste de integracao) e (iii) uma parte ou toda a coreografia (teste de aceitacao). Esses testes podem ser implementados utilizando funcionalidades do arcabouco, tais como a criacao dinamica de clientes para servicos web, o interceptador de mensagens e a abstracao da coreografia em objetos Java. Alem disso, Rehearsal facilita a criacao e uso de Mocks de servicos web, uma importante pratica de TDD. Além de avaliar o arcabouco desenvolvido, um estudo ex- ploratorio qualitativo foi conduzido com estudantes de Ciencia da Computacao. De acordo com os resultados obtidos, as funcionalidades do Rehearsal mostraram-se adequadas para a utilizacao de TDD em coreografias de servicos web. / Web services are loosely-coupled software components designed to support interoperable machine- to-machine interaction over the Internet. To achieve such interoperability, web services are accesible through W3C web standards, independently of which language, operating system, or hardware platform they are developed. Due to these characteristics, simple web services can be combined in more complex ones. Choreographies are a distributed approach for composing web services. Compared to orchestrations, which have a centralized approach to distributed service management, the interaction among the choreographed services is collaborative with decentralized coordination. Despite the advantages, choreography development, including the testing activities, is not consolidated. The goal of this research is to develop a testing framework to support Test-Driven Development (TDD) of choreographies. Rehearsal, the proposed framework, provides features for automating the testing of (i) atomic web services (unit testing); (ii) their integration in the choreography (integration testing); and (iii) part of or the entire choreography (acceptance testing). These several levels of testing are implemented by using framework features such as the dynamic generation of web service clients, message interception, and the abstraction of the choreography into Java objects. In addition, Rehearsal supports important practices of TDD such as service mocking. To assess the developed framework, we conducted a qualitative exploratory study with Computer Science students. According to the results obtained, the features of Rehearsal were adequate for applying TDD to web service choreography development successfully.
42

Test Driven Development: uma abordagem baseada em use cases

Milanez, Marcus Vinícius 20 September 2014 (has links)
Made available in DSpace on 2016-04-29T14:23:31Z (GMT). No. of bitstreams: 1 Marcus Vinicius Milanez.pdf: 1438354 bytes, checksum: 792d4f5889dafba8c4e2f71a02c050a0 (MD5) Previous issue date: 2014-09-20 / The development of computer programs is a complex activity, characterized by costs and deadlines that are difficult to estimate. Requirements change frequently, resulting in products of variable reliability. Currently, there are no formal theories that completely address these underlying challenges. Several approaches have been used over time to achieve incremental progress, leading to a significant number of programming languages, development processes, and techniques. Test Driven Development (TDD) is a recently-developed approach which extends the human capabilities to develop computer programs by providing tools to mitigate the difficulties mentioned. Although TDD aggregates a set of support and control elements, it does not include mechanisms that directly help developers with deriving implementations from a set of requirements previously captured and analyzed. As result of this absence, difficulties in understanding its nature and to elaborate the software through independent modules can be observed, ultimately limiting the impact of TDD on the reliability of software. The objective of this research is to overcome the shortcomings mentioned, complementing Kent Beck s TDD proposal by introducing a modeling stage guided by Use Cases, following the ideas of Ivar Jacobson and Wirfs-Brock. Through this approach, assessed by a case study conducted together with industry professionals, enhancements in TDD usage experience could be observed, altering the manner in which this proposal is commonly understood, used and evaluated / Desenvolver programa de computador é uma atividade complexa, cujos custos e prazos são difíceis de serem estimados, caracterizada por requisitos mutantes e que resulta em produtos sem garantias plenas de funcionamento. No atual estado de desenvolvimento desta área de pesquisa, ainda não existe teoria que estabeleça as bases dos conhecimentos necessários a prover soluções a estes problemas. Diversas abordagens foram utilizadas ao longo do tempo a fim de encontrar meios que culminassem em avanços, originando um conjunto expressivo de linguagens de programação, processos e técnicas de desenvolvimento. Uma tentativa recente que intenciona estender as capacidades humanas de desenvolver programas de computador, provendo elementos que permitiriam amenizar essas dificuldades, é uma ferramenta intelectual chamada Test Driven Development (TDD). Embora agregue um conjunto de elementos de apoio e controle ao desenvolvimento, TDD não dispõe de mecanismos que auxiliem desenvolvedores a derivar implementações a partir de um conjunto de requisitos previamente capturados e analisados. Como resultado dessa ausência, observam-se dificuldades em avaliar sua natureza e em propor a elaboração do software em módulos independentes, tornando TDD uma ferramenta questionável. O objetivo desta pesquisa reside em superar as lacunas citadas, complementando a proposta de Kent Beck sobre TDD por meio da introdução de uma etapa de modelagem guiada por modelos casos de uso (Use Cases), seguindo as ideias de Ivar Jacobson e Wirfs-Brock. Por meio desta abordagem, avaliada por estudo de caso realizado em conjunto com profissionais da indústria, observou-se um aprimoramento da experiência de utilização de TDD, alterando a maneira pela qual essa proposta é comumente compreendida, utilizada e avaliada
43

Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos / How the practice of TDD influences the class design on object-oriented systems

Aniche, Mauricio Finavaro 25 April 2012 (has links)
Desenvolvimento Guiado por Testes (TDD) e uma das praticas sugeridas na Programacao Extrema. A mecanica da pratica e simples: o programador escreve o teste antes de escrever o codigo. E, portanto, possivel inferir que a pratica de TDD e uma pratica de testes de software. Entretanto, muitos autores de livros conhecidos pela industria e academia afirmam que os efeitos da pratica vao alem. Segundo eles, TDD ajuda o desenvolvedor durante o processo de criacao do projeto classes, fazendo-os criar classes menos acopladas e mais coesas. Entretanto, grande parte dos trabalhos da literatura sao voltados a descobrir se a pratica faz diferenca na qualidade do codigo gerado, mas poucos sao os autores que discutem como a pratica realmente auxilia. Mesmo os proprios praticantes nao entendem ou conseguem expressar bem como a pratica os guia. Este trabalho tem por objetivo compreender melhor os efeitos de TDD e como sua pratica influencia o desenvolvedor durante o processo de projeto de sistemas orientados a objetos. Para entende-las, neste trabalho optamos por um estudo exploratorio essencialmente qualitativo, no qual participantes foram convidados a resolver exercicios pre-preparados utilizando TDD e, a partir dos dados colhidos nessa primeira parte, nos levantamos detalhes sobre como a pratica influenciou as decisoes de projeto de classes dos participantes por meio de entrevistas. Ao final, observamos que a pratica de TDD pode guiar o desenvolvedor durante o processo de criacao do projeto de classes por meio de constantes feedbacks sobre a qualidade do projeto. Esses feedbacks alertam desenvolvedores sobre possiveis problemas, como alto acoplamento ou baixa coesao. Os desenvolvedores, por sua vez, devem interpretar e melhorar o projeto de classes. Este trabalho catalogou e nomeou os padroes de feedback percebidos pelos participantes. / Test-Driven Development (TDD) is one of the suggested practices in Extreme Programming (XP). The mechanical is simple: the developer writes a test before writing the implementation. Thus, TDD is often seen as a software testing technique. However, many famous book authors suggest that TDD can help developers during the class design creation process, enabling developers to create less coupled highly cohesive classes. Most of the academic studies are interested on finding the difference between a TDDd and a non-TDDd code. Only a few of them discuss how the practice really supports class design. Even practitioners do not understand how the practice guides them. This work aims to understand better the effects of TDD and how the practice influences the practitioner during the class design process in object-oriented systems. To better understand them, we did a essencially qualitative explorative study, in which participants were invited to solve a set of pre-prepared exercises using TDD and, based on the gathered data, we retrieved details of how the practice influenced the developers class design decisions through interviews. At the end, we observed that the practice of TDD can guide developers during the class design creation process through constant feedback about its quality. These feedbacks alert developers about possible problems, such as high coupling or low cohesion. Developers then should interpret and improve the class design accordingly. This study also catalogues the TDD feedback patterns perceived by the participants.
44

Umple C++ Code Generator

Sultan, Almaghthawi 17 September 2013 (has links)
We discuss the design and analysis of a code generator for C++, implemented in the Umple model-oriented programming technology. Umple adds UML constructs and patterns to various base programming languages such as Java and PhP. Umple code generators create code for those constructs, which can include UML associations and state machines, as well as patterns such as immutable and singleton. Base language methods are passed through unchanged along with the generated code. Creating a C++ code generator for Umple posed many challenges, all of which are discussed in this thesis: We had to focus on the appropriate C++ idioms and stylistic conventions to follow. We followed a test-driven development process to ensure that the resulting code was correct. To evaluate the work, we compared our C++ generator with those in other tools such as ArgoUML and IBM Rational Software Architect. We conclude that our C++ generator is superior in many ways to these widely used tools because it is more complete and generates better quality code.
45

[en] AN EMPIRICAL EVALUATION OF AN ENVIRONMENT DESIGNED FOR TEST DRIVEN DEVELOPMENT / [pt] UMA AVALIAÇÃO EMPÍRICA DE UM AMBIENTE FAVORÁVEL PARA O DESENVOLVIMENTO DIRIGIDO POR TESTES

HENRIQUE FELICIANO PRANGE 28 September 2007 (has links)
[pt] Test Driven Development (TDD) é uma das práticas de eXtreme Programming (XP) mais fáceis de entender e ao mesmo tempo uma das mais difíceis de executar. Para que o TDD seja usado apropriadamente, é preciso empregar práticas complementares, utilizar ferramentas adequadas e tomar algumas precauções para que seja feito de forma correta. Este trabalho de mestrado apresenta um estudo baseado na experiência real - realizada em uma pequena empresa - na qual foi elaborada uma infra- estrutura favorável ao desenvolvimento dirigido por testes. Quais as vantagens e desvantagens de cada uma das práticas? Como introduzir essas práticas no dia-a- dia de uma pequena empresa? Que tipo de infra-estrutura deve ser montada? Quais as ferramentas? Quanto tempo e qual o tipo de investimento necessário para a implantação dessas melhorias? Estas e outras perguntas são respondidas no decorrer do trabalho. / [en] Test Driven Development (TDD) is one of the eXtreme Programming´s (XP) easiest practices to understand but at the same time difficult to implement. It is necessary to use complementary practices, appropriate tools, and follow carefully some rules for achieving good results. A real experiment creating an adequate environment for TDD was conducted in a small company. This study will show the results obtained. What are the advantages and disadvantages of each one of the practices? How to establish these practices in small company daily operations? What type of environment has to be built? Which tools? How much time and investment for implementing this kind of enhancement would be required? This work will present answers to these questions.
46

X-PRO (Extreme Software Process): Um Framework para Desenvolvimento Eficiente de Software Baseado em Metodologias Ágeis

Pereira, Carlos Diego Cavalcanti 18 March 2014 (has links)
Submitted by Lucelia Lucena (lucelia.lucena@ufpe.br) on 2015-03-06T18:19:42Z No. of bitstreams: 2 DISSERTAÇÃO Carlos Diego Cavalcanti Pereira.pdf: 4207386 bytes, checksum: 1b429f9663fd012cb9da480f02ee5391 (MD5) license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) / Made available in DSpace on 2015-03-06T18:19:42Z (GMT). No. of bitstreams: 2 DISSERTAÇÃO Carlos Diego Cavalcanti Pereira.pdf: 4207386 bytes, checksum: 1b429f9663fd012cb9da480f02ee5391 (MD5) license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Previous issue date: 2014-03-18 / As metodologias ágeis de desenvolvimento de software emergiram como alternativa para processos prescritivos, os quais são classificados como excessivamente formais. Com objetivo de viabilizar entregas frequentes, processos adaptáveis, flexíveis e focados no cliente, as metodologias ágeis se tornaram referência sobre como produzir software de forma produtiva. Contudo, com objetivo de tornar o processo mais simples, essas abordagens invariavelmente incorrem em problemas como: modelos pouco generalistas para cobrir todo o ciclo de vida da Engenharia de Software; foco em disciplinas específicas do processo de software; subestimação de aspectos relevantes em iniciativas de desenvolvimento, como esforços de arquitetura, design e documentação; e indicação para equipes e projetos de pequena escala. A proposta desta dissertação de mestrado é propor um framework de processo eficiente de desenvolvimento de software, o qual se baseia nos ideários das metodologias ágeis, porém cobre todo o ciclo de vida de projeto desde a concepção, gestão, implementação e entrega. O framework inclui ferramentas como princípios, valores, atividades, artefatos e práticas específicas, incluindo esforços como arquitetura, design e documentação, concebendo um processo ágil, eficiente e extremamente produtivo para projetos de concepção e manutenção software, independentemente da sua escala.
47

Rehearsal: Um arcabouço para teste automatizado de coreografias de serviços web / Rehearsal: A framework for automated testing of web service choreographies

Felipe Meneses Besson 14 September 2012 (has links)
Servicos web sao componentes de software fracamente acoplados projetados para promover a comunicacao interoperavel entre aplicacoes na Internet. O acesso a servicos web da-se de maneira padronizada (via protocolos definidos pelo W3C), independente da linguagem de programacao, sistema operacional ou plataforma em que sao desenvolvidos. Devido a essas caracteristicas, servicos simples podem ser combinados em servicos mais completos. Coreografia consiste em uma abordagem descentralizada para a composicao de servicos. Diferentemente de orquestracoes, abordagem na qual servicos distribuidos sao coordenados de modo centralizado, a interacao entre os servicos de uma coreografia e colaborativa e a coordenacao descentralizada. Apesar das vantagens, o desenvolvimento de coreografias, incluindo as atividades de testes, nao e algo consolidado. O objetivo desta dissertacao foi desenvolver uma arcabouco de teste que facilite o uso de Desenvolvimento Guiado por Testes (Test-Driven Development, TDD) em coreografias de servicos web. Rehearsal, o arcabouco proposto, fornece funcionalidades para o teste automatizado de (i) servicos web atomicos (teste de unidade); (ii) composicao de servicos (teste de integracao) e (iii) uma parte ou toda a coreografia (teste de aceitacao). Esses testes podem ser implementados utilizando funcionalidades do arcabouco, tais como a criacao dinamica de clientes para servicos web, o interceptador de mensagens e a abstracao da coreografia em objetos Java. Alem disso, Rehearsal facilita a criacao e uso de Mocks de servicos web, uma importante pratica de TDD. Além de avaliar o arcabouco desenvolvido, um estudo ex- ploratorio qualitativo foi conduzido com estudantes de Ciencia da Computacao. De acordo com os resultados obtidos, as funcionalidades do Rehearsal mostraram-se adequadas para a utilizacao de TDD em coreografias de servicos web. / Web services are loosely-coupled software components designed to support interoperable machine- to-machine interaction over the Internet. To achieve such interoperability, web services are accesible through W3C web standards, independently of which language, operating system, or hardware platform they are developed. Due to these characteristics, simple web services can be combined in more complex ones. Choreographies are a distributed approach for composing web services. Compared to orchestrations, which have a centralized approach to distributed service management, the interaction among the choreographed services is collaborative with decentralized coordination. Despite the advantages, choreography development, including the testing activities, is not consolidated. The goal of this research is to develop a testing framework to support Test-Driven Development (TDD) of choreographies. Rehearsal, the proposed framework, provides features for automating the testing of (i) atomic web services (unit testing); (ii) their integration in the choreography (integration testing); and (iii) part of or the entire choreography (acceptance testing). These several levels of testing are implemented by using framework features such as the dynamic generation of web service clients, message interception, and the abstraction of the choreography into Java objects. In addition, Rehearsal supports important practices of TDD such as service mocking. To assess the developed framework, we conducted a qualitative exploratory study with Computer Science students. According to the results obtained, the features of Rehearsal were adequate for applying TDD to web service choreography development successfully.
48

Testdriven utveckling in action : Hur kan en organisation lyckas med testdriven utveckling?

Lander, Magnus, Karlsson, Pracha, Mella, Daniel January 2014 (has links)
Inom en stor del av all systemutveckling sker testerna av systemet som sista punkt innan systemet sjösätts. Testdriven utveckling är en systemutvecklingsmetod där testerna istället skrivs först och också är det som driver utvecklingen framåt. Metoden höjs till skyarna av vissa och avfärdas omedelbart som onödigt omständig av andra. Vi vill med denna uppsats undersöka hur det ser ut i verkligheten och vilka faktorer som påverkar användandet, inlärningen och inställningen till testdriven utveckling. Vi genomförde intervjuer på tre stycken Örebrobaserade organisationer och tittade utifrån ramverket method-in-action på vilka faktorer som påverkade användningen och varför. Vi fann att utvecklarna närmade sig testdriven utveckling på väldigt olika sätt och grundade sin inställning mycket beroende på tidigare erfarenhet och inlärning – oavsett hur lång eller kort den varit. Utvecklarna förväntas ofta bedriva självstudier utanför arbetstid – något som inte alltid funkar som kunskaputvecklingsform då tiden utanför jobbet ser olika ut beroende på var i livet man är. Det finns inte heller något klart program eller best-practices att följa för att lära sig metoden i någon av organisationerna. Vi såg också att det finns tekniker utanför själva metoden som utvecklare ganska omgående behöver bli bekanta med för att kunna utveckla testdrivet: dependency injection och mock.
49

On Patterns for Refactoring Legacy C++ Code into a Testable State Using Inversion of Control

Böhlin, Per January 2010 (has links)
Amending old projects of legacy code to include agile practices such as extensive unit testing and refactoring has proven difficult. Since automated unit testing was not widely used a decade ago, much code has been written without unit testing in mind. This is especially true for C++ where RAII has been the dominant pattern .This has resulted in a lot of code that suffers from what best can be described as low testability. This also strongly impedes the creation of new unit tests to already existing code. Due to the lack of unit tests, refactoring is done sparsely and with great reluctance. This thesis work tries to remedy that and, in the scope of a limited case study on an existing code base, looks into different ways of creating and utilizing object seams in legacy C++ code to decouple dependencies to make isolated testing possible. This regards to: What are the impediments for code to be testable in an isolated setting? What are the steps for refactoring code to a testable state? The results can be summarized as to contain a list of factors affecting testability, among them: the use of asserts, global state, object instantiation, work in constructor and breaking Law of Demeter. Further with regards to patterns for refactoring code to a testable state, two types of patterns have crystallized: the injection of dependencies and the masking of dependencies using various techniques. The effect these two base patterns have on breaking dependencies on the base level and the Meta level is outlined. A catalogue of patterns has been compiled as part of the appendix.   Inversion of Control (IoC) is a principle used to decoupling classes and since strong dependences is often an attribute giving grievances with regard to testability, it was a central concern in this thesis. IoC can be simplified from a developer standpoint with the help of frameworks or what is usually referred to as IoC containers. Two IoC containers for C++ were evaluated: Autumn Framework PocoCapsule In the evaluation of the two IoC containers it was concluded that Autumn was not mature enough as of the time of the evaluation to be used in production setting. PocoCapsule, even though compelling for some of its powerful features with regard to DSM and HOT, its configuration sometimes require in-code workarounds, affecting its usability in some set of scenarios. However, the big difference was with regard to how the two containers approaches configuration. PocoCapsule uses static analysis of its XML configuration file making it truly declarative while Autumn does runtime parsing and dynamic invocations resulting in a situation closer to procedural scripting.
50

Umple C++ Code Generator

Sultan, Almaghthawi January 2013 (has links)
We discuss the design and analysis of a code generator for C++, implemented in the Umple model-oriented programming technology. Umple adds UML constructs and patterns to various base programming languages such as Java and PhP. Umple code generators create code for those constructs, which can include UML associations and state machines, as well as patterns such as immutable and singleton. Base language methods are passed through unchanged along with the generated code. Creating a C++ code generator for Umple posed many challenges, all of which are discussed in this thesis: We had to focus on the appropriate C++ idioms and stylistic conventions to follow. We followed a test-driven development process to ensure that the resulting code was correct. To evaluate the work, we compared our C++ generator with those in other tools such as ArgoUML and IBM Rational Software Architect. We conclude that our C++ generator is superior in many ways to these widely used tools because it is more complete and generates better quality code.

Page generated in 0.1227 seconds