Spelling suggestions: "subject:"test deriven devevelopment (TDD)"" "subject:"test deriven agentdevelopment (TDD)""
1 |
Test Driven Development Of Embedded SystemsIspir, Mustafa 01 December 2004 (has links) (PDF)
In this thesis, the Test Driven Development method (TDD) is studied for use in developing embedded software. The required framework is written for the development environment Rhapsody.
Integration of TDD into a classical development cycle, without necessitating a transition to agile methodologies of software development and required unit test framework to apply TDD to an object oriented embedded software development project with a specific development environment and specific project conditions are done in this thesis. A software tool for unit testing is developed specifically for this purpose, both to support the proposed approach and to illustrate its application.
The results show that RhapUnit supplies the required testing functionality for developing embedded software in Rhapsody with TDD. Also, development of RhapUnit is a successful example of the application of TDD.
|
2 |
Investigating the Application of TDD Practice in Large-Scale IndustriesDANTULURI, PAVAN KUMAR VARMA, NETHI, RAMAKRISHNA January 2018 (has links)
Context: Developer’s within software companies work chosen choice of software development process. Choice of a particular Software Development Process impacts the work environment, end-product and might also have financial risks due to delay in delivering in the final software product. Objectives: we are investigating if the TDD could impact/applicable in large-scale industries. To achieve that we first identify the strengths and challenges while using TDD in large-scale industries. Identify what modifications can enhance the impact of TDD in large-Scale industries. Methods: Systematic Literature Review (SLR) has been used to investigate the application of TDD in large-scale industries. Using the info from SLR we conducted an online survey for validating the results obtained from SLR. As a last step we have conducted semi structured interviews to gather information from developers across industries practicing and practiced TDD. The data from the qualitative and quantitative methods is triangulated by identifying the strengths, challenges and modifications in applying TDD to large-scale industries. Results: The findings from our SLR, results validated from Survey and responses from interview participants show that TDD have both strengths, Challenges and modifications. Conclusions: Some challenges encountered when using TDD in large-scale industries are Negative test cases, linking test case modules of several developers, Communication, Overall idea about project, lack of TDD knowledge for developers practicing TDD, also lack of automation tools supporting the development of unit test-cases.
|
3 |
Improving WebIDE Through Delightful Design and GamificationHilton, Michael 01 March 2013 (has links) (PDF)
WebIDE is a web-based online learning environment. WebIDE has been used
successfully to teach CS0 and CS1 students Java and C concepts and software
engineering best practices, specically Test Driven Development. Previous Web-
IDE development has concentrated on developing functionality. The main goal
of this eort is to improve two non-functional aspects of WebIDE. The rst is to
design a more delightful user interface. The second is to add a scoring mecha-
nism that encourages students to develop best practices. The scoring mechanism
rewards students who answer the question correctly on the rst attempt, dis-
couraging them from spamming the answer button. Our objective is to motivate
the students to think before answering. The innovations are evaluated through
a semi-controlled experiment that was conducted during the Fall quarter of 2012
at Cal Poly.
|
4 |
Posouzení řízení projektů v konkrétní společnosti a doporučení vhodných metodik. / Assessment of project management within a particular organization and recommendation of appropriate methodologiesPešková, Barbora January 2011 (has links)
Currently published statistics focused on the area of software projects are very disturbing. It is alarming that, according to research company Standish Group only 32% of IT projects end successfully. The percentage of cancelled projects, 24%, is even more disturbing. The applied methodology should contribute to the increase success of the software engineering projects. Statistics show that the methodology applied in the work sphere, is currently used by more than 50% of firms. This work shows the development of specific software in a small IT company, which currently is not supported by any methodology of IS / ICT. The primary objective of this work is the evaluation of the methodology best suited to the needs of business presented. The first chapter of the theoretical part deals with the issues of software engineering and is focused mainly on the area of IT projects success rates and related critical factors of software engineering. The second chapter is then devoted to the history of software engineering and describes the important milestones leading to the development of the most well-known life cycle models and methodologies. The main part of the theoretical block is devoted to methodologies of IS / ICT. This passage is particularly concentrating on the meaning of methodologies in the management of development projects. It also focuses on comparing agile and rigorous methodologies and deals with the assessment of appropriate methodologies for the development of IS / ICT in small businesses. The first part of the practical unit focuses on the introduction of the presented company. The following chapters are devoted to analyzing the current state of software engineering of the client, leading to the detection of the major problems of current development. The analysis is followed by chapter, which is devoted to the presentation of five agile methodologies which were selected on the basis of criteria based on client's specific requirements and needs. The final part is devoted to the evaluation of methodologies based on meeting the given criteria and according to the level of support solutions to the problems analyzed. Based on the resulting findings the client is recommended specific methodology and the appropriate procedure outlined in the implementation of the chosen methodology.
|
5 |
Model-Driven Development of Distributed Systems in UmpleZakariapour, Amid January 2018 (has links)
Model-driven software development can help tackle complexity when developing large software systems. Model-driven development tools facilitate this. Such tools support multiple features and languages; some are multi-platform and support multi-language code generation from models. Umple is a full-featured open source language and modelling tool that we used as a basis for this thesis.
Distribution concerns have become a critical part of modern software systems. In this thesis, we present how we extended Umple to support the development of model-driven synchronous or asynchronous distributed systems. Our contributions provide simple syntax, model analysis capabilities, and programming APIs, which allow users to change the configuration of systems both at development and deployment stages. We also demonstrate how a system can be modeled without distribution concerns and easily be transformed to a distributed system through our approach.
The contributions of this thesis are: a) Creating a mechanism to distribute objects in Umple; b) Developing new semantics for modelling of distributed objects and providing supporting syntax for this in Umple; c) Investigating different patterns and technologies to implement code generation for distributed systems; d) Implementation, testing, and comparison of the distributed feature in Umple for executable Java code; and e) implementing a mechanism to dynamically modify the distribution plan at runtime.
|
6 |
Rehearsal: Um arcabouço para teste automatizado de coreografias de serviços web / Rehearsal: A framework for automated testing of web service choreographiesBesson, 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.
|
7 |
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.
|
8 |
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.
|
9 |
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.
|
10 |
Queued and Pooled Semantics for State Machines in the Umple Model-Oriented Programming LanguageAlghamdi, Aliaa January 2015 (has links)
This thesis describes extensions to state machines in the Umple model-oriented programming language to offer queued state machines (QSM), pooled state machines (PSM) and handing of the arrival of unexpected events. These features allow for modeling the behavior of a system or protocol in a more accurate way in Umple because they enable detecting and fixing common design errors such as unspecified receptions. In addition, they simplify the communication between communicating state machines by allowing for asynchronous calls of events and passing of messages between state machines. Also, a pooled state machine (PSM) has been developed to provide a different policy of handling events that avoid unspecified receptions. This mechanism has similar semantics as a queued state machine, but it differs in the way of detecting unspecified receptions because it helps handling these errors. Another mechanism has been designed to use the keyword ‘unspecified’ in whatever state of a state machine the user wants to detect these errors. In this thesis, the test-driven development (TDD) process has been followed to first modify the Umple syntax to add ‘queued,’ ‘pooled,’ and ‘unspecified’ keywords to Umple state machine’s grammar; and second, to make a change to the Umple semantics in order to implement these extensions in Umple. Then, additional modifications have been made to allow for Java code generation from those types of state machines. Finally, more test cases have been written to ensure that these models are syntactically and semantically correct. In order to show the usefulness and usability of these new features, an example is shown as a case study that is modeled using the queued state machine (QSM) besides other small tests cases.
|
Page generated in 0.0643 seconds