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
“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!

Una herramienta que se puede recomendar y por cierto muy buena!!!! Es: Rational Team Concert no es una herramienta para hacer pruebas. Es una solución de gestión del ciclo de vida del software que permite colaboración(Creación de Tareas, Defectos, Historia etc.), facilita la planificación y ejecución de proyectos ágiles o formales con plantillas y herramientas de planificación, incluye plantilla para las metodologías SCRUM, RUP, etc., control de compilaciones, Dashboard, creación de informes etc., y es gratis hasta 10 desarrolladores.


En primer lugar quería felicitarte, es muy útil todo lo que posteastes, y aprovecho la oportunidad para preguntarte lo siguiente: acabo de abrir una escuela de informática, quería un software que me sirva para cargar mis alumnos, horarios, cuotas mensuales, y que eso lo pueda llevar paralelo con los gastos, en síntesis que me ayude a administrar la escuela..
Robot Framework es un framework open-source genérico de automatización de pruebas para pruebas de aceptación y desarrollo basado en pruebas de aceptación (ATDD). Tiene una sintaxis de datos de prueba tabular fácil de usar y utiliza el enfoque de prueba basado en palabras clave (keyword-driven testing). Sus capacidades de prueba pueden ampliarse mediante bibliotecas de prueba implementadas con Python o Java, y los usuarios pueden crear nuevas palabras clave de alto nivel a partir de las existentes usando la misma sintaxis que se usa para crear casos de prueba.
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 

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.
La automatización de pruebas de carga se ha vuelto una necesidad para poder evitar así arriesgar la integridad del negocio con anomalías inesperadas además existen un sin fin de herramientas de prueba de carga como agileload (http://es.agileload.com) que te ayudan a crear guiones de prueba , a diagnosticar problemas además simula de manera realista la carga .

Con estas herramientas de Selenium podemos reducir considerablemente el tiempo en la creación de las pruebas automatizadas, y estas mismas pruebas pueden ser ejecutadas como un complemento en la ejecución de una prueba funcional. Así, podemos optar por la alternativa que más nos convenga. Lo único que nos queda es usarlas, conocerlas y familiarizarnos con ellas.
×