Spelling suggestions: "subject:"[een] TEST DRIVEN DEVELOPMENT"" "subject:"[enn] TEST DRIVEN DEVELOPMENT""
31 |
X-PRO (Extreme Software Process): Um Framework para Desenvolvimento Eficiente de Software Baseado em Metodologias ÁgeisPereira, 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.
|
32 |
Rehearsal: Um arcabouço para teste automatizado de coreografias de serviços web / Rehearsal: A framework for automated testing of web service choreographiesFelipe 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.
|
33 |
On Patterns for Refactoring Legacy C++ Code into a Testable State Using Inversion of ControlBö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.
|
34 |
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 systemsMauricio Finavaro Aniche 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.
|
35 |
Mobilní aplikace pro administraci CMS / Mobile Application for CMS AdministrationIngr, Michal January 2017 (has links)
The master's thesis describes the designing and developing mobile application for remote management of Kentico CMS/EMS system via REST interface. The thesis emphasized agile approaches to development, especially Test-Driven Development and automated testing.
|
36 |
WordHunch : Server-kommunkation och lokal datalagring av en androidapplikation / WordHunch : Server communication and local data storage of an android applicationSyed, Abbas January 2015 (has links)
Vi har i detta projekt arbetat med att utforma ett robust och säkert system som är byggt med hjälp av klient-server arkitekturen åt Tweakers HB. Tweakers HB är ett nytt företag som utvecklar allt från mobila till stationära applikationer. Produkten som utvecklats är ett ordbaserat frågesportsspel som har multiplayer funktionalitet. Applikationen/klienten var utvecklat för mobiler som använder Android plattformen och server bestod av ett REST API och en MYSQL databas. Klient-sidan byggdes upp med en anpassad tillämpning av MVC mönstret och använde SQLite för att spara data lokalt. Målet med projektet kommer vara att utvecklat ett system som kommer att ha en lång livslängd som även kan byggas ut i framtiden. För att kunna uppnå målet med produkten så användes utvecklingsmetoden XP(Extreme Programming) och test-driven utveckling. Företaget la vissa krav på tekniker som skulle användas men i stort sett så låg ansvaret på utvecklingsgruppens att hitta tekniker och biliotek för att uppnå kraven. En stor del av kraven blev uppfyllda. / We have in this project worked on designing a robust and reliable system that is built using the client-server architecture for Tweakers HB. Tweakers HB is a new company that develops everything from mobile to desktop applications. The product developed is a word based quiz game with multiplayer functionality. The application/client was developed for mobile phones using the Android platform and the server consisted of a REST API and a MySQL database. The client-side was built using a custom implementation of the MVC pattern and used SQLite to store data locally. The goal of the project was to develop a system that will have a long life span that could also be expanded in the future. In order to achieve the goal of the product XP (Extreme Programming) development methodology and test-driven development was used. The company put certain requirements for technologies that could be used but basically the responsibility fell upon development team to find techniques and libraries to achieve the requirements. Much of demands where satisfied.
|
37 |
Webbapplikation för filtrering och visualisering av data : utvecklad med Pythonramverket Dash / Web application for data filtration and visualization : developed with the Python framework DashBlomqvist, Andreas, de Brun Mangs, William, Elfstrand, Tobias, Grahn, David, Holm, Hampus, Matstoms, Axel, Mersh, Jamie, Ngo, Robin, Wåtz, Christopher January 2023 (has links)
Denna rapport behandlar skapandet av en webbapplikation för filtreraring och visualisering av data i Pythonramverket Dash. Rapporten ger en översikt av gruppens arbetsmetodik och projektets utveckling. Webbapplikationen utvecklades inom kursen TDDD96 Kandidatprojekt i programvaruutveckling av nio studenter som studerar civilingenjör Datateknik och civilingenjör Mjukvaruteknik. Detta uppdrag fick projektgruppen av företaget Ericsson. Projektets resultat blev en fungerade webbapplikation efterfrågad funktionalitet. Resultatet och arbetsmetodiken, bland annat testdriven utveckling, diskuteras i rapporten med fokus på hur utvecklingsprocessen förbättrades. Rapportens slutsatser är att ramverket Dash lämpar sig för webbutveckling i ett mindre projekt, särskilt för datavisualisering, och att produkten skapar värde för kunden.
|
38 |
Evaluation Process of Unit Test Frameworks in C++ for MicrocontrollersAnderö, Emil, Tarihi, Arvin January 2024 (has links)
This study explores a solution to promote Test-Driven Development in the embedded development field, a field that has not adopted the use as widely as other software development fields. In this study, an evaluation process of Unit Test Framework was created. In Test-Driven Development, creating unit tests is an essential part where Unit Test Framework is a software and tool to help developers create such unit tests. The target group is junior embedded developers, catering to a niche group with the reason for introducing and promoting Test-Driven Development early on. This research was conducted specifically in the software development field for embedded microcontrollers in C++. The first research area was about what junior embedded developers think are the most important features and criteria a Unit Test Framework should consist of and support. Those results, along with the author's own opinions from their experience of using Unit Test Framework, a list of features and criteria was compiled for the model to evaluate. The model tests and evaluates criteria using both an observational and experimental method. The result outlines each framework's different strengths and weaknesses and lowers the knowledge barrier, thereby promoting Test-Driven Development and the use of Unit Test Frameworks.
|
39 |
Desenvolvimento ágil para groupware na Web 2.0Pereira, Vinícius 26 June 2012 (has links)
Made available in DSpace on 2016-06-02T19:05:56Z (GMT). No. of bitstreams: 1
4409.pdf: 4554321 bytes, checksum: 40828d088d2ef261abc9e99060a90ab0 (MD5)
Previous issue date: 2012-06-26 / Universidade Federal de Sao Carlos / This project investigated an Agile Development Process for groupware on theWeb 2.0. The
process has its based in different technologies, especially those of the Scrum agile method,
integrated with functional testing at the acceptance level. To assist this integration, we
established a greater intercommunication between the process disciplines, using the User
Stories as artifacts in all disciplines. The process aims to take advantage of the agility of the
Scrum without losing quality in the development of applications. It was developed based
on the Scrum process, with the addition of technologies that support the creation and use
of artifacts in the search for integration with functional testing. The process uses three disciplines,
each one refining the User Stories, which occur in different degrees of abstraction
throughout the development. These stories should be a most faithful portrait possible of user
needs and are used both in the form of cards (Story Cards), for requirements specification,
and in an executable format to guide the implementation and work as functional testing.
Mockups are used to complement the requirements specified in the cards, assisting in the
task of representing the requirements. This set is the basis for the creation of User Stories
in executable format. Other modeling artifacts, like Class Diagram, can also be specified in
order to elicit requirements of the application. The procedure is supported by tools developed
to enable the integration of the functional tests. These tools define a tests specification
language to write User Stories, created as a DLL for Visual Studio, and a converter of these
User Stories for functional testing in C# code. Thus, the proposed process provides a greater
integration of tests during the development and execution of each discipline in order
to produce higher quality applications. To test the process, applications were developed in
the domain of groupware in Web 2.0. The adoption of this area was motivated by the idea
of exploring the development of collaborative software that supports group work of people
involved in common tasks. / Este projeto pesquisou um Processo de Desenvolvimento Ágil para groupware na Web 2.0. O Processo tem suas bases em diferentes tecnologias, destacando-se as do método ágil Scrum, e é integrado com testes funcionais a nível de aceitação. Para auxiliar essa integração, estabeleceu-se uma maior intercomunicação entre as disciplinas do processo, utilizando as Histórias do Usuário como artefatos em todas as disciplinas. O processo visa à tirar proveito da agilidade do Scrum, sem perder qualidade no desenvolvimento das aplicações. Foi desenvolvido tendo como base o processo Scrum, adicionado de tecnologias que apoiam a criação e utilização de artefatos na busca para integração com testes funcionais. O processo utiliza três disciplinas (Comunicação, Modelagem e Construção), cada uma refinando as Histórias do Usuário, que ocorrem em diferentes graus de abstração ao longo do desenvolvimento. Essas histórias devem ser um retrato mais fiel possível das necessidades do usuário e são utilizadas tanto no formato de cartões (Cartões de História), para a especificação de requisitos, quanto em um formato executável para orientar a implementação e trabalhar como testes funcionais. Mock-ups são utilizados para complementar os requisitos especificados nos cartões, auxiliando na tarefa de representar os requisitos. Esse conjunto é a base para a criação das Histórias do Usuário no formato executável. Outros artefatos de modelagem, como o Diagrama de Classes, também podem ser especificados, para elicitar os requisitos da aplicação. O Processo é apoiado por ferramentas desenvolvidas para possibilitar a integração de testes funcionais. Essas ferramentas definem uma linguagem para especificação de testes para escrever as Histórias do Usuário, criada como uma DLL para o Visual Studio, e um conversor dessas Histórias do Usuário para testes funcionais em código C#. Assim, o processo proposto estabelece uma maior integração dos testes durante o desenvolvimento e execução de cada disciplina, visando a produção de aplicações com maior qualidade. Para testar o processo, foram desenvolvidas aplicações do domínio de groupware na Web 2.0. A adoção desse domínio foi motivada pela ideia de explorar o desenvolvimento de software colaborativo que apoia o trabalho em grupo de pessoas envolvidas em tarefas comuns.
|
40 |
Integração da abordagem Domain-Driven Design e de técnica Behaviour-Driven Development no desenvolvimento de aplicações webSantos, Eloisa Cristina Silva 01 June 2015 (has links)
Submitted by Alison Vanceto (alison-vanceto@hotmail.com) on 2016-09-30T12:23:06Z
No. of bitstreams: 1
DissECSS.pdf: 2536269 bytes, checksum: a856f5027d19c2aaadf2834a69af7ff4 (MD5) / Approved for entry into archive by Ronildo Prado (ronisp@ufscar.br) on 2016-09-30T17:56:23Z (GMT) No. of bitstreams: 1
DissECSS.pdf: 2536269 bytes, checksum: a856f5027d19c2aaadf2834a69af7ff4 (MD5) / Approved for entry into archive by Ronildo Prado (ronisp@ufscar.br) on 2016-09-30T17:56:32Z (GMT) No. of bitstreams: 1
DissECSS.pdf: 2536269 bytes, checksum: a856f5027d19c2aaadf2834a69af7ff4 (MD5) / Made available in DSpace on 2016-09-30T18:05:54Z (GMT). No. of bitstreams: 1
DissECSS.pdf: 2536269 bytes, checksum: a856f5027d19c2aaadf2834a69af7ff4 (MD5)
Previous issue date: 2015-06-01 / Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) / The agile methods of software development have emerged as an alternative to
traditional approaches, to spend less time on documentation and more time with solving
problems interactively and iteratively. In this context, the development approach Domain
Driven Design (DDD) is a way of developing software in which the application design
process is guided by a domain model. In conjunction with the DDD development
approach, the existence of tests during the implementation of an application is required to
ensure quality. Objective: This work aims to study the agile development approach
Domain-Driven Design (DDD) and the software test techniques Test-Driven Development
(TDD) and Behaviour-Driven Development (BDD). A case study was built to exemplify the
integration of each test technique with DDD. The case study was developed with the
support of the Apache Isis framework, from a well-defined domain model. Methodology:
Based on the literature, the concepts of the DDD development approach and of the TDD
and BDD test techniques, that provided the comparison between the techniques, and
later, the implementation to illustrate this research, were extracted. The Apache Isis
framework was used in this work because it allows develop DDD applications quickly.
During the development of the sample system of this work, the possibility of creating an
automatic generator tests and scenarios for BDD was noted. Results: A case study was
created using the concepts of DDD and tests, with TDD and BDD. Furthermore, a
prototype of tests and scenarios generator for software projects that use DDD, through
the Apache Isis framework and tests using BDD, was developed. Conclusions: The
combination of test techniques mentioned with DDD aim to boosting the development of
applications, since DDD is not associate with any test technique. Writing scenarios with
ubiquitous language is a great advantage to integrate DDD and BDD, because it allows a
clear understanding for all involved in the project. Moreover, the creation of automatic
generator speeds up the testing phase, and can detect errors that might go unnoticed or
only be found as the project evolved. / Os métodos ágeis de desenvolvimento de software surgiram como uma
alternativa às abordagens tradicionais, com o intuito de despender menos tempo com
documentação e mais com a resolução de problemas de forma interativa e iterativa.
Neste contexto, a abordagem de desenvolvimento Domain-Driven Design (DDD)
representa uma forma de desenvolver software em que o processo de design de uma
aplicação é guiado pelo modelo de domínio. Em conjunto com a abordagem de
desenvolvimento DDD, a existência de testes durante a implementação de uma
aplicação é necessária para garantir a qualidade. Objetivo: Este trabalho teve como
objetivo o estudo da abordagem ágil de desenvolvimento Domain-Driven Design (DDD) e
as técnicas de teste de software Test-Driven Development (TDD) e Behaviour-Driven
Development (BDD). Um estudo de caso foi construído para exemplificar a integração de
cada técnica de teste com o DDD. O estudo de caso foi desenvolvido por meio do
framework Apache Isis, a partir de um modelo de domínio bem definido. Metodologia:
Com base na literatura foram extraídos os conceitos da abordagem de desenvolvimento
DDD e das técnicas de testes TDD e BDD que proporcionaram a comparação entre as
técnicas e posterior implementação para exemplificar a pesquisa. O framework Apache
Isis foi utilizado neste trabalho porque permite desenvolver aplicações com DDD de
forma rápida. No decorrer do desenvolvimento do sistema exemplo deste trabalho,
notou-se a possibilidade da criação de um gerador automático de testes e cenários para
BDD. Resultados: Foi criado um estudo de caso empregando os conceitos de DDD e
testes com o TDD e com o BDD. Além disso, foi desenvolvido um protótipo de gerador
de testes e cenários para projetos de software que empregam DDD, por meio do
framework Apache Isis e testes utilizando BDD. Conclusões: A junção das técnicas de
testes citadas com o DDD visa potencializar o desenvolvimento de aplicações, uma vez
que o DDD não aborda nenhuma técnica de teste. A escrita de cenários em linguagem
ubíqua é um grande diferencial ao integrar DDD e BDD, pois permite um claro
entendimento a todos os envolvidos do projeto. Ademais, a criação do gerador
automático agiliza a fase de testes, sendo possível detectar erros que poderiam não ser
notados ou apenas serem encontrados com a evolução do projeto.
|
Page generated in 0.0654 seconds