Spelling suggestions: "subject:"testdriven development"" "subject:"descriven development""
21 |
Modeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their EffectsBuffardi, Kevin John 23 July 2014 (has links)
Effective software testing identifies potential bugs and helps correct them, producing more reliable and maintainable software. As software development processes have evolved, incremental testing techniques have grown in popularity, particularly with introduction of test-driven development (TDD). However, many programmers struggle to adopt TDD's "test a little, code a little" approach and conventional computer science classrooms neglect evaluating software development as a process. In response, we explore influences on students' testing behaviors, effects of incremental testing strategies, and describe approaches to help computer science students adopt good testing practices.
First, to understand students' perspectives and adoption of testing strategies, we investigated their attitudes toward different aspects of TDD. In addition, we observed trends in when and how thoroughly students tested their code and how these choices impacted the quality of their assignments. However, with insight into why students struggle to adopt incremental testing, we identified a need to assess their behaviors during the software development process as a departure from traditional product-oriented evaluation.
By building upon an existing automated grading system, we developed an adaptive feedback system to provide customized incentives to reinforce incremental testing behaviors while students solved programming assignments. We investigated how students react to concrete testing goals and hint reward mechanisms and found approaches for identifying testing behaviors and influencing short-term behavioral change. Moreover, we discovered how students incorporate automated feedback systems into their software development strategies.
Finally, we compared testing strategies students exhibited through analyzing five years and thousands of snapshots of students' code during development. Even when accounting for factors such as procrastinating on assignments, we found that testing early and consistently maintaining testing throughout development helps produce better quality code and tests. By applying our findings of student software development behaviors to effective testing strategies and teaching techniques, we developed a framework for adaptively scaffolding feedback to empower students to critically reflect over their code and adopt incremental testing approaches. / Ph. D.
|
22 |
Web-CAT: A Web-based Center for Automated TestingShah, Anuj Ramesh 20 June 2003 (has links)
The fundamentals of software testing and related activities are often elusive in undergraduate curricula. A direct consequence of the lack of software testing efforts during education is the huge losses suffered by the software industry when applications are not sufficiently tested. Software practitioners have exhorted faculty members and institutions to teach more software testing in universities.
The purpose of this research is to provide answers to the needs of such practitioners and introduce software-testing activities throughout the curriculum. The most important goal is to introduce software-testing education without requiring a significant amount of extra effort on behalf of faculty members or teaching assistants.
The approach taken comprises the development of the Web-based Center for Automated Testing (Web-CAT) and the introduction of test-driven development (TDD) in courses. Web-CAT serves as a learning environment for software testing tasks and helps automatically assess student assignments.
A comparison of student programs developed using Web-CAT with historical records indicated a significant decrease in the number of bugs in submitted programs. Undergraduate students also received exposure to the principles of software testing and were able to write test cases that were on an average better than those generated by an automated test case generator designed specifically for the assignment. / Master of Science
|
23 |
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.
|
24 |
Utvärdering av Mock Objekt Bibliotek : ur ett interaktionsbaserat perspektivBillskog, David January 2007 (has links)
<p>Att skriva enhetstester är en viktig del i nya populära systemutvecklingsmetoder som extreme programming. Med testdriven utveckling skriver man testerna innan den källkod som skall testas. Ett vanligt problem med dessa tester är att de blir beroende av delar i systemet som inte är intressant för själva testen. Mock objekt är en teknik som gör det enkelt att isolera tester från allt som inte är relaterat till det som skall testas.</p><p>Det finns två sätt att se på mock objekt. Den traditionella synen är att mock objekt skall användas som ett verktyg vid isolering av externa system. Den alternativa synen är att mock objekt är ett designverktyg som kan driva fram en bättre design i systemet. I denna uppsats utvärderas ett antal mock objekt bibliotek ur detta nyare perspektiv. Resultatet visar att det finns åtskilliga skillnader mellan biblioteken.</p>
|
25 |
Utvärdering av Mock Objekt Bibliotek : ur ett interaktionsbaserat perspektivBillskog, David January 2007 (has links)
Att skriva enhetstester är en viktig del i nya populära systemutvecklingsmetoder som extreme programming. Med testdriven utveckling skriver man testerna innan den källkod som skall testas. Ett vanligt problem med dessa tester är att de blir beroende av delar i systemet som inte är intressant för själva testen. Mock objekt är en teknik som gör det enkelt att isolera tester från allt som inte är relaterat till det som skall testas. Det finns två sätt att se på mock objekt. Den traditionella synen är att mock objekt skall användas som ett verktyg vid isolering av externa system. Den alternativa synen är att mock objekt är ett designverktyg som kan driva fram en bättre design i systemet. I denna uppsats utvärderas ett antal mock objekt bibliotek ur detta nyare perspektiv. Resultatet visar att det finns åtskilliga skillnader mellan biblioteken.
|
26 |
[en] A FRAMEWORK FOR TEST AUTOMATION WITH CONFIGURABLE SPECIFICATION LANGUAGES / [pt] UM FRAMEWORK PARA A AUTOMAÇÃO DE TESTES COM LINGUAGENS DE ESPECIFICAÇÃO CONFIGURÁVEISBRUNO LOUREIRO REZENDE 19 January 2010 (has links)
[pt] Nesse trabalho foi criado um framework para a realização de testes
automatizados de acordo com as práticas de desenvolvimento dirigido por testes,
o qual pode ser estendido com novas linguagens de especificação, utilizando
idéias de desenvolvimento dirigido por comportamentos. Espera-se que, ao
utilizar esse framework, equipes de projetos de software possam especificar testes
em uma linguagem mais adequada para o domínio de sua aplicação, através do
suporte de uma ferramenta que permita tal nível de personalização. O framework
foi instanciado com a criação de uma linguagem baseada em máquinas de estado,
utilizada para a aplicação da ferramenta em um projeto real. O objetivo deste
trabalho é avaliar os impactos da aplicação dessas técnicas, através da experiência
de utilização da ferramenta no projeto. A motivação para esse trabalho surgiu da
experiência no desenvolvimento de sistemas de controle, usualmente reativos e
com requisitos de tempo real, nos quais muitas vezes a descrição de seus
comportamentos é feita através de máquinas de estado, que possivelmente é a
melhor linguagem para este domínio. / [en] In this work we create a framework for automated testing according to test
driven development practices that can be extended to support new specification
languages, following ideas from behavior driven development. We expect that, by
using this framework, software development teams will be able to specify tests in
more proper languages for the application domain, with the support of a tool that
allows such level of customization. The framework was instantiated with the
creation of a language based on state machines, and used on a real-life project.
The goal of this work is that software project teams become able to specify tests in
the most fitting language for their application domain, through the support of a
tool that makes possible such level of customization. The motivation for this work
comes from the experience with the development of control systems, usually with
real-time requirements, which often have their behaviors described by state
machines, possibly the best language for this domain.
|
27 |
Desenvolvimento de software guiado por testes de aceitação usando EasyAccept. / Development of software guided by acceptance tests using EasyAccept.ABATH NETO, Osório Lopes. 23 August 2018 (has links)
Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2018-08-23T15:26:25Z
No. of bitstreams: 1
OSÓRIO LOPES ABATH NETO - DISSERTAÇÃO PPGCC 2007..pdf: 1322223 bytes, checksum: 3e204692131c02935d262bb71e470eaa (MD5) / Made available in DSpace on 2018-08-23T15:26:25Z (GMT). No. of bitstreams: 1
OSÓRIO LOPES ABATH NETO - DISSERTAÇÃO PPGCC 2007..pdf: 1322223 bytes, checksum: 3e204692131c02935d262bb71e470eaa (MD5)
Previous issue date: 2007-08-30 / O Desenvolvimento de Software Guiado por Testes de Aceitação – Acceptance Test Driven Development (ATDD) – é uma metodologia de desenvolvimento de software ágil que apresenta vários benefícios, que incluem confiança no software em desenvolvimento,
sincronização automática entre análise e código, redução de problemas de comunicação no projeto e foco dos desenvolvedores nos requisitos do cliente. É particularmente adequada para projetos terceirizados e para ensinar desenvolvimento de software a estudantes de Ciência da Computação. Entretanto, como é uma metodologia nova, ainda falta para ela uma cobertura adequada na literatura. Além disso, a área de padrões para ATDD ainda precisa ser iniciada. Esta dissertação envolve a realização de um estudo investigativo sobre melhores práticas e padrões para ATDD, a definição de como aplicar a metodologia sob o ponto de vista de um processo de desenvolvimento de software, e um resumo da experiência adquirida com ensino de desenvolvimento de software utilizando ATDD. Como resultado da realização destas atividades, foi escrito um texto introdutório sobre ATDD, que esperamos sirva não só para que novatos aproveitem o máximo da metodologia, mas também para divulgar seus benefícios. Os exemplos do texto usam EasyAccept, uma ferramenta de testes de aceitação com scripts, como meio de exposição da metodologia. / Acceptance Test Driven Development (ATDD) is an emerging agile methodology to develop software which has a number of advantages, including confidence in the software being developed, automated synchronization between analysis and code, reduction of project communication problems and developer focus on client requirements. It is particularly suited to outsource projects and to teach software development to Computer Science students. As it is new, however, there is still a lack of proper coverage of this methodology in the literature. Furthermore, the area of patterns for ATDD still needs to be started. This dissertation involves performing an investigative study on best practices and patterns for ATDD, defining the application of the methodology with a software development process point of view and summarizing gathered experience with ATDD as a means of teaching software development. The result of these activities was an introductory text on ATDD, which we hope will serve not only to help newcomers yield more from the methodology, but also to divulge its benefits. The examples in the text use EasyAccept, a scripted acceptance testing tool, as a means of exposing the methodology.
|
28 |
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.
|
29 |
Writing Testable Software : An empirical study of code quality in systems written with Test Driven DevelopmentLavesson, Eric January 2012 (has links)
Software development can be thought of in two fairly distinct ways: on one hand, it is a scientific area in which scientific method is applied in terms of quantifiable measurements and empirical studies. On the other hand (as with many other principles) it is based on craftsmanship in which the best practices emerge with experience.TDD is one such practice, emerging from the community of software developers as a means of developing higher quality software. This thesis aimed to study whether or not TDD actually leads to an increase in quality. This was conducted by developing a client application for a company in southern Sweden called TN Datakonsult AB. The application receives and visualizes signals from industrial processes. An API with the intent to capture this data over HTTP was developed in C#. This API was written by using TDD, while the client that consumed the API was written without tests as a control group. The code metrics that were calculated were cyclomatic complexity, lines of code, depth of inheritance, code coverage and class coupling. The results shows that many of the benefits associated with TDD are derived from the ability to track that the application under development is behaving as expected at any given time. This is a quality aspect which is particularly difficult to measure, even though the code metrics pre-sented will assist the developer to keep track of the state of the application.
|
30 |
Abnahmetestgetriebene Entwicklung von ereignisbasierten AnwendungenWeiß, Johannes 16 June 2017 (has links) (PDF)
Die Menge an verfügbaren, elektronisch auswertbaren Informationen nimmt stetig zu. Mobiltelefone mit unterschiedlichsten Sensoren, soziale Netzwerke und das Internet der Dinge sind Beispiele für Erzeuger von potentiell interessanten und verwertbaren Daten. Das Themenfeld der ereignisverarbeitenden Systeme (Event Processing – EP) bietet Technologien und Werkzeuge an, um eintreffende Daten, sog. Ereignisse, in nahezu Echtzeit zu verarbeiten. So können z.B. Muster in den Ereignissen erkannt werden. Durch die Erstellung von abgeleiteten Ereignissen können somit weitere Systemen auf diese Mustererkennung reagieren. So können u.a. zeitbasierte Funktionalitäten realisiert werden, wie z.B. das Überwachen von Aktienkursen in einem definierten Zeitraum. Im Gegensatz zu einem nachrichtenorientierten Kommunikationssystem können in EP-Anwendungen fachlich relevante Anwendungsfunktionalitäten umgesetzt werden. Die Validierung dieser Anwendungen durch Fachexperten gewinnt dadurch eine gesteigerte Bedeutung. Die abnahmetestgetriebene Entwicklung (Acceptance Test Driven Development – ATDD) ist eine Methode der agilen Softwareentwicklung und fokussiert sich auf die Integration von Fachexperten in die Erstellung und Auswertung von automatisierbaren Testfällen. Neben dem Potential der Automatisierung von manuellen Regressionstests liegt in der Methode die Möglichkeit den Wissenstransfer zwischen Entwicklern und Fachexperten zu verbessern.
Die vorliegende Arbeit leistet mehrere Beiträge zur Untersuchung von ATDD im Bereich der EP-Anwendungsentwicklung. Zunächst wurden Anforderungen für eine entsprechende Werkzeugunterstützung auf Basis der Eigenschaften von EP-Anwendungen ermittelt und der Produktqualitätsklassifikationen funktionalen Eignung, Modularität und Benutzbarkeit zugeordnet. Im Rahmen einer systematischen Literaturrecherche wurden Ansätze aus der Literatur sowie die Werkzeugunterstützung der vorhandenen Produktlösungen analysiert. Dabei wurde deutlich, dass die verwandten Lösungen die identifizierten Anforderungen nicht ausreichend erfüllen. Dadurch motiviert wurde eine Testbeschreibungssprache sowie ein ausführendes, verteiltes Testsystem konzipiert und formal beschrieben. Die Testbeschreibungssprache bietet Kommandos zur produktunabhängigen Spezifikation von Testfällen an. Mit Hilfe des Testsystems ist es möglich, diese Testfälle gegen EP-Produktlösungen auszuführen.
Anhand von ausgewählten Fallstudien und einer prototypischen Umsetzung des Lösungsansatzes wurde eine Validierung vorgenommen. Dabei wird ersichtlich, dass der vorgestellte Lösungsansatz den aktuellen Stand der Technik hinsichtlich funktionaler Eignung und Modularität in diesem Anwendungsbereich übersteigt. Die Benutzbarkeit wurde anhand von zwei Benutzerstudien tiefergehend untersucht. Dabei sind erste Erkenntnisse über die praktische Nutzung der Testbeschreibungssprache sowie zukünftige Fragestellungen aufgedeckt worden. In der ersten Studie wurde das Verstehen von Testfällen untersucht und dabei die automatisierbare Testbeschreibungssprache mit einer klassischen Testbeschreibungsvorlage verglichen. Hinsichtlich der Bearbeitungsdauer wurde ein signifikanter Effekt zugunsten der automatisierbaren Sprache ermittelt. Die zweite Studie betrachtet das Spezifizieren von Testfällen. Auch hier wurden Vorteile hinsichtlich der Bearbeitungsdauer aufgedeckt.
|
Page generated in 0.0897 seconds