7 research outputs found

    Characterisation schema for selecting software testing techniques

    Full text link
    The importance of properly selecting testing techniques is widely accepted in the software engineering community. However, there are chiefly two reasons why the selections now made by software developers cannot be classed as correct. Firstly, they have limited knowledge of all the techniques now available, which means that there are a lot of techniques with which the average developer is unfamiliar. Secondly, the information now available with regard to the different existing testing techniques is mostly procedural (that is, focused on how to use the technique), whereas there is almost no pragmatic information (focused on the result of using the technique). The open problem addressed in this research is precisely how to help developers improve software testing technique selection. A testing technique characterisation schema is proposed to achieve this objective. Being instantiated for multiple techniques, the schema can be used to build a repository containing information on testing techniques. This schema systematically describes all the testing techniques, focusing mainly on pragmatic aspects of the techniques, leading to more objective selections. The proposed characterisation schema is composed of a non-flat set of attributes, grouped around the elements of the testing process to which they refer. These elements are then grouped around the different testing process stages. This logical grouping makes the schema information coherent. An empirical and iterative process was followed to arrive at this schema. An empirical process was used, because testing techniques are not founded on a solid theoretical basis. This means that the schema needs to be founded not only on testing theory, but also on what the different subjects related to software testing know about techniques. It is iterative, because a schema based on the theory now existing on testing will be created. This schema is gradually refined with the knowledge of developers, researchers and experts in the area. The completed characterisation schema was evaluated in two different ways. Firstly, the schema is verified empirically by instantiating it for multiple testing techniques. Secondly, an experiment is carried out, in which the repository created in the earlier verification is put into use to select testing techniques for different projects. Finally, the original contribution of this research is a conceptual tool that can be used by developers to systematically and objectively select the testing techniques to be used in a software project

    Design Patterns in Software Maintenance: An Experiment Replication at UPM - Experiences with the RESER'11 Joint Replication Project

    Get PDF
    Replication of software engineering experiments is crucial for dealing with validity threats to experiments in this area. Even though the empirical software engineering community is aware of the importance of replication, the replication rate is still very low. The RESER'11 Joint Replication Project aims to tackle this problem by simultaneously running a series of several replications of the same experiment. In this article, we report the results of the replication run at the Universidad Politécnica de Madrid. Our results are inconsistent with the original experiment. However, we have identified possible causes for them. We also discuss our experiences (in terms of pros and cons) during the replication

    Determining the effectiveness of three software evaluation techniques through informal aggregation

    Get PDF
    An accepted fact in software engineering is that software must undergo verification and validation process during development to ascertain and improve its quality level. But there are too many techniques than a single developer could master, yet, it is impossible to be certain that software is free of defects. So, it is crucial for developers to be able to choose from available evaluation techniques, the one most suitable and likely to yield optimum quality results for different products. Though, some knowledge is available on the strengths and weaknesses of the available software quality assurance techniques but not much is known yet on the relationship between different techniques and contextual behavior of the techniques. Objective: This research investigates the effectiveness of two testing techniques ? equivalence class partitioning and decision coverage and one review technique ? code review by abstraction, in terms of their fault detection capability. This will be used to strengthen the practical knowledge available on these techniques

    Comparing the effectiveness of equivalence partitioning, branch testing and code reading by stepwise abstraction applied by subjects

    Get PDF
    Some verification and validation techniques have been evaluated both theoretically and empirically. Most empirical studies have been conducted without subjects, passing over any effect testers have when they apply the techniques. We have run an experiment with students to evaluate the effectiveness of three verification and validation techniques (equivalence partitioning, branch testing and code reading by stepwise abstraction). We have studied how well able the techniques are to reveal defects in three programs. We have replicated the experiment eight times at different sites. Our results show that equivalence partitioning and branch testing are equally effective and better than code reading by stepwise abstraction. The effectiveness of code reading by stepwise abstraction varies significantly from program to program. Finally, we have identified project contextual variables that should be considered when applying any verification and validation technique or to choose one particular technique

    Estudio de la Efectividad de Tres Técnicas de Evaluación de Código: Resultados de una Serie de Experimentos.

    Full text link
    Hasta la fecha se han evaluado distintas técnicas de verificación y validación teórica y empíricamente. La mayoría de las evaluaciones empíricas se han llevado a cabo sin sujetos, abstrayendo el efecto del sujeto sobre la técnica a la hora de aplicarla. Hemos evaluado mediante un experimento con sujetos la efectividad de tres técnicas de verificación y validación de código: partición en clases de equivalencia, cobertura de decisión y lectura de código mediante abstracciones sucesivas, estudiando la capacidad de las técnicas para la detección de fallos en tres programas distintos. Hemos replicado el experimento ocho veces en cuatro entornos distintos. Los resultados arrojan diferencias entre las técnicas y señalan variables contextuales del proyecto software que deberían considerarse cuando se quiera elegir o aplicar una técnica de verificación y validación

    Esquema de caracterización para la selección de técnicas de pruebas de software

    Full text link
    La importancia de una adecuada selección de técnicas de pruebas es comúnmente aceptada por la comunidad de Ingenieros de Software. Sin embargo, hay dos motivos fundamentalmente por los que los desarrolladores de software realizan hoy en día selecciones que no pueden ser calificadas como acertadas: (1) Su conocimiento sobre la cantidad de técnicas disponibles actualmente es limitado, lo que quiere decir que hay una gran cantidad de técnicas que es desconocida para el desarrollador medio; y (2) la información de la que se dispone actualmente, en relación a las distintas técnicas de pruebas existentes, es de tipo procedimental en su mayoría (es decir, centrada en cómo usar la técnica), siendo la información de tipo pragmática (centrada en los resultados del uso de la técnica) prácticamente inexistente. El problema abierto que se aborda en este trabajo es precisamente cómo ayudar a los desarrolladores a mejorar la selección de técnicas de pruebas del software. Para satisfacer este objetivo, se propone un esquema de caracterización de técnicas de pruebas. El esquema, al ser instanciado para múltiples técnicas, permite la elaboración de un repositorio con información sobre las técnicas de pruebas. Dicho esquema describe sistemáticamente todas las técnicas de pruebas, centrándose fundamentalmente en aspectos pragmáticos de las técnicas, lo que permite selecciones más objetivas. El esquema de caracterización propuesto, consta de un conjunto no plano de atributos, agrupados en torno a los elementos del proceso de pruebas al que se refieren. Estos elementos a su vez, se agrupan en torno a las distintas etapas del proceso de pruebas. Mediante esta agrupación lógica se dota a la información del esquema de coherencia. La forma en la que se ha obtenido este esquema ha sido siguiendo un proceso empírico e iterativo. Empírico, porque las técnicas de pruebas carecen hoy en día de una base teórica sólida. Esto hace necesario fundamentar el esquema no sólo en la teoría sobre pruebas, sino también en el conocimiento que tienen sobre las mismas los distintos sujetos relacionados con las pruebas de software. Iterativo, porque se va a crear un esquema basado en la teoría existente actualmente sobre pruebas, que se refina progresivamente con el conocimiento de desarrolladores, investigadores y expertos en el área. Una vez construido el esquema de caracterización, se ha evaluado de dos modos distintos: mediante una contrastación empírica en la que el esquema se instancia para múltiples técnicas de pruebas, y mediante una contrastación experimental en la que el repositorio creado en la contrastación anterior se pone en uso para realizar la selección de técnicas de pruebas en distintos proyectos. En definitiva, este trabajo aporta, por primera vez, una herramienta conceptual que permite a los desarrolladores la selección de las técnicas de pruebas a usar en un proyecto software de modo sistemático y objetivo
    corecore