Y nos acaban de liberar presupuesto para implementar una herramienta en primera instancia para automatizar pruebas (muy requerido en mis labores por la gran cantidad de data que manejamos) y por otro lado me gustaría poder incorporarle gestión de pruebas y bugs para implementar una solución más robusta, nuestro entorno es 100% web en .net y hacia allá debe apuntar la solución…vi que en una de tus sugerencias diste como alternativa Microsoft Test Manager pero no se si es la mejor por sobre las pagas que puedes encontrar en el mercado.

Herramientas de Evaluación para Automatizar Pruebas de Sistemas Orientados a Objetos Leticia Dávila-Nicanor1, Ulises Juárez-Martínez2, Alejandro Romero Herrera1 1Maestría en Ciencias de la Computación Centro Universitario UAEM Valle de México Blvd. Universitario s/n Predio San Javier, Atizapán de Zaragoza, México 2Instituto Tecnológico de Orizaba – División de Estudios de Posgrado e Investigación Oriente 9 No. 852, Col. Emiliano Zapata, Orizaba, Veracruz, México, C. P. 94320 alex.romher@gmail.com, ldavilan@uaemex.mx, ujuarez@ito-depi.edu.mx Área de Participación: Ingeniería de Software Resumen La calidad de software se ha convertido en un tema de gran importancia y la base de un gran número de investigaciones. Para obtener mejores niveles de calidad, se han utilizado modelos matemáticos e instrumentos de evaluación. Sin embargo el costo de la evaluación de un sistema es muy alto, esto es debido, a que las pruebas que se realizan a un sistema de software, normalmente son del orden de miles. El objetivo de evaluar un sistema es encontrar la mayor cantidad de fallos posibles optimizando los recursos que se tienen asignados al proyecto. A pesar de muchos esfuerzos, en la actualidad los paradigmas de programación como el orientado a objetos (POO) y el orientado a aspectos (POA), tienen características en donde las técnicas clásicas de pruebas no son suficientes. En este trabajo se propone un novedoso esquema de evaluación para sistemas orientados a objetos, en donde se combina la planeación de las pruebas, apoyada con técnicas de programación orientada a aspectos. Este enfoque mejora la eficiencia de la técnica de pruebas de caja negra para lenguajes como Java. Nuestra herramienta de evaluación se enfoca en medir los niveles de confiabilidad mediante la emulación de un ambiente controlado con evaluadores virtuales, lo que permite reducir los costos y mejorar la eficiencia en el proceso de evaluación. Abstract Quality software has become an issue with great relevance and it has been the basis of many researches. To obtain best quality levels it has been used different math models and assessment tools. However, the cost to evaluate any system is high, due to the test that have been implemented, it must be run thousands of times. Aim of evaluate a software system is to debug most errors so optimize resources allocate to the project of software. In spite of many efforts, currently the programming paradigms like object-oriented programming (OOP) and aspect-oriented programming (AOP), have characteristics where the testing classic techniques are not enough. In this paper we propose a novel evaluation scheme for object-oriented systems, where planning of tests and techniques supported with aspect-oriented programming are combined. This approach improves the efficiency of the technique of black box testing for programming languages like Java. Our assessment tool focuses to measure the levels of reliability by emulating of a controlled environment with virtual evaluators, thereby reducing costs and improvement the efficiency of process of evaluating. Palabras clave: Confiabilidad, pruebas, calidad, programación orientada a objetos. Introducción Durante el proceso de desarrollo de software, la etapa de localización y corrección de fallos, es decir, la fase de pruebas, puede llegar a ocupar desde un 40% hasta 60% de los recursos totales asignados al proyecto de software (Sommerville, 2007). En un contexto ideal, se espera que un sistema desarrollado de una forma adecuada, presente la menor cantidad de fallos posibles. Sin embargo y a pesar de muchos esfuerzos, los
En este último aspecto debemos decir que TestComplete ofrece las pruebas dirigidas por palabras clave (en inglés “keyword-driven testing”). En las pruebas basadas en palabras clave, cada palabra clave corresponde a una acción de prueba individual, como un clic del ratón, la selección de un elemento del menú, pulsaciones de teclas, abrir o cerrar una ventana u otras acciones. Esto es lo que inicialmente, y poco a poco, deberemos configurar, para luego crear una prueba de palabras clave, la cual es una secuencia de operaciones, en formato de palabras clave, que simula las acciones del usuario en la aplicación probada. Básicamente, para realizar cualquier acción de prueba, los evaluadores simplemente arrastran y sueltan la palabra clave que corresponde a la operación deseada o simplemente pueden registrar sus acciones y la prueba dirigida por palabra clave se construye para ellos. Estas palabras clave las podremos reutilizar infinitas veces para prevenir el modelo “no te repitas tú mismo“. Asimismo, ofrece flexibilidad cuando cambia la aplicación a probar y para los nuevos usuarios beta que lleguen a trabajar les será más intuitivo el mantener las pruebas creadas, adquirir experiencia y crear nuevas pruebas dirigidas por palabras clave.
It is advisable (although not mandatory) that Zahorí have an open ecosystem of development and execution tools, which allows the integration with test management systems, continuous integration tools, and specialized software repositories for the management of automation software code. Its modular design is also compatible with an artifact repository, requiring no interpretation / compilation time of the automation code.
Herramientas de evaluación para sistemas orientados a objetos. JUnit XUnit es una de las herramientas más usadas para realizar pruebas unitarias automatizadas sobre software. Es una de las primeras herramientas de evaluación con la que la localización y detección de fallos es mucho más precisa. Ésta cuenta con una extensión llamada JUnit, creada por Kent Beck y Erich Gamma (Wahid & Almalaise, 2011). Esta herramienta se enfoca en realizar pruebas sobre el código en lenguaje Java. Sus principales ventajas son el uso simple y la automatización de las pruebas. Herramientas como Evosuite la utilizan como complemento para la generación de sus pruebas. JUnit es un framework de evaluación y su capacidad está en relación de la experiencia del evaluador que la utiliza. Herramienta LCT (Lime ConolicTester) LCT (al., 2011) utiliza un enfoque de pruebas concolic, es decir una combinación entre ejecución concreta y simbólica. Este enfoque se utiliza para estimar los diferentes caminos que tendrá el programa durante el tiempo de ejecución. La arquitectura del LCT se basa en tres componentes principales: el instrumentador el cual, examina el código para tener un conjunto de valores de entrada, el ejecutor de pruebas en el cual se hace la ejecución del programa con los valores ya preestablecidos, finalmente el selector de pruebas se encarga de construir un árbol de ejecución simbólica basado en la información recolectada por los ejecutores de pruebas y selecciona en el árbol la ejecución simbólica siguiente. Este es uno de los primeros frameworks de evaluación que existen, teniendo buenos resultados en su aplicación. Una de sus principales desventajas es que el costo computacional es muy alto y sólo se enfoca en la revisión del código sin tomar en cuenta la funcionalidad de sistema. PET y jPET. PET (Albert E. a.-Z., 2010) es una herramienta que utiliza archivos bytecode de Java para generar criterios de cobertura de evaluación, este enfoque se complementa que se complementa con técnicas heurísticas para determinar la efectividad de la ejecución del programa, los parámetros de cobertura son: sentencias, caminos y loop-K (ciclo de ejecución). jPET (Albert E. a.-M.-Z., 2011), es una extensión de PET y su función es proporcionarle al evaluador un ambiente grafico para la creación de casos de prueba. jPET tiene un visor de su comportamiento en cada caso y agrega un método de analizador de precondiciones escritos en JML, esta funcionalidad no existe en PET. Una de sus principales desventajas es que la cobertura de los casos de pruebas se limita al diseño del sistema, y nuevamente la funcionalidad queda ignorada. Herramienta EvoSuite. Una de las mejores herramientas es EvoSuite (Fraser, 2011), debido a que tiene un buen proceso de localización de fallos. Su funcionamiento se basa en producir series de pruebas que permiten alcanzar una alta cobertura de código utilizando solo el bytecode. Para este proceso se implementan varias técnicas como son la búsqueda hibrida, la ejecución simbólica dinámica y la trasformación del alcance de prueba. EvoSuite tiene dos objetivos principales: la cobertura total del conjunto de pruebas, utiliza un enfoque de búsqueda evolutiva que muta conjuntos de pruebas completas respecto a un criterio de completitud de cobertura. Otro objetivo importante es que la generación de aserciones basadas en mutación, utiliza pruebas basadas en mutación para producir un conjunto reducido de aserciones que maximiza el número de defectos introducidos en una clase que está en relación con los casos de prueba. Es sin duda una de las mejores herramientas de evaluación, sin embargo su costo computacional es muy alto para cualquier entorno de ejecución real. Esta herramienta genera millones de casos de prueba, lo cual implica un desgaste muy alto en tiempo y esfuerzo. De esta forma retornamos el problema de origen: costos altos y pocos recursos. Arquitectura propuesta En el presente trabajo se propone una arquitectura para una herramienta de evaluación de sistemas orientados a objetos. La evaluación de sistemas de software es un proceso costoso, pero en la actualidad a ese costo también hay que incluir que las técnicas tradicionales de evaluación no son suficientes, los nuevos paradigmas de programación hacen difícil la planeación y ejecución de pruebas. Nuestra propuesta se basa en la planeación de pruebas y en la ejecución de casos de prueba mediante el paradigma orientado a aspectos. El diseño de la arquitectura propuesta es independiente del código fuente, ya que se puede tomar como base el bytecode. Esto es debido a que en muchos sistemas, las aplicaciones no contienen archivos fuente, debido que
En Webimprints, estamos ayudando a las empresas a mejorar la eficiencia, reducir la posibilidad de error humano, acelerar el proceso de entrega de los nuevos servicios y permitir un rápido retorno de la inversión con soluciones de IT Procesos Automatización(ITPA). Como hoy la información es más compleja y variada. Las empresas están manejando estos retos en una forma inteligente a través de los soluciones de ITPA, también conocida como, Run Book Automatización (RBA) u Orquestación.
Hola Javier, ante todo muchas gracias por tu información, es de gran utilidad. Me gustaría que me recomendases algún programa gratuito que me permita gestionar mi negocio, resulta que tenemos 2 restaurantes y una nave que nos sirve de almacén, en este caso necesitaría un programa para controlar lo que compro a los proveedores y a que precio y también registrar cuantos productos van a cada restaurante, a parte de saber cuantos quedan en almacén en ese momento. Espero que me puedas aconsejar alguno ya que ando bastante perdido. Muchas gracias y un saludo.
sistemas que se desarrollan en la actualidad siguen presentando fallos en su ejecución, dichos fallos tienen costos significativamente altos. El propósito general de evaluar sistemas es localizar la mayor cantidad de fallos posibles para corregirlos. De acuerdo al estándar IEEE 1633-2008 (Norman F. Schneidewind, 2008), un fallo es una condición accidental que hace que una unidad funcional falle al ejecutar su función requerida. La funcionalidad del sistema queda establecida desde la etapa de análisis y especificación de requerimientos del proceso de desarrollo de software. La importancia de un buen proceso de evaluación se debe a que si no se realizan las pruebas de forma pertinente y adecuada, es imposible asegurar que un producto de software cumple con la funcionalidad de acuerdo a las especificaciones establecidas en relación con los requerimientos del sistema. Sin embargo el número de pruebas que se realizan para localizar y corregir fallos presenta una tendencia exponencial (Jelinski, 1972). Durante la etapa de pruebas, se tienen dos enfoques que son de gran importancia para lograr identificar los fallos existentes en un sistema, estos son la Verificación y Validación. Durante la Verificación se determina si el sistema o una parte de él operan de una manera satisfactoria. Bajo el enfoque de Validación se determina si un sistema o parte de él satisface los requerimientos establecidos por el cliente. Así esta fase del proceso de desarrollo es una forma de medir y mejorar la confiabilidad de software. Este artículo está organizado de la siguiente forma, en la sección 2 se presenta el marco teórico en donde el concepto de confiabilidad de software es abordado. En la sección 3 se describen algunas herramientas de evaluación de sistemas orientados a objetos. En la sección 4 se presenta la propuesta del presente trabajo. Finalmente en la sección 4 se exponen algunas conclusiones y el trabajo a futuro. Marco teórico La confiabilidad de software se define como la probabilidad que tiene un sistema de operar libre de fallos durante un tiempo determinado en un ambiente específico (Musa, 2004). Esta es un área de gran importancia en el proceso de desarrollo de software. En la actualidad la confiabilidad es un atributo de calidad que se exige en el desarrollo de cualquier aplicación de software. Cuando las aplicaciones de software carecen de confiabilidad se tienen consecuencias económicas, políticas y sociales. Para tener niveles adecuados de confiabilidad es necesario evaluar al sistema en cuestión, localizar y corregir la mayor cantidad de fallos antes de que el producto final sea liberado. Pruebas de software La fase de pruebas es una tarea que consume muchos recursos. Para ejecutar esta fase en la práctica las organizaciones que desarrollan software asignan un grupo de evaluadores físicos, los cuales realizan este proceso de forma manual en un lapso de varios meses e incluso años. Este enfoque consume mucho tiempo y conlleva altos costos. Para lograr una cobertura adecuada en la evaluación del sistema en cuestión, es necesario: seleccionar los datos de prueba, las variables del entorno de evaluación, determinar el número de pruebas y el tiempo asignado para este proceso. En la ejecución de la cobertura de evaluación, algunos autores desarrollan modelos de predecibilidad apoyados de métricas de software (Basili, 1996). Para optimizar los recursos que son empleados en la ejecución de miles o millones de pruebas es adecuado utilizar instrumentos de evaluación (Ragab, 2010). Se han realizado algunas propuestas para evaluar sistemas en Internet, entre estas propuestas esta (Davila-Nicanor, 2005), en donde se desarrolló un herramienta la cual automatiza la ejecución de las pruebas, reduciendo el tiempo proyectado para la ejecución de 5000 pruebas funcionales de 4 años a tan solo 6 horas. En la evaluación dinámica de un sistema de software, muchos autores se han enfocado principalmente en 2 tipos de pruebas: las pruebas unitarias y las pruebas de integración. Una cantidad importante de trabajos se han enfocado a pruebas unitarias. Mientras que en pruebas integrales existe una menor incidencia de trabajos. Es importante resaltar que para este último enfoque el contexto de operación es determinante, tal es el caso del lenguaje Java, en el cual las clausulas más importantes se resuelven a tiempo de ejecución, un ejemplo de ello son aspectos como el polimorfismo y la herencia. Pruebas Unitarias Durante la fase de pruebas, el proceso de evaluación tiene dos aspectos importantes, el primero está orientado al desarrollo de pruebas unitarias o modulares. Estas pruebas se basan en comprobar unidades individuales de código y determinar si estas cumplen con los requerimientos establecidos. Cuando hablamos de unidades nos referimos a secciones del código que pueden probarse de forma independiente. En un sistema orientado a
De conformidad con la Ley 34/2002 de Servicios de la Sociedad de la Información y con la normativa aplicable en materia de Protección de Datos, le informamos de que sus datos serán tratados por PANEL SISTEMAS INFORMÁTICOS, S.L. con la finalidad de enviar comunicaciones comerciales/newsletters que sean de su interés, por cualquier medio electrónico o no, basándonos en su consentimiento previo obtenido a través de este sitio web www.panel.es.
En Globe testing el objetivo de la automatización de pruebas no es suprimir todo el testing manual, ni a los testers manuales, lo que automatizamos son chequeos, comprobaciones que los testers manuales ya han detectado como son; ciertas pruebas de regresión, smoke test etc. Según este enfoque, durante la evolución de un sistema, un caso de prueba comienza siendo manual, para luego ser automatizado, así los testers manuales pueden dedicarse a buscar otros bugs más complejos o testear nuevas funcionalidades.
Cada vez las aplicaciones se vuelven más complejas, se le van añadiendo o modificando procesos y si a esto se le suma que el tiempo de entrega de dichas modificaciones disminuye, la inseguridad que produce la calidad final del software se incrementa. Esto ocurre porque muchas veces disminuye la calidad de la parte estable del producto y aumentan las incidencias detectadas.
Insistiendo en el tema de la conversión, asegura que, en el caso de los ecommerce, Doofinder “ayuda a aumentar las ventas entre un 15% y un 20%” dado que ha ido desarrollándose hasta convertirse en una herramienta de marketing. Otra de sus funcionalidades más potentes es “sin duda, su panel de estadísticas, donde el propietario del negocio o el gestor de esa web puede comprobar ratios de clicks en los productos mostrados , y de conversión en base a las sesiones de búsqueda”. Doofinder ofrece 30 días gratuitos de prueba, se instala en 5 minutos sin necesidad de programar, es compatible con todas las plataformas de comercio electrónico y de gestión de contenidos.
El servicio de automatización de pruebas tiene como objetivo reducir el tiempo de ejecución de pruebas repetitivas y/o de regresión por parte del personal de pruebas. Esto es posible mediante la utilización de herramientas, estrategias y robots con la capacidad de ejecutar pruebas a muy altas velocidades. Nuestro servicio ofrece los siguiente beneficios:
• La solución única. A algunos de nosotros nos gusta pensar que nuestra función es la más importante en la compañía. Sin embargo, tenemos que observar nuestro trabajo como una pieza más en el ecosistema de la empresa. Esto nos facilita analizar cómo nuestra labor complementa y asiste a otras áreas. Somos más valiosos como parte integral de la empresa que como un elemento aislado de la misma. 

ubot

×