5 research outputs found

    Test-Driven Development : Beneficios y desafíos para el desarrollo sofware

    Get PDF
    Este trabajo presenta la introducción y utilización de la práctica de desarrollo de software conocida como Test-Driven Development (TDD) en proyectos de software, expone además que TDD no es solo una metodología de pruebas, sino además una metodología de diseño de software. Está basado en un proyecto de investigación perteneciente a la Universidad Tecnológica Nacional - Facultad Regional Córdoba, con el objetivo de estudiar y enmarcar este tipo de metodologías en la industria, mostrando tanto las particularidades de la misma, como los proyectos en los cuales se aplica, y las ventajas y dificultades que pueden surgir de su adopción. Se explica en el presente trabajo los beneficios y desafíos que se encontraron durante la implementación de TDD en los equipos de software y se resaltan los beneficios relacionados con la calidad del código, de las aplicaciones, la productividad y la comunicación. En contrapartida se evidenciaron desafíos en relación a la experiencia previa de los desarrolladores, ya que TDD resulta más simple de implementar en equipos con experiencia media a alta, en la bibliografía consultada se halló que esto puede ser mitigado implementando mentorías o programación extrema.Sociedad Argentina de Informática e Investigación Operativa (SADIO

    Revisión sistemática de la calidad del software en prácticas ágiles

    Get PDF
    El desarrollo de software ágil representa un alejamiento importante de los enfoques tradicionales basados en una detallada planificación. Una pregunta fundamental para la mayoría de las organizaciones es saber cuáles prácticas ágiles ayudan, en menor o mayor grado, a mejorar la calidad del producto software. En este trabajo se muestra el resultado de una revisión sistemática de la literatura que intenta presentar los resultados de estudios empíricos relativos a la evaluación de la calidad en prácticas ágiles publicadas hasta el año 2014. Los estudios encontrados se analizaron siguiendo los requerimientos de calidad definidos en estándares como el ISO/IEC 25010, se catalogaron en cinco grupos: programación en pares, desarrollos guiados por pruebas, extreme programming, scrum y otras prácticas ágiles; finalmente los hallazgos se compararon e interpretaron. Los resultados de la mayoría de los estudios sugieren que las prácticas ágiles pueden ayudar a mejorar la calidad del producto si son aplicadas correctamente. Los hallazgos significativos de este estudio pueden ser usados como directrices para los interesados en sus propios escenarios.Tesi

    Enhancing unit testing to improve maintainability of the software

    Get PDF
    Many companies are using software that have been developed many years ago. These legacy programs are important to their users and often their development is still ongoing. New features are developed and old ones adapted to suit the current needs of the users. Legacy programs often have quality problems, which makes it increasingly difficult to maintain them. But because of their size, numerous features, and business rules that are documented only in the code, it is difficult to replace them. Therefore, it is imperative to improve their quality safely without introducing defects to the current features. Quality can be enhanced by unit testing and refactoring, but in legacy projects writing unit tests and refactoring is usually error prone and difficult due to the characteristics of legacy software. Taking quality into account when developing new and legacy software is important to ensure the software can be developed further and used in the future. High quality code is maintainable even when it has been developed a long time. First in this thesis, legacy software problems in quality, refactoring and unit testing were researched. Then, solutions to avoid the problems and increase the quality of software and especially legacy software mainly by safe refactoring and unit testing were searched from literature and research publications. Quality control and metrics were also included in the thesis to supplement the quality enhancement process. In this thesis, it was found that safe refactoring, unit test quality, code and test quality control, and developer training need to be considered to improve software quality. Refactoring should be done in small steps while writing tests to ensure the current functionality does not change. Unit test quality, especially, test isolation, readability, and test focus need to be considered while writing tests. The quality of the tests need to be monitored to maintain a proper quality level. It is also important to support the developers for them to improve and maintain their unit testing and refactoring skills.Monessa yrityksessä on käytössä ohjelmistoja, joiden kehitys on aloitettu useita vuosia sitten. Nämä legacy-ohjelmistot ovat käyttäjilleen tärkeitä ja usein niiden kehitys jatkuu koko ajan. Uusia ominaisuuksia lisätään ja vanhoja muokataan täyttämään käyttäjien tarpeita. Legacy-ohjelmistot sisältävät usein laatuongelmia, jonka takia niiden ylläpitäminen ja kehittäminen vaikeutuu koko ajan. Niitä ei voida kuitenkaan helposti korvata kokonsa, lukuisten ominaisuuksiensa ja vain koodiin dokumentoidun tietonsa takia. Tämän takia niiden laatua pitäisi saada parannettua turvallisesti ilman, että virheitä ilmestyy toimiviin ominaisuuksiin. Yksikkötestauksen ja refaktoroinnilla voidaan parantaa ohjelmiston laatua, mutta niiden käyttönottaminen ja käyttäminen legacy-ohjelmistossa voi olla riskialtista ja vaikeaa legacy-ohjelmiston ominaisuuksien takia. Laadun huomioonottaminen uuden ja legacy-ohjelmistoa kehittäessä on tärkeää, jotta ohjelmistoa pystytään kehittämään edelleen ja käyttämään myös tulevaisuudessa. Korkealaatuinen koodi on melko ylläpidettävää myös, kun sitä on kehitetty pidemmän aikaa. Aluksi tässä työssä selvitettiin, mitä ongelmia kuuluu legacy-ohjelmiston yksikkötestaukseen ja refaktorointiin. Sen jälkeen etsittiin ratkaisuja, kuinka välttää näitä ongelmia ja kuinka parantaa ohjelmien erityisesti legacy-ohjelmistojen laatua turvallisella refaktoroinnilla ja yksikkötestauksella. Tapoja etsittiin kirjallisuudesta ja tutkimusjulkaisuista. Laadun valvonta ja metriikat otettiin täydentämään laadun parannusprosessia Työn aikana saatiin selville, että ohjelmiston laadun parantamisessa pitää ensisijaisesti huomioda testien laatu, turvalliset refaktorointitavat, koodin ja testien laadunvalvonta ja kehittäjien osaamisen kehittäminen. Refaktorointi tulee tehdä pienissä askeleissa kurinalaisesti ja testien avustamana. Yksikkötestien laadussa tulee erityisesti ottaa huomioon eristyneisyys, luettavuus ja kohdennus. Koodin ja testien laatua tulee valvoa, että se pysyy yllä. Kehittäjiä täytyy myös tukea, jotta heidän yksikkötestaus- ja refaktorointitaitonsa kasvaisivat ja pysyisivät yllä

    Quality of Testing in Test Driven Development

    No full text
    Abstract-Test-driven development is an essential part of eXtreme Programming approach with the preference of being followed in other Agile methods as well. For several years, researchers are performing empirical investigations to evaluate quality improvements in the resulting code when test-driven development is being used. However, very little had been reported into investigating the quality of the testing performed in conjunction with test-driven development. In this paper we present results from an experiment specifically designed to evaluate the quality of test cases created by developers who used the test-first and the traditional test-last approaches. On an average, the quality of testing in test-driven development was almost the same as the quality of testing using test-last approach. However, detailed analysis of test cases, created by test-driven development group, revealed that 29% of test cases were "negative" test cases (based on non-specified requirements) but contributing as much as 65% to the overall tests quality score of test-first developers. We are currently investigating the possibility of extending testdriven development to facilitate non-specified requirements to a higher extent and thus minimise the impact of a potentially inherent effect of positive test bias
    corecore