{"id":13523,"date":"2024-06-19T13:00:44","date_gmt":"2024-06-19T19:00:44","guid":{"rendered":"https:\/\/cienciauanl.uanl.mx\/?p=13523"},"modified":"2024-11-01T09:37:26","modified_gmt":"2024-11-01T15:37:26","slug":"los-desafios-en-las-pruebas-automaticas-de-las-interfaces-graficas-de-usuario","status":"publish","type":"post","link":"https:\/\/cienciauanl.uanl.mx\/?p=13523","title":{"rendered":"Los desaf\u00edos en las pruebas autom\u00e1ticas de las interfaces gr\u00e1ficas de usuario"},"content":{"rendered":"<p><a href=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/PORTADAEJES-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-13700\" src=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/PORTADAEJES-scaled.jpg\" alt=\"\" width=\"700\" height=\"450\" srcset=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/PORTADAEJES-scaled.jpg 2560w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/PORTADAEJES-300x193.jpg 300w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/PORTADAEJES-1024x658.jpg 1024w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/PORTADAEJES-768x494.jpg 768w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/PORTADAEJES-1536x987.jpg 1536w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/PORTADAEJES-2048x1316.jpg 2048w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<div class=\"page\" title=\"Page 13\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p style=\"text-align: right;\">David Maloof-Flores* <span style=\"font-size: 0.9em;\">ORCID: 0000-0002-0404-791X<br \/>\n<\/span><span style=\"font-size: 0.9em;\">Olanda Prieto-Ordaz*\u00a0<\/span><span style=\"font-size: 0.95em;\">ORCID: 0000-0002-0023-9535<br \/>\n<\/span><span style=\"font-size: 0.9em;\">Miguel A\u0301ngel Lo\u0301pez-Santilla\u0301n*\u00a0<\/span><span style=\"font-size: 0.95em;\">ORCID: 0009-0008-2087-1168<\/span><\/p>\n<div class=\"page\" title=\"Page 13\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p style=\"text-align: right;\">CIENCIA UANL \/ AN\u0303O 27, No.127, septiembre-octubre 2024<\/p>\n<p style=\"text-align: right;\">DOI: <a href=\"https:\/\/doi.org\/10.29105\/cienciauanl27.127-3\">https:\/\/doi.org\/10.29105\/cienciauanl27.127-3<\/a><\/p>\n<\/div>\n<div class=\"page\" title=\"Page 13\">\n<div style=\"text-align: right;\"><a href=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/09\/GALERA_127_BWEB_EJES.pdf\">Descargar PDF<\/a><\/div>\n<div><\/div>\n<div class=\"section\">\n<p><span style=\"font-size: 0.95em;\">La GUI (interfaz gra\u0301fica de usuario) es una forma de software que hace uso de las capacidades visuales de la computadora al simplificar la interaccio\u0301n con las aplicaciones que usamos di\u0301a a di\u0301a (Yuan, Cohen y Memon, 2010). Lasinterfaces gra\u0301ficas ofrecen a los usuarios una amplia variedad de caminos que ayudan a interactuar con el software; a pesar de que hacen que el software sea ma\u0301s amigable y sencillo de manejar, tambie\u0301n introducen complejidades en el proceso de desarrollo. A fin de cuentas, es bien sabido que el resultado de tener una bien disen\u0303ada GUI atrae la atencio\u0301n de los usuarios en el mercado (Zheng, Hu y Ma, 2019).<\/span><\/p>\n<div class=\"section\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Por este motivo, la ejecucio\u0301n de pruebas se efectu\u0301a con el objetivo de verificar que la interfaz cumpla con las especificaciones y funcione correctamente. E\u0301stas involucran la ejecucio\u0301n de acciones y la comparacio\u0301n de los resultados obtenidos con los anticipados, mediante el uso de lo que se conoce en la ingenieri\u0301a de software como \u201ccasos de prueba\u201d. Las verificaciones pueden desarrollarse de forma manual por seres humanos o de manera automatizada. Adicionalmente, la llegada abrupta de herramientas de inteligencia artificial (AI) de generacio\u0301n de co\u0301digo automa\u0301tico ha invadido la web con la finalidad de acelerar el desarrollo de aplicaciones (Ponce, 2023). Es por tal razo\u0301n que la evaluacio\u0301n del software se ha convertido en una cuestio\u0301n de\u00a0gran relevancia.<\/p>\n<div class=\"page\" title=\"Page 13\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>La etapa de pruebas es una actividad fundamental para asegurar la calidad en el proceso de desarrollo de software. La ingenieri\u0301a del software sostiene la premisa fundamental desde sus inicios: \u201cla calidad del producto esta\u0301 estrechamente ligada a la del proceso\u201d (Humphrey, 2005). Dicha afirmacio\u0301n resalta la significativa influencia de la etapa de \u201cpruebas\u201d en la culminacio\u0301n de un software de excelencia.<\/p>\n<p><a href=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/CELULARTS.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-13701\" src=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/CELULARTS.jpg\" alt=\"\" width=\"200\" height=\"426\" srcset=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/CELULARTS.jpg 770w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/CELULARTS-141x300.jpg 141w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/CELULARTS-481x1024.jpg 481w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/CELULARTS-768x1636.jpg 768w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/CELULARTS-721x1536.jpg 721w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Durante esta fase, se crea y ejecuta un conjunto de casos de ensayo en una aplicacio\u0301n bajo observacio\u0301n. En el transcurso de e\u0301stas se emplean \u201cora\u0301culos\u201d (<em>test oracles<\/em>, por su definicio\u0301n en ingle\u0301s), que no son ma\u0301s que un me\u0301todo cuyo objetivo es comprobar si el sistema evaluado se ha comportado correctamente en una ejecucio\u0301n particular segu\u0301n lo previsto. En pocas palabras, determina si el resultado de correr un programa es acertado. En este sentido, se refiere a expectativa, aceptabilidad y precisio\u0301n\u00a0(Monperrus, 2017). Estos ora\u0301culos pueden ser automatizados o manuales; en ambos casos, se compara la salida real con una esperada que se\u00a0considera adecuada.<\/p>\n<p>La proporcio\u0301n de casos destinados a examinar las GUI en una aplicacio\u0301n dependen directamente de la cantidad de co\u0301digo asignado a la interfaz gra\u0301fica, donde vari\u0301an desde un pequen\u0303o porcentaje en aplicaciones orientadas a servicios o procesamiento de datos, hasta uno sustancial en aque\u0301llas centradas en la experiencia del usuario, como software de disen\u0303o gra\u0301fico o videojuegos. En general, la importancia de la interfaz gra\u0301fica ha aumentado con el tiempo debido a la creciente atencio\u0301n a la experiencia del usuario, abarcando todos los aspectos de la interaccio\u0301n con un producto (y por ende, su e\u0301xito). Su complejidad no puede ser subestimada (Hassenzahl, 2018) y con ello, la necesidad de obtener un funcionamiento libre de errores.<\/p>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>En este contexto, las pruebas manuales son llevadas a cabo por individuos, probadores o desarrolladores, pero presentan vulnerabilidad a errores y la posibilidad de omitir diversos escenarios. Adema\u0301s, consumen una cantidad significativa de tiempo (Retna y Retna, 2012), ya que son repetitivas y susceptibles a errores cuando son realizadas por un evaluador humano. Para abordar estos desafi\u0301os, se han propuesto soluciones en forma de automatizacio\u0301n, haciendo uso de exa\u0301menes unitarios y reproduccio\u0301n de grabaciones, las cuales han demostrado ser exitosas en la pra\u0301ctica. A esto se le llama \u201cpruebas automatizadas de GUI\u201d, que consisten en la automatizacio\u0301n de tareas que previamente se llevaban a cabo de forma manual, y que generalmente resultan ma\u0301s eficientes, precisas, confiables y rentables (Adamoli <em>et al<\/em>., 2011).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Indistintamente, en ambos escenarios es necesario contar con un conjunto de casos con directrices y metas detalladas, donde cada uno generalmente incluye una entrada, una salida, un resultado anticipado y uno real. Diversos casos son requeridos en la evaluacio\u0301n de todas las funcionalidades de la GUI.<\/p>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<h4>EL DESARROLLO DE LOS CASOS\u00a0DE PRUEBA PARA GUI<\/h4>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<p><span style=\"font-size: 0.95em;\">En la pra\u0301ctica se utilizan distintos enfoques al crear casos de prueba para las GUI, siendo la ma\u0301s popular el \u201cora\u0301culo manual\u201d, es decir, un evaluador que interactu\u0301a personalmente con la GUI, realizando eventos (acciones llevadas a cabo por el usuario) como hacer clic en un boto\u0301n o escribir algo en un campo de texto, posteriormente comprobar visualmente si la GUI actuo\u0301 de manera esperada y documentar los posibles errores. Proporcionar un ora\u0301culo de prueba preciso es el principal requisito previo si se desea lograr te\u0301cnicas y herramientas de evaluacio\u0301n de software robustas y realistas (Valueian <em>et al<\/em>., 2020).<\/span><\/p>\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Las te\u0301cnicas y herramientas ma\u0301s utilizadas desde hace de\u0301cadas en el ana\u0301lisis de una interfaz gra\u0301fica requieren se modele y segmente la GUI en componentes llamados <em>widgets<\/em>: elementos visuales ba\u0301sicos, con sus respectivas propiedades (Xie y Memon, 2007). Tambie\u0301n se necesita que los eventos de la GUI sean deterministas con el objetivo de predecir su resultado. Por lo tanto, para proporcionar un enfoque de co\u0301mo es el proceso ba\u0301sico deautomatizacio\u0301n, en este arti\u0301culo se ejemplifica una subclase particular de GUI, que se define a continuacio\u0301n.<\/p>\n<div id=\"attachment_13702\" style=\"width: 572px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/FIGURA1BYN.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-13702\" class=\"wp-image-13702\" src=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/FIGURA1BYN.jpg\" alt=\"\" width=\"562\" height=\"450\" srcset=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/FIGURA1BYN.jpg 1475w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/FIGURA1BYN-300x240.jpg 300w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/FIGURA1BYN-1024x821.jpg 1024w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/FIGURA1BYN-768x615.jpg 768w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><\/a><p id=\"caption-attachment-13702\" class=\"wp-caption-text\">Figura 1. Ejemplo de la ejecuci\u00f3n de un evento y descripci\u00f3n de los componentes de una interfaz gr\u00e1fica de usuario hecha con Tkinter en Python.<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"page\" title=\"Page 15\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Segu\u0301n el diagrama de la figura 1, se presenta una GUI jera\u0301rquica de un software que acepta como entrada eventos generados por el usuario y por el sistema, a partir de un conjunto finito de e\u0301stos, y produce una salida gra\u0301fica determinista. De igual manera, es posible clasificar la interfaz de usuario con los elementos que contiene: los <em>widgets<\/em>. Cada <em>widget<\/em> tiene un conjunto fijo de propiedades. En cualquier momento, durante la ejecucio\u0301n de la GUI, estas propiedades tienen valores discretos, cuyo conjunto constituye el estado de la GUI en un momento determinado y se modela como un conjunto de <em>widgets W<\/em> = <em>{w1, w2,&#8230;, wn}<\/em> (por ejemplo, botones, campos de texto), uno de sus respectivas propiedades <em>P = {p1, p2&#8230;, pn}\u00a0<\/em><span style=\"font-size: 0.95em;\">(color de fondo, taman\u0303o, fuente) y uno de valores asignados a e\u0301stas <em>V = {v1, v2&#8230;, vn}<\/em> (negro, cursiva, 12pt, etce\u0301tera), asociados con las de los mismos elementos. Por lo tanto, la GUI se puede describir completamente en te\u0301rminos de los <em>widgets<\/em> especi\u0301ficos que contiene actualmente y los valores de sus propiedades.<\/span><\/p>\n<div class=\"page\" title=\"Page 15\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Entonces, el estado de una GUI en un momento particular <em>t<\/em> es el conjunto <em>S<\/em> de la terna <em>{(wi, pj, vk)}<\/em>, donde <em>wi <img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAARCAYAAAACCvahAAAAAXNSR0IArs4c6QAAAHhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAC4hxAAAeBAALiHEAAB4EAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAA+gAwAEAAAAAQAAABEAAAAAJrkhuQAAAAlwSFlzAAAPIQAADyEBVx7iAAAAAoxJREFUOBFdU01rE1EUvTOTSZzSDxMMbdoSmrakiK5ER1ypoOBGioILl6LowkXFhXZjN35AXbiRotRN\/QndKSqKdqFdVCtSFETwqwvF2tZmMp2ZN8fzJtqkecmdd+e9e+aee897hjQNKIzFkZyWNCRCLAZMsQ1DhL6YOtgQ0LhyK9WEFRXIESstxWrVE8dxJAyUSJphBCrwGxpMJP8fNmEB7KJFkV8FVECPpkLEwToJRVjnpl+zj5xyCZH6FzxXpGIpFcrMkxdy6MBhyec7pVDslVw2L6XigIyMjMrKavjKMIylzbQrX9w1T+TUmTHJ9pRl\/O6k9PZ0isFybaYxLEsyToukUuZsPSE9YLEF8fy7m1fOYo97EG8\/LaESAySOmLNSSGizIITAPg2u046+u97yyo6F+ddy9Niw9PVlZYvO6PvseCwhO0RSsiYyR7pNmVefXZqeuozdO0tw2groyA0it7UL3R05bMvm0FUaxMmLo\/gM3NFZ9ajXnIndhw8ey\/4T52XqwjkptLVKGwPskA\/yCxgZ1dyNrAlt4HlBlLl3oH+7vJx9I\/n2VkmTpkn7Xxgl1q5H2wBzSTfr\/bAKFjA3M42e7hKu3riNYD1GGGhVa41a5vwbeJoAGh\/s9HXgByqrP3FvYhLl\/jJSpsCiURfkikO4NnEfXz2MN+ISH\/j1CKjA++Mnh4pSJLJ4gdKy8GxRMkrF+fgmMA\/cUBisrVBJKO7qwCXPT8DajwjSI4riRU69jWD2MOOaZrrdr0ZiO\/rwh5J1Mv8YKQl5xSJkxDKNWR7Jb41gM1biGmyr7fC2xL7Y\/Onrw1QsWLFkW0ytidHUZS6lTEt4GUQsLblJq70wNqWvXTISyZol4s5fQ6Z70OYAGXoAAAAASUVORK5CYII=\" alt=\"page15image17519904\" width=\"10.868403\" height=\"12.571053\" \/>W, pj <img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAAXNSR0IArs4c6QAAAHhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAalmAAAESQABqWYAAARJAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAA+gAwAEAAAAAQAAABAAAAAA14yPgAAAAAlwSFlzAAAPRAAAD0QBF63jCwAAAmhJREFUKBVlU0trFEEY\/Hp6X1lisrt5mMWYBGLIIQFRZNSj+EBEEMSLYvAPiBdJMBdvQVQ8GJB4E\/EsehdBwSgJkpOBQKJgUC+RjZvX7sz0TFk9y27c2MxMd3\/zVX\/dVdVK9jSD4JUWdcyveJLKZAUSilI6zgp9EZUKJWCUkbEmKLB9NIo2zM5mCYgA+PzwMX4A8LFjj10VWGFXcJrQ4rkKgXYYfff2vZw+e166OjrkYLFHOrvycqB\/UG7enpRyIHNKqVKiCez\/divrgVy5MS77B0bl8ZNpKXYXxHG0ONoRTyckmc2K1jLfhAM+Z+HPfnl45xoOnziHue8l\/OE2tzxTO0JINrhXu232Jy14t\/LWmlvZrI58XV6WMxfHpLcvL4oJ6RSpQUSKIBHnEFkgaE\/l4NPEy+cTODLSh0y+iLbuIeTaO5HLtSNXyKOn\/xCu37qL1QpmbFXbdiuHyv34YUFOXboqr8cnpSO7T1qSIibyRJy0eMqhaHFrVI3BPG+R4eOt+bzMLn2T1lx7vMWAQa1brKb1tsNBA1yTyk+54bbTe4FVV5YW5cHUozjZ8KzkKV7IJvKdTyu1WF8p7oGNqaC6hvLaKp7NTGN0aBAZ7SCZTEASSXQNDOPe0xf4WcX9JqCd0ENvEPm0zgZ12OGUgnhVGspYN6HMl57DOnC5CczYMBFlhAQbKhiFDIUwxsBwaB1q9aXav9j1\/gsmYaErUG10v0S8AJZRbdUku9amVmOHV4GazyuV+bEHrF3wT8h8mxHTTzeo2BaKa9pRgnPVYLm+gM11jU1mFesoEhAD7MSyrfij5i78B\/4LGS1XnFJHQyAAAAAASUVORK5CYII=\" alt=\"page15image17518864\" width=\"10.670262\" height=\"11.831579\" \/>P, vk <img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAAXNSR0IArs4c6QAAAHhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAalmAAAESQABqWYAAARJAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAA+gAwAEAAAAAQAAABAAAAAA14yPgAAAAAlwSFlzAAAPRAAAD0QBF63jCwAAAmhJREFUKBVlU0trFEEY\/Hp6X1lisrt5mMWYBGLIIQFRZNSj+EBEEMSLYvAPiBdJMBdvQVQ8GJB4E\/EsehdBwSgJkpOBQKJgUC+RjZvX7sz0TFk9y27c2MxMd3\/zVX\/dVdVK9jSD4JUWdcyveJLKZAUSilI6zgp9EZUKJWCUkbEmKLB9NIo2zM5mCYgA+PzwMX4A8LFjj10VWGFXcJrQ4rkKgXYYfff2vZw+e166OjrkYLFHOrvycqB\/UG7enpRyIHNKqVKiCez\/divrgVy5MS77B0bl8ZNpKXYXxHG0ONoRTyckmc2K1jLfhAM+Z+HPfnl45xoOnziHue8l\/OE2tzxTO0JINrhXu232Jy14t\/LWmlvZrI58XV6WMxfHpLcvL4oJ6RSpQUSKIBHnEFkgaE\/l4NPEy+cTODLSh0y+iLbuIeTaO5HLtSNXyKOn\/xCu37qL1QpmbFXbdiuHyv34YUFOXboqr8cnpSO7T1qSIibyRJy0eMqhaHFrVI3BPG+R4eOt+bzMLn2T1lx7vMWAQa1brKb1tsNBA1yTyk+54bbTe4FVV5YW5cHUozjZ8KzkKV7IJvKdTyu1WF8p7oGNqaC6hvLaKp7NTGN0aBAZ7SCZTEASSXQNDOPe0xf4WcX9JqCd0ENvEPm0zgZ12OGUgnhVGspYN6HMl57DOnC5CczYMBFlhAQbKhiFDIUwxsBwaB1q9aXav9j1\/gsmYaErUG10v0S8AJZRbdUku9amVmOHV4GazyuV+bEHrF3wT8h8mxHTTzeo2BaKa9pRgnPVYLm+gM11jU1mFesoEhAD7MSyrfij5i78B\/4LGS1XnFJHQyAAAAAASUVORK5CYII=\" alt=\"page15image17520320\" width=\"10.670262\" height=\"11.831579\" \/><\/em>V; de igual manera, un conjunto de eventos <em>E = {e1, e2, &#8230;, en}<\/em> que representan la funcio\u0301n que cambia de un estado a otro a la GUI, pudiendo entonces describir al conjunto de pruebas T como el de pares ordenados <em>T = {(S0, e1), (S0, e2), &#8230;, (Sn, en)}<\/em>. Es asi\u0301 que la descripcio\u0301n del estado completo contendri\u0301a informacio\u0301n sobre todas las propiedades y sus valores en cada uno de esos widgets, antes y despue\u0301s de un evento. Los casos de prueba se encargan de comparar el\u00a0<span style=\"font-size: 0.95em;\">conjunto de la terna de los elementos de cada widget, posterior a la ejecucio\u0301n de un evento, con el conjunto de resultados esperados. Este enfoque presenta ventajas: generacio\u0301n de conjuntos de pruebas que exploran la secuencia de los eventos, adema\u0301s de la capacidad de proporcionar casos viables. Sin embargo, es importante sen\u0303alar que manualmente no es posible escalarlo a aplicaciones ma\u0301s grandes debido al incremento mayu\u0301sculo de estados.<\/span><\/p>\n<div class=\"page\" title=\"Page 16\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Es aqui\u0301 donde las herramientas de inteligencia artificial (IA) y de automatizacio\u0301n permiten la comprobacio\u0301n automa\u0301tica de las GUI que presenten cantidades inmensas de eventos. E\u0301stas son llamadas \u201cPruebas de GUI automatizadas\u201d. Algunas de estas herramientas utilizan IA para simplificar y mejorarlas. Entre las caracteri\u0301sticas y capacidades comunes de e\u0301stas resaltan:<\/p>\n<ol>\n<li>Grabacio\u0301n y reproduccio\u0301n de acciones del usuario: permiten grabar las acciones del usuario en una GUI y luego reproducirlas automa\u0301ticamente, lo que facilita la creacio\u0301n ra\u0301pida de <em>scripts<\/em> de verificacio\u0301n.<\/li>\n<li>Reconocimiento de elementos de la GUI: utilizan te\u0301cnicas de reconocimiento de objetos y patrones que identifican y manipulan elementos de la interfaz gra\u0301fica: botones, campos de entrada y menu\u0301s.<\/li>\n<li>Pruebas de rendimiento: pueden evaluar el rendimiento de la GUI, detectando problemas de velocidad y capacidad de respuesta.<\/li>\n<li>Generacio\u0301n de datos de prueba: pueden generar automa\u0301ticamente datos en diferentes escenarios, lo que ayuda a probar una amplia gama de condiciones.<\/li>\n<li><span style=\"font-size: 0.95em;\">Pruebas de compatibilidad de mu\u0301ltiples plataformas: algunas herramientas permiten examinar diversas plataformas y navegadores.<\/span><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"page\" title=\"Page 16\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Por mencionar algunas herramientas populares, aunque costosas, que utilizan inteligencia artificial y te\u0301cnicas avanzadas en las pruebas automa\u0301ticas de GUI se encuentran:<\/p>\n<\/div>\n<\/div>\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>\u2022 Selenium: una de las herramientas ma\u0301s populares y ampliamente utilizadas. Emplea IA y aprendizaje automa\u0301tico para mejorar las pruebas de GUI.<\/p>\n<\/div>\n<\/div>\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>\u2022 TestComplete: ofrece deteccio\u0301n inteligente de elementos de la interfaz de usuario y la generacio\u0301n de <em>scripts<\/em> de prueba.<\/p>\n<\/div>\n<\/div>\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>\u2022 Applitools: compara y valida visualmente la apariencia de las GUI en diferentes dispositivos y resoluciones.<\/p>\n<\/div>\n<\/div>\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>\u2022 Test.ai: utiliza la IA al realizar evaluaciones de GUI en aplicaciones mo\u0301viles.<\/p>\n<\/div>\n<\/div>\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>\u2022 Mabl: emplea te\u0301cnicas de aprendizaje automa\u0301tico para crear y mantener automa\u0301ticamente casos de prueba de GUI.<\/p>\n<p><a href=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/african-american-woman-virtual-reality-glasses-smart-technologyBYN-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13707\" src=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/african-american-woman-virtual-reality-glasses-smart-technologyBYN-scaled.jpg\" alt=\"\" width=\"622\" height=\"350\" srcset=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/african-american-woman-virtual-reality-glasses-smart-technologyBYN-scaled.jpg 2560w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/african-american-woman-virtual-reality-glasses-smart-technologyBYN-300x169.jpg 300w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/african-american-woman-virtual-reality-glasses-smart-technologyBYN-1024x576.jpg 1024w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/african-american-woman-virtual-reality-glasses-smart-technologyBYN-768x432.jpg 768w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/african-american-woman-virtual-reality-glasses-smart-technologyBYN-1536x864.jpg 1536w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/african-american-woman-virtual-reality-glasses-smart-technologyBYN-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"page\" title=\"Page 16\">\n<div class=\"section\">\n<p><a href=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/TABLET-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-13708\" src=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/TABLET-scaled.jpg\" alt=\"\" width=\"300\" height=\"386\" srcset=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/TABLET-scaled.jpg 1991w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/TABLET-233x300.jpg 233w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/TABLET-796x1024.jpg 796w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/TABLET-768x988.jpg 768w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/TABLET-1195x1536.jpg 1195w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/TABLET-1593x2048.jpg 1593w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<div class=\"layoutArea\">\n<div class=\"column\">\n<h4>ACTUALIDAD DE LAS PRUEBAS AUTOMA\u0301TICAS<\/h4>\n<div class=\"page\" title=\"Page 16\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>A pesar de buscar que las comprobaciones automatizadas se conviertan en el esta\u0301ndar de la industria para verificar el funcionamiento de las GUI, todavi\u0301a es comu\u0301n que las manuales sean ejecutadas sin ningu\u0301n grado de automatizacio\u0301n. Esta preferencia sugiere la existencia de obsta\u0301culos especi\u0301ficos, observacio\u0301n respaldada en la bibliografi\u0301a (Nass <em>et al<\/em>., 2021).<\/p>\n<p>Entre los principales desafi\u0301os en la automatizacio\u0301n de pruebas GUI que enfrentan las actuales herramientas que se apoyan de la inteligencia artificial se encuentran:<\/p>\n<ul>\n<li>Elementos gra\u0301ficos que no tienen un identificador u\u0301nico en todos los lenguajes de programacio\u0301n (por ejemplo, los Text-Box, ComboBox, RadioButton, etce\u0301tera).<\/li>\n<li>Elementos gra\u0301ficos que se encuentran prefijados y disen\u0303ados visualmente diferentes en un software en especi\u0301fico.<\/li>\n<li>Aplicaciones desarrolladas en mu\u0301ltiples idiomas y sistemas operativos.<\/li>\n<li>Elementos gra\u0301ficos y controles sin el adecuado orden Z (Z-order: una ordenacio\u0301n de objetos bidimensionales superpuestos, por ejemplo, colocar elementos gra\u0301ficos que impidan visualizar un boto\u0301n).<\/li>\n<li>Problemas de sincronizacio\u0301n entre la herramienta que evalu\u0301a la GUI y la actualizacio\u0301n de la misma al ejecutar eventos.<\/li>\n<\/ul>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Estas revisiones bibliogra\u0301ficas tambie\u0301n destacan diversos beneficios, como la reduccio\u0301n del esfuerzo humano y una mayor capacidad de deteccio\u0301n de fallas. Sin embargo, sen\u0303alan enfa\u0301ticamente que la automatizacio\u0301n no puede reemplazar por completo las pruebas manuales y advierten sobre la generacio\u0301n de expectativas poco realistas.<\/p>\n<p><a href=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/representation-user-experience-interface-designBYN-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13709\" src=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/representation-user-experience-interface-designBYN-scaled.jpg\" alt=\"\" width=\"533\" height=\"400\" srcset=\"https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/representation-user-experience-interface-designBYN-scaled.jpg 2560w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/representation-user-experience-interface-designBYN-300x225.jpg 300w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/representation-user-experience-interface-designBYN-1024x768.jpg 1024w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/representation-user-experience-interface-designBYN-768x576.jpg 768w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/representation-user-experience-interface-designBYN-1536x1152.jpg 1536w, https:\/\/cienciauanl.uanl.mx\/wp-content\/uploads\/2024\/06\/representation-user-experience-interface-designBYN-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 533px) 100vw, 533px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<h4>CONCLUSIONES<\/h4>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Es escaso el nu\u0301mero de publicaciones de investigacio\u0301n pertinentes a este tema en particular, debido a la complejidad que significa evaluar todos los escenarios posibles que se pueden representar en una interfaz gra\u0301fica, y aunque son modelos deterministas, manifiestan retos importantes en implementar esquemas de automatizacio\u0301n. Abordar esta limitacio\u0301n actual de investigacio\u0301n y bibliografi\u0301a en el tema exigira\u0301 una colaboracio\u0301n estrecha entre la industria y la academia, ya que la demostracio\u0301n empi\u0301rica es\u00a0<span style=\"font-size: 0.95em;\">necesaria si se quiere obtener una comprensio\u0301n ma\u0301s profunda para conquistar eventualmente los desafi\u0301os y restricciones actuales de la automatizacio\u0301n de pruebas de GUI. A fin de cuentas, la industria de software sera\u0301 la que tendra\u0301 la u\u0301ltima palabra en decidir si los ana\u0301lisis automa\u0301ticos de la GUI representan una verdadera mejora en eficacia y tiempos de produccio\u0301n sobre las pruebas tradicionales hechas por humanos.<\/span><\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Por esta razo\u0301n resulta relevante mencionar que, aunque los beneficios de utilizar herramientas de automatizacio\u0301n de pruebas en las GUI provienen de fuentes de evidencia so\u0301lidas (como experimentos y estudios de casos respaldados en la bibliografi\u0301a), precisamente las desventajas y limitaciones se documentan con mayor frecuencia en los informes de experiencias de la industria al momento de aplicar dichas herramientas en el desarrollo de un software comercial. Esto genera un evidente sesgo en las publicaciones de las desventajas con respecto a los beneficios.<\/p>\n<p>Lo ma\u0301s importante es que persevere la idea de que a pesar de los desafi\u0301os aqui\u0301 mencionados, con el continuo avance de aplicaciones de inteligencia artificial, indudablemente se logre una mayor adopcio\u0301n de esquemas automatizados para verificar el correcto funcionamiento de las interfaces gra\u0301ficas.<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"page\" title=\"Page 13\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p style=\"text-align: right;\">* Universidad Auto\u0301noma de Chihuahua, Chihuahua, Me\u0301xico.<br \/>\nContacto: dmaloof@uach.mx, oordaz@uach.mx, mlopezs@uach.mx<\/p>\n<p>&nbsp;<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<h4>REFERENCIAS<\/h4>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Adamoli, A., Zaparanuks, D., Jovic, M., <em>et al<\/em>. (2011). Automated GUI performance testing, <em>Software Qual J<\/em>, 801-839, doi:10.1007\/s11219-011-9135-x<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Hassenzahl, M. (2018). The Thing and I: Understanding the Relationship Between User and Product. En M. Blythe y A. Monk, <em>Funology 2 From Usability to Enjoyment<\/em> (301-313). Springer. doi:10.1007\/978-3-319-68213-6_19<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Humphrey, W.S. (2005). Acquiring Quality Software, <em>CrossTalk The Journal of Defense Software Engineering<\/em>, 18, 19-23.<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Monperrus, M. (2017). Automatic Software Repair: a Bibliography, <em>ACM Computing Surveys<\/em>, 51, 1-24. ACM. doi:10.1145\/3105906<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Nass, M., Ale\u0301groth, E., y Feldt, R. (2021). Why many challenges with GUI test automation (will) remain, <em>Information and Software Technology,<\/em> 138.<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Ponce, R. (03 de agosto de 2023). <em>Best AI tools of 2023<\/em>. Techradar Pro, the Business Technology Experts, https:\/\/www.techradar.com\/best\/best-ai-tools<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Retna, I., y Retna, E. (2012). Study paper on test case generation for gui based testing, <em>International Journal of Software Engineering &amp; Applications (IJSEA)<\/em>, 3(1), 139-147.<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Valueian, M., Attar, N., Haghighi, H., <em>et al<\/em>. (2020). Constructing automated test oracle for low observable software, Scientia Iranica, <em>Transactions on Computer Science &amp; Engineering and Electrical Engineering<\/em>, 1333-1351.<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Xie, Q., y Memon, A.M. (2007). Designing and Comparing Automated Test Oracles for, <em>ACM Transactions on Software Engineering and Methodology<\/em>, 16(1).<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Yuan, X., Cohen, M.B., y Memon, A.M. (2010). GUI Interaction Testing: Incorporating Event Context, <em>IEEE Transactions on Software Engineering<\/em>, 99.<\/p>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>Zheng, S., Hu, Z., y Ma, Y. (2019). Faceoff: Assisting the manifestation design of web graphical user interface, <em>Proceedings of the Twelfth ACM International Conference on Web Search and Data Mining<\/em> (774-777), Melbourne, VIC, Australia: ACM.<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"page\" title=\"Page 17\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p style=\"text-align: right;\"><strong>Recibido: 25\/01\/2024 <\/strong><br \/>\n<strong>Aceptado: 24\/05\/2024<\/strong><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>David Maloof-Flores* ORCID: 0000-0002-0404-791X Olanda Prieto-Ordaz*\u00a0ORCID: 0000-0002-0023-9535 Miguel A\u0301ngel Lo\u0301pez-Santilla\u0301n*\u00a0ORCID: 0009-0008-2087-1168 CIENCIA UANL \/ AN\u0303O 27, No.127, septiembre-octubre 2024 DOI: https:\/\/doi.org\/10.29105\/cienciauanl27.127-3 Descargar PDF La GUI (interfaz gra\u0301fica de usuario) es una forma de software que hace uso de las capacidades visuales de la computadora al simplificar la interaccio\u0301n con las aplicaciones que usamos di\u0301a a di\u0301a (Yuan, Cohen y Memon, [&#8230;]<\/p>\n","protected":false},"author":4,"featured_media":13700,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[15],"tags":[],"class_list":["post-13523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ejes"],"_links":{"self":[{"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=\/wp\/v2\/posts\/13523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13523"}],"version-history":[{"count":7,"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=\/wp\/v2\/posts\/13523\/revisions"}],"predecessor-version":[{"id":13866,"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=\/wp\/v2\/posts\/13523\/revisions\/13866"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=\/wp\/v2\/media\/13700"}],"wp:attachment":[{"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cienciauanl.uanl.mx\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}