Pedro tiene una lavandería y cuenta con solo dos clientes. Siempre ha lavado la ropa a mano, él cree que de esa forma la ropa no se maltrata, y a los clientes les gusta la forma en la que trata la ropa.
Sus clientes han hablado de la lavandería con sus amigos y los han convencido de llevar su ropa con él, por lo tanto, se ha incrementado la demanda de su servicio de lavandería. Debido a esto, y después de una extensa búsqueda, decide comprar una lavadora.
Él está feliz con su nueva lavadora, pues además de que no le maltrata la ropa puede atender la demanda de sus clientes que va en aumento; pero se da cuenta que hay un problema. Cada cuatro días de trabajo la lavadora se descompone y esto le genera problemas. Empieza a investigar y se da cuenta que pasó por alto un detalle al seleccionar la lavadora, el fabricante no realizó las pruebas de funcionamiento de su producto.
El caso de Pedro no es aislado, todos hemos tenido uno o más problemas con los productos que usamos. Como resultado de estas fallas los fabricantes ven mermadas sus ganancias, pues tienen que responder a sus clientes resolviendo la falla o remplazando el producto.
En el área de informática, hablando específicamente de los softwares, no es diferente. De ahí la importancia de las pruebas de software antes de liberarlo al cliente final. Aunque las fallas no se logren erradicar, se pueden minimizar.
En este tema aprenderás sobre la importancia de la ejecución de pruebas de software, por qué hay que realizarlas y qué se descubre al ejecutar dichas pruebas.
Introducción a los fallos de software
El diario de origen español El País (2012) publicó una nota titulada ¿Es posible construir un software que no falle?, un título por de más interesante que aborda el tema de los bugs en la construcción de software, donde el autor concluye que sí es posible, pero que las empresas no están interesadas en detectar este problema por falta de personal capacitado en el área y por falta de presupuesto disponible para esta actividad por ser costosa.
Sin embargo, como se verá más adelante, la respuesta debería ser no, y esto se debe a lo compleja que es la construcción del software, a los requisitos iniciales de usuario y los entornos funcionales para los que fueron diseñados dichos softwares.
Hay un campo de trabajo emergente con herramientas especializadas en la detección de fallos en la ejecución de software que se dedica a hallar los fallos en distintas fases del ciclo de vida de construcción de software. Claro, aun cuando el objetivo principal es erradicar dichos fallos esto no se logra, pero sí se puede reducir a tal grado que pareciera que fueron eliminados por completo.
Dada la importancia en los altos costos monetarios que representan para las empresas que estos fallos aparezcan en producción, se han creado normas, estándares y certificaciones como lo es CONOCER EC1252, que ayudan a tener buenas prácticas al momento de ejecutar pruebas de software.
Fallo, error o bug
En el contexto del desarrollo de software el fallo o error se conoce como bug. Esta palabra, cuya traducción del inglés significa bicho, ya se usaba desde el siglo XIX y en esa época hacía referencia a la introducción de un bicho en cualquier máquina estropeando su funcionamiento. Hoy en día se usa el término bug para indicar que ha aparecido un error de programación, ya sea atribuible al programador, al cambio en los requisitos de usuario o al cambio del entorno donde se está ejecutando el programa o software.
Los errores pueden aparecer en varias etapas del ciclo de vida del software:
La importancia de descubrir los fallos en el software en las diferentes etapas del ciclo de vida se debe principalmente a las pérdidas monetarias que estos les generan a las compañías dedicadas al desarrollo de software una vez que están siendo usadas por clientes finales.
Para descubrir estos fallos en las diferentes etapas del ciclo de vida del software es necesario ejecutar pruebas. Estas deben cumplir con ciertos requisitos de acuerdo con el contexto de su ejecución y su principal objetivo es la validación y verificación de una pieza de software.
Pruebas de ejecución de software
Las pruebas de ejecución de software tienen como principal objetivo descubrir la mayoría de los errores en un software antes de pasarlo a la etapa de producción, o antes de la implantación de algún proceso interno de una empresa.
Aunque no hay un consenso sobre los tipos y niveles de pruebas de software, existen estándares y entidades que ayudan en relación con esta clasificación. Algunos de ellos son el International Software Testing Qualifications Board (ISTQB) que define unos tipos de pruebas, la Norma ISO/IEC 25010, la cual describe ocho características de calidad y las pruebas a realizar para estas mismas, y el estándar CONOCER EC1252 (2020), tiene como objetivo servir de referencia para la evaluación y certificación de las personas que se dedican a realizar dichas pruebas.
Por tanto, se pueden clasificar de forma general las pruebas de ejecución de software de la siguiente forma:
Pruebas funcionales. Estas pruebas van encaminadas a determinar que el software hace lo que solicita el cliente final. Los insumos necesarios para esta prueba son las historias de usuario que incluyen restricciones y los acuerdos de aceptación.
Pruebas no funcionales. Estas pruebas se realizan al entorno donde se va a ejecutar el software, por ejemplo, el rendimiento del servidor, la velocidad de la red, algún cortafuego si es una aplicación web y si estará expuesto a internet, etc. Los insumos necesarios para esta prueba son los diagramas de despliegue, manuales de procesos y todo aquello que implique relación externa con el software.
Pruebas de integración. Actualmente el software se construye como si fueran piezas de rompecabezas y en algún momento todas las piezas se integran como si fuesen una unidad. Estas pruebas van encaminadas a determinar el correcto ensamble entre los distintos componentes.
Pruebas de caja blanca. Este tipo de pruebas podrán o no realizarse dependiendo de si se cuenta con el código del software, porque aquí se evalúa el código y la estructura interna del programa.
Estándar de competencia CONOCER EC1252 Ejecución de pruebas de software
De acuerdo con el Gobierno de México (2017), el Consejo Nacional de Normalización y Certificación de Competencias Laborales (CONOCER) es una entidad paraestatal sectorizada en la Secretaría de Educación Pública que reconoce los conocimientos, destrezas y actitudes de las personas en el trabajo o a lo largo de su vida, con certificaciones nacionales y oficiales.
CONOCER cuenta con un estándar de competencia que certifica el proceso de pruebas funcionales de ejecución de software bajo el código EC1252, que tiene como objetivo servir de referencia para la evaluación y certificación de las personas que se dedican a realizar las ejecuciones de pruebas de diversos softwares.
De acuerdo con el estándar, se realizan los siguientes pasos para la ejecución de pruebas de software.
Las pruebas de ejecución de software son una etapa importante en el ciclo de vida del software. Dependiendo del contexto, se debe tener en mente ciertos requisitos, procesos y hallazgos. El principal objetivo de estas actividades es descubrir algún fallo, error o bug en el software.
El International Software Testing Qualifications Board (ISTQB) y la Norma ISO/IEC 25010 clasifican los tipos de pruebas de acuerdo con el contexto de su realización, mientras que el estándar EC1252 del Consejo Nacional de Normalización y Certificación de Competencias Laborales (CONOCER) certifica el proceso de ejecución de pruebas de diversos softwares.
Asegúrate de:
Los siguientes enlaces son externos a la Universidad Tecmilenio, al acceder a ellos considera que debes apegarte a sus términos y condiciones.
"Tecmilenio no guarda relación alguna con las marcas mencionadas como ejemplo. Las marcas son propiedad de sus titulares conforme a la legislación aplicable, estas se utilizan con fines académicos y didácticos, por lo que no existen fines de lucro, relación publicitaria o de patrocinio".