Uno de los hechos más conocidos sobre los defectos del software es que cuanto más tarden en ser detectados, más caro saldrá corregirlos. Aunque la investigación puede variar en cuanto a la proporción exacta de su impacto en los costos, la regla general es 1:10:100. Es decir, si arreglar un defecto cuesta una unidad (hora, dólar, etc.) en fase de requerimientos y diseño, costará 10 unidades en la fase de prueba (sistema/aceptación) y más de 100 veces en producción. Estos costos pueden ser atribuidos a la pérdida de ingresos y clientes, fraude, malas relaciones públicas y demandas, entre otras cosas.
“Micro Focus”®, una empresa fundada en 1976 por Brian Reynolds en el Reino Unido, lanzó en 1998 esta herramienta que aún utiliza tecnología “noventera”: VBScripting. Es software privativo que se ejecuta en “Microsoft Windows”® (GNU/Linux había sido lanzado hace apenas 4 años y aún le faltaba mucho camino por recorrer), pero no subestimemos a esta empresa por ello, al contrario, se ha modernizado de acuerdo al paso del tiempo. En ese mismo año, “Micro Focus”® adquiere Intersolv®, en 2009 adquiere la legendaria Borland® y en 2014 adquiere “Atachmate Group”®, quienes a su vez eran propietarios de Novell®, NetIQ®, y SUSE®. ¡A menos que hayan vivido en una caverna, por lo menos una de esas empresas deben conocer! Para la guinda del pastel, en 2017 se fusionó con “HP Enterprise”®, división que atiende sólo necesidades de software para empresas. ¡Todo un gigante y con muchas libras esterlinas en su haber!
Merece la pena añadir a estas herramientas otras que nos ayuden a organizar mejor el correo, como Unroll.Me, para olvidarte del correo basura. “Ahora Google ha lanzado la competencia a Mailbox, que se llama Inbox. Son fantásticas para una gestión eficiente del email personal. Unrol.Me es, sencillamente, buenísima. No es un gestor de correo como las otras, sirve para ver a qué estás suscrito, darte de baja fácilmente de las que no te interesen y agrupar las otras en un mismo email”, dice Emilio Rodríguez.
Para mostrar los procesos que se están llevando a cabo en la ejecución de la prueba en tiempo real (para el caso de ADB Input) se hace uso de WebSockets a través de la librería Socket.io cada vez que sucede un cambio en el servidor, es informado al cliente, al mismo tiempo se está almacenando dicha salida en la base de datos, para la generación del log de eventos (figura 16)
Por otro lado, otra herramienta que cada vez cobra mayor importancia dentro de un ecommerce es el buscador interno. “La importancia de un buscador reside en que es una de las herramientas más directamente vinculadas a la conversión, es decir, a la venta”, afirma Pepe Romero, responsable de comunicación de Doofinder . “Cualquier persona que entra en un, blog, intranet o comercio online, lo primero que hace es ir a la caja de búsqueda. En el caso de los blog, intranet o webs corporativas, Doofinder ayuda a encontrar fácilmente el contenido, mejorando así la experiencia del lector o empleado a la hora de encontrar lo que busca”.
En este siglo XXI, los equipos pronto comenzaron a sobrepasar las capacidades de uso de sus propietarios y la potencia de cálculo nos permitió usarlos más allá del uso común y corriente. Una de esas tareas es la ejecución de herramientas para pruebas, orientadas hacia el campo que nos incumbe aquí: la monitorización. Las herramientas para pruebas se utilizan, por ejemplo, en la monitorización de Caja Abierta y Cerrada, y en el artículo sobre la optimización de rendimiento web os nombramos algunas de ellas (“Selenio, TestingWhiz y TestCompleto”). Por supuesto, Pandora FMS y la flexibilidad que le caracteriza combina todo ello en la Monitorización UX PWR. Os invitamos a leer dichas publicaciones y regresar con nosotros a este artículo para profundizar en las herramientas para pruebas.
Algunas pruebas de software tales como las pruebas de regresión intensivas de bajo nivel pueden ser laboriosas y consumir mucho tiempo para su ejecución si se realizan manualmente. Adicionalmente, una aproximación manual puede no ser efectiva para encontrar ciertos tipos de defectos, mientras que las pruebas automatizadas ofrecen una alternativa que lo permite. Una vez que una prueba ha sido automatizada, ésta puede ejecutarse repetitiva y rápidamente en particular con productos de software que tienen ciclos de mantenimiento largo, ya que incluso cambios relativamente menores en la vida de una aplicación pueden inducir fallos en funcionalidades que anteriormente operaban de manera correcta. Existen dos aproximaciones a las pruebas automatizadas:
Una de las herramientas para pruebas de bases de datos que funcionen con páginas web, escrito completamente en lenguaje Java y orientado directamente a los programadores. Si necesitamos probar la carga masiva de datos y realizar pruebas de esfuerzo a los servidores, debemos utilizar JMeter con un software de monitorización como Pandora FMS (no duden ustedes en contactarnos). Apache JMeter no es un navegador web (no ejecuta el JavaScript del código HTML, por ejemplo) sino que actúa a nivel de protocolo HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, entre otros), FTP, SMTP(S), POP3(S) e IMAP(S). También ofrece opciones de registro de resultados en un simple archivo de texto, ya que las funciones de monitorización le fueron eliminadas desde la versión 3.2.
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
Entornos a certificar: para valorar este punto, tambien se debe tener en cuenta el anterior. Es posible que las pruebas a realizar en una aplicación sea necesario ejecutarlas sobre diferentes entornos de despliegue (distintos navegadores, servidores de aplicaciones, versiones de software). En este caso aunque el numero de pruebas sea reducido (y pueda pensarse que no es optimo automatizarlas), se debe repetir varias veces su ejecución por lo que puede compensar su automatización.
En este siglo XXI, los equipos pronto comenzaron a sobrepasar las capacidades de uso de sus propietarios y la potencia de cálculo nos permitió usarlos más allá del uso común y corriente. Una de esas tareas es la ejecución de herramientas para pruebas, orientadas hacia el campo que nos incumbe aquí: la monitorización. Las herramientas para pruebas se utilizan, por ejemplo, en la monitorización de Caja Abierta y Cerrada, y en el artículo sobre la optimización de rendimiento web os nombramos algunas de ellas (“Selenio, TestingWhiz y TestCompleto”). Por supuesto, Pandora FMS y la flexibilidad que le caracteriza combina todo ello en la Monitorización UX PWR. Os invitamos a leer dichas publicaciones y regresar con nosotros a este artículo para profundizar en las herramientas para pruebas.
×