UIAutomator es un marco para pruebas de interfaz de usuario funcional para aplicaciones de Android. Permite a los probadores probar las aplicaciones de Android creando múltiples casos de prueba que pueden ejecutarse en varios dispositivos con diferentes resoluciones. UIAutomator también puede utilizarse para probar aplicaciones preinstaladas, como Ajustes del teléfono, así como aplicaciones de terceros.
JMeter es, en palabras de la wikipedia, un proyecto de Apache que puede ser utilizado como una herramienta de prueba de carga para analizar y medir el desempeño de una variedad de servicios, con énfasis en aplicaciones web. En nuestras propias palabras diremos que JMeter es probablemente la herramienta más utilizada para realizar pruebas de rendimiento y stress sobre aplicaciones web, aunque también soporta otros protocolos como:

“Sin olvidarnos de herramientas para analítica y medición de apps. Las de medición, como Appfigures, te ofrecen información del número de descargas, ventas, ranking de tu app, valoraciones, etc. Las de analítica, como Appanie https://www.appannie.com/en/ , te indican quién hace qué dentro de tu aplicación. Igual que Amplitude. Son algo así como el Google Analytics para aplicaciones. Otra alternativa es Mixpanel, que vale para analíticas de webs y apps. Ésta te da información extra que no te ofrece Google Analytics en web (quién hace exactamente el qué)”, explica Emilio Rodríguez.

Con el advenimiento de la automatización del desarrollo de software, se hizo patente que necesitaríamos más que un simple usuario beta para lograr alcanzar las normas internacionales “de madurez”. Necesitamos un usuario beta programador, es decir, una persona que tenga la capacidad de “hablar” diversos lenguajes de programación como base y que luego escoja las herramientas de prueba más adecuadas en cada caso, a fin de automatizar las pruebas de software para mantenerse al día con el desarrollo continuo de software.


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.
inspector de código para crear los casos de prueba necesarios. Algunas propuestas utilizan los archivos fuente de Java y otras se basan en diagramas UML para conocer la arquitectura del sistema. Nuestra propuesta se basa en retomar la parte de planeación y ejecución de pruebas que marca la teoría clásica, apoyada con técnicas de programación novedosas como la POA para mejorar la ejecución de cada caso de prueba. En este caso la combinación de la evaluación del sistema en reposo y en tiempo de ejecución robustece el proceso de evaluación para lenguajes como Java y nos permite planear y ejecutar los casos de prueba de una forma efectiva. De acuerdo a los resultados que hemos obtenido con este enfoque en otro tipo de aplicaciones (Davila-Nicanor, 2005), los costos se reduce en al menos el 50%. Este enfoque permite obtener sistemas productivos más confiables y eficientes. Trabajo a futuro El principal objetivo de nuestro trabajo a futuro es implementar el esquema propuesto para la herramienta de evaluación de sistemas orientados a objetos. Para evaluar la certeza de esta propuesta, serán utilizados algunos casos de estudio que tiene disponibles en su base de datos la Nasa (Rathore, 2012). El objetivo de esta base de casos, es que los instrumentos de evaluación que se proponen puedan contrastar sus resultados con los reportados en esta organización. Otro objetivo importante es que el costo computacional deberá ser bajo en la ejecución de la herramienta. En este caso los algoritmos implementados deben ser eficientes y confiables. Finalmente la técnica que elegimos POA en la ejecución de los casos de prueba, representa un gran reto, porque de acuerdo al estudio realizado en este reporte, pocas herramienta la utilizan como parte central de su proceso de evaluación. En este caso se utilizan en su mayoría técnicas de algoritmos evolutivos, lo cual genera costos muy altos de ejecución. Referencias al., K. e. (2011). LCT: an open source concolic testing tool for Java programs. In In: Proceedings of the 6th Workshop on Bytecode Semantics, Verification, Analysis and Transformation (pp. pp. 75-80). Albert, E. a.-M.-Z. (2011). jPET: An Automatic Test-Case Generator for Java. In Proceedings of the 2011 18th Working Conference on Reverse Engineering (pp. 441--442). IEEE Computer Society. doi:10.1109/WCRE.2011.67 Albert, E. a.-Z. (2010). PET: A Partial Evaluation-based Test Case Generation Tool for Java Bytecode. In Proceedings of the 2010 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (pp. 25-28). Madrid, Spain: ACM. doi:10.1145/1706356.1706363 Basili, V. R. (1996). A Validation of Object-Oriented Design Metrics As Quality Indicators. IEEE Trans. Softw. Eng., 22(10), 751--761. doi:10.1109/32.544352 Bhatnagar, N. (2004). A Survey of Aspect-Oriented Programming Languages. Cheon, Y. a. (2010). Automating Java Program Testing Using OCL and AspectJ. In Proceedings of the 2010 Seventh International Conference on Information Technology: New Generations (pp. 1020-1025). IEEE Computer Society. doi:10.1109/ITNG.2010.123 Davila-Nicanor, L. a.-A. (2005). Reliability evaluation of Web-based software applications. In Computer Science, 2005. ENC 2005. Sixth Mexican International Conference on (pp. 106-112). doi:10.1109/ENC.2005.36 Fraser, G. a. (2011). EvoSuite: Automatic Test Suite Generation for Object-oriented Software. In {Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (pp. 416--419). Szeged, Hungary: ACM. IEEE. (2014). IEEE Spectrum. Retrieved Agosto 111, 2014, from http://spectrum.ieee.org/static/interactive-the-top-programming-languages
Podríamos preguntárnoslo de otra manera, ¿cómo es que ahora todo el mundo automatiza? o ¿qué está sucediendo para que la automatización sea indispensable? Bien, la respuesta es lógica y sencilla. Dadas las nuevas tecnologías y enfoques clave como la cultura DevOps, la productividad de los equipos de software ha aumentado mucho y el time-to-market se ha reducido considerablemente. Por tanto, todo aquello que: a) ayude a ser más ágil, b) permita a los desarrolladores dedicar tiempo a lo que realmente necesita de su atención, y, sobre todo, c) permita llegar al mercado mucho más rápida y eficientemente, es estratégicamente indispensable si se quiere sobrevivir en el mercado. A todo ello contribuye y mucho la automatización de pruebas funcionales- no sólo porque dejan tiempo al tester, sino porque además estas pruebas son reutilizables. Además, la automatización de las pruebas aporta tranquilidad al ajustar y mejorar las principales funcionalidades, ya que brindan información sobre el impacto de los cambios realizados.
Agile agile testing Android argentesting Automation Automatización automatización de pruebas Bstriker bugs Calidad Capacitación Cucumber curso Debate encuesta English estimación Eventos expoQA hangout Herramientas Ingles ISTQB ISTQB AL Jira jobs Mobile Mobile Testing Móviles performance PractiTest QA requerimientos Ruby Scripting scrum Selenium Selenium Webdriver testing Trabajo Tutorial uTest webinar webservices youtube
El término engloba una amplia variedad de aplicaciones informáticas que incluyen desde programas de contabilidad y de ofimática, hasta sistemas de planificación de recursos empresariales (ERP), pasando por programas de gestión de clientes (CRM) y de recursos humanos, así como programas de administración de la cadena de suministros (SCM), etc. Con estos se suele incluir un servicio para dar soporte técnico a las empresas que los usan, como también orientarlas en problemas y dar soluciones, según los protocolos de cada distribuidor.
Una ventaja de esta herramienta para automatizar pruebas es que tiene una fácil integración con Selenium Remote Control. Esto quiere decir que, cuando capturamos un elemento, podemos pedirle una acción que haría un usuario común y así la visualizamos en un tiempo determinado. Con esto podemos integrar las pruebas funcionales sobre aplicaciones web. Las pruebas automatizadas nos ahorrarían una gran cantidad de tiempo y harían que la ejecución de pruebas funcionales sea mucho más simple. 
Hoy en día, incluso las empresas de tamaño medio tienen operaciones por todo el planeta. Y la mayoría de los productos de software de empresa, incluyendo IFS Applications, soportan múltiples idiomas, divisas y unidades de medida. IFS Applications ofrece también la funcionalidad de configurar fácilmente en el sistema nuevas divisiones o unidades de negocio, para gestionar a continuación los procesos a través de estas divisiones. IFS Applications proporciona soporte de procesos básicos como recursos humanos, finanzas, inventario y proyectos, en todas las áreas geográficas y divisiones de negocio o filiales. Hoy en día, el personal puede ser empleado de una compañía, reportar a un jefe que está empleado en otra, y registrar sus horas de proyecto en una tercera.
La verdad es que para todo lo que sean pruebas de sitios web, la primera opción diría que es Selenium. Puedes empezar con Selenium IDE, que permite grabar y reproducir, y es muy sencillo de usar, y una vez tengas claro lo que quieres automatizar, pasarte a algún framework. Te dejo un video en español de introducción a Selenium IDE: https://www.youtube.com/watch?v=AptRJxAVsI4

Me podrías asesorar sobre cual debería escoger,debido la bajada de ventas tenemos que prescindir del programa que tenemos actualmente por no poder asumir dichos costes y por eso busco otro.... necesitaría un programa para poder tener control de todas las ventas que han sido enviadas a distintos usuarios, subir de manera masiva un archivi en csv, también subir sus correspondientes trackings para que se enlacen en cada venta asociada (archivo masivo en csv tb y una vez entregadostodos ellos que se pudiera hacer una liquidacion para que cada proveedor la reciba y facture en base a esas ventas entregadas, también necesitaría el control de dichas devoluciones para que emitieran los proveedores tras esa liquidacion negativa su correspondiente abono.Espero tus noticias.deberia tener las opciones de importar y exportar dichos archivos. Muchas gracias por tu ayuda Javier. atentamente Isabel
Con el advenimiento de la automatización del desarrollo de software, se hizo patente que necesitaríamos más que un simple usuario beta para lograr alcanzar las normas internacionales “de madurez”. Necesitamos un usuario beta programador, es decir, una persona que tenga la capacidad de “hablar” diversos lenguajes de programación como base y que luego escoja las herramientas de prueba más adecuadas en cada caso, a fin de automatizar las pruebas de software para mantenerse al día con el desarrollo continuo de software.
A través del módulo device.js desarrollado para el proyecto, se invoca el comando adb devices, el cual entrega el listado de equipos encendidos, éstos son almacenados en la base de datos (si es que no existen ya), además de ello se obtiene la información de los mismos, como nombre del equipo, identificador y dimensiones, que para el caso de acciones de tipo tap para ADB Input son necesarias, para así delimitar el rango en el cual se puede hacer la acción.
Herramientas de redes hay muchísimas, pero algunas están asociadas exclusivamente a una sola red. Entre las genéricas, las más recomendadas son HootSuite y Buffer . “Buffer es muy útil para automatizar y compartir tus contenidos en redes de forma muy sencilla. HootSuite es similar a Buffer, con funcionalidades algo más avanzadas, aunque con una interfaz ligeramente más complicada”, apunta Romero. Otra buena alternativa para conocer lo que pasa en todas tus redes es Sproutsocial , aunque sólo ofrecen 30 días gratis.
La interacción con el software. Aquí es donde entra la computación en la nube, que nos permite el almacenamiento remoto de la información y el acceso a la misma desde dondequiera que estemos, y el modelo de Software as a Service (SaaS), que no requiere la costosa compra e instalación de software en las computadoras de la empresa, sino solo una suscripción y el pago por utilización.

Ahora existen diversos tipos de pruebas que son necesarias y fundamentales en el desarrollo de software. Como indicas, los programadores deberían ser responsables del código que generan. He ahí la importancia de las pruebas unitarias que todo developer debe realizar. La detección temprana de errores ha demostrado que es mucho menos costosa que una en una etapa tardía.

GitHub es un servicio de repositorio basado en la web para alojar y administrar proyectos de software, versiones y código fuente. Proporciona características como edición en línea, ticketing, seguimiento de errores, administración de tareas, así como funciones de redes sociales como feed, wikis, que ayudan a millones de desarrolladores y probadores a trabajar de manera colaborativa. Promueve el desarrollo rápido y flexible de proyectos con más de 14 millones de usuarios y más de 35 millones de repositorios.
Wireshark es probablemente uno de los mejores analizadores de tráfico de red. Más aún si tenemos en cuenta su relación calidad/precio. Es una de las herramientas básicas que se usan  en auditorías de seguridad y test de intrusión. Además, sirve en muchas otras pruebas, o incluso en el desarrollo de software, cuando debemos verificar que ocurre con nuestra aplicación, y si está funcionando correctamente. El objetivo principal de la herramienta es mostrar al usuario todo lo que está circulando a través de su tarjeta de red, conocer que está circulando en el mundo al que estamos conectados.
• Las herramientas de Micro Focus Borland cubren todo el ciclo de vida del desarrollo de aplicaciones corporativas, desde la gestión de requerimientos pasando por testing multi-plataforma y control de versiones, con un reconocido prestigio internacional. Gartner ha situado en 2014 a Borland, como líder en su Cuadrante Mágico de “Suites Integradas de Calidad de Software” por tercer año consecutivo.
Las pruebas de estrés permiten verificar que el sistema funciona adecuadamente bajo diferentes condiciones. Baja memoria o no disponible en el servidor, máximo número de clientes conectados y múltiples usuarios ejecutando la misma transacción, representan algunas de las condiciones descritas. La finalidad de las pruebas de estrés también es la de identificar el límite de las condiciones bajo las cuales el sistema falla.
El problema de armar algo a medida desde cero (o sea desde la programación) es la actualización del mismo. Un alternativa mucho más razonable por su sencillez, costo y posibilidades de actualización es hacerlo tu misma mediante una base de datos con capacidades gráficas, ahí mi programa preferido es sin duda FileMaker, que, además ofrece muchísimos plantillas de gestión de negocios específicos que puedes adaptar muy rápidamente a tus necesidades.
Ø UIMap.Designer.cs: Este archivo se crea al generar la prueba. Cuando esta cambia, este archivo se recrea automáticamente. Por este motivo, no se recomienda hacere ningún cambio en este fichero, pues todos los cambios se perderán si la prueba cambia. Aquí se encuentra la definición de todos los métodos identificados durante la grabación de la prueba.
inspector de código para crear los casos de prueba necesarios. Algunas propuestas utilizan los archivos fuente de Java y otras se basan en diagramas UML para conocer la arquitectura del sistema. Nuestra propuesta se basa en retomar la parte de planeación y ejecución de pruebas que marca la teoría clásica, apoyada con técnicas de programación novedosas como la POA para mejorar la ejecución de cada caso de prueba. En este caso la combinación de la evaluación del sistema en reposo y en tiempo de ejecución robustece el proceso de evaluación para lenguajes como Java y nos permite planear y ejecutar los casos de prueba de una forma efectiva. De acuerdo a los resultados que hemos obtenido con este enfoque en otro tipo de aplicaciones (Davila-Nicanor, 2005), los costos se reduce en al menos el 50%. Este enfoque permite obtener sistemas productivos más confiables y eficientes. Trabajo a futuro El principal objetivo de nuestro trabajo a futuro es implementar el esquema propuesto para la herramienta de evaluación de sistemas orientados a objetos. Para evaluar la certeza de esta propuesta, serán utilizados algunos casos de estudio que tiene disponibles en su base de datos la Nasa (Rathore, 2012). El objetivo de esta base de casos, es que los instrumentos de evaluación que se proponen puedan contrastar sus resultados con los reportados en esta organización. Otro objetivo importante es que el costo computacional deberá ser bajo en la ejecución de la herramienta. En este caso los algoritmos implementados deben ser eficientes y confiables. Finalmente la técnica que elegimos POA en la ejecución de los casos de prueba, representa un gran reto, porque de acuerdo al estudio realizado en este reporte, pocas herramienta la utilizan como parte central de su proceso de evaluación. En este caso se utilizan en su mayoría técnicas de algoritmos evolutivos, lo cual genera costos muy altos de ejecución. Referencias al., K. e. (2011). LCT: an open source concolic testing tool for Java programs. In In: Proceedings of the 6th Workshop on Bytecode Semantics, Verification, Analysis and Transformation (pp. pp. 75-80). Albert, E. a.-M.-Z. (2011). jPET: An Automatic Test-Case Generator for Java. In Proceedings of the 2011 18th Working Conference on Reverse Engineering (pp. 441--442). IEEE Computer Society. doi:10.1109/WCRE.2011.67 Albert, E. a.-Z. (2010). PET: A Partial Evaluation-based Test Case Generation Tool for Java Bytecode. In Proceedings of the 2010 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (pp. 25-28). Madrid, Spain: ACM. doi:10.1145/1706356.1706363 Basili, V. R. (1996). A Validation of Object-Oriented Design Metrics As Quality Indicators. IEEE Trans. Softw. Eng., 22(10), 751--761. doi:10.1109/32.544352 Bhatnagar, N. (2004). A Survey of Aspect-Oriented Programming Languages. Cheon, Y. a. (2010). Automating Java Program Testing Using OCL and AspectJ. In Proceedings of the 2010 Seventh International Conference on Information Technology: New Generations (pp. 1020-1025). IEEE Computer Society. doi:10.1109/ITNG.2010.123 Davila-Nicanor, L. a.-A. (2005). Reliability evaluation of Web-based software applications. In Computer Science, 2005. ENC 2005. Sixth Mexican International Conference on (pp. 106-112). doi:10.1109/ENC.2005.36 Fraser, G. a. (2011). EvoSuite: Automatic Test Suite Generation for Object-oriented Software. In {Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (pp. 416--419). Szeged, Hungary: ACM. IEEE. (2014). IEEE Spectrum. Retrieved Agosto 111, 2014, from http://spectrum.ieee.org/static/interactive-the-top-programming-languages
WorkProject te permite registrar de forma automática el tiempo invertido en cada uno de tus proyectos. Esta herramienta registra toda la actividad realizada a través de un dispositivo (ordenador, tablet o teléfono móvil), y permite filtrar esta actividad por departamentos, empleados y fechas. A través de WorkProject, puedes ver al instante los costes dedicados a cada uno de tus proyectos, además de los márgenes y beneficios de los mismos. Permite automatizar multitud de tareas relacionadas con la gestión de proyectos, que pueden liberar de una gran carga de trabajo a directores de proyecto y managers. Cuenta con muchas otras funcionalidades, como un sistema de reglas para automatizar un registro detallado de la actividad, previsiones, editor de actividad, diagrama de Gantt... Puedes probarla totalmente gratis entrando en nuestro entorno de demo. 
GitHub es un servicio de repositorio basado en la web para alojar y administrar proyectos de software, versiones y código fuente. Proporciona características como edición en línea, ticketing, seguimiento de errores, administración de tareas, así como funciones de redes sociales como feed, wikis, que ayudan a millones de desarrolladores y probadores a trabajar de manera colaborativa. Promueve el desarrollo rápido y flexible de proyectos con más de 14 millones de usuarios y más de 35 millones de repositorios.
Un contrato traslúcido es el resultado de combinar 1) la Programación Orientada a Aspectos (POA) la cual ofrece ventajas como: separación de asuntos, facilidad para razonar conceptos, reutilización, mejor mantenimiento del software, entre otras; 2) implementar el Diseño por Contrato (DbC) de forma dinámica, es decir que conforme al evento que identifique una regla pueda aplicar o no. En este ... [Show full abstract]Read more
Con el advenimiento de la automatización del desarrollo de software, se hizo patente que necesitaríamos más que un simple usuario beta para lograr alcanzar las normas internacionales “de madurez”. Necesitamos un usuario beta programador, es decir, una persona que tenga la capacidad de “hablar” diversos lenguajes de programación como base y que luego escoja las herramientas de prueba más adecuadas en cada caso, a fin de automatizar las pruebas de software para mantenerse al día con el desarrollo continuo de software.
Son herramientas para mejorar la productividad. Entre las gratuitas, la más recomendada es Rescue Time . Está también Teamviz. “Rescue Time es una de las que más y mejores resultados me da. Un servicio de analíticas personales que muestra cómo empleas tu tiempo, desde que enciendes el PC o portátil, y te proporciona herramientas para ayudarte a ser más productivo”, comenta Isra García.
El término engloba una amplia variedad de aplicaciones informáticas que incluyen desde programas de contabilidad y de ofimática, hasta sistemas de planificación de recursos empresariales (ERP), pasando por programas de gestión de clientes (CRM) y de recursos humanos, así como programas de administración de la cadena de suministros (SCM), etc. Con estos se suele incluir un servicio para dar soporte técnico a las empresas que los usan, como también orientarlas en problemas y dar soluciones, según los protocolos de cada distribuidor.
En el mercado existen muchos tipos de programas informáticos o software. Los hay para diferentes tipos de negocios, personalizados o únicos. Muchos programas pueden utilizarse tan pronto se instalan en un servidor (on premise) o se puede acceder a ellos a través de internet (cloud base). Algunos son compatibles con puertos periféricos, como los fabricantes de etiquetas y escáneres de código de barras.
Appium es un framework de automatización de pruebas para probar aplicaciones web nativas, híbridas y móviles para plataformas iOS, Android y Windows en dispositivos reales y simuladores. Dado que soporta aplicaciones multiplataforma, permite probar aplicaciones en diferentes plataformas utilizando la misma API. Appium permite a los usuarios elegir el idioma que tiene las bibliotecas de clientes de Selenium como Java, Objective-C, JavaScript con Node.js, PHP, Ruby, Python, C # etc. para crear 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:


Saludos espero me puedan ayudar, tengo un negocio de mangueras y conexiones, y requiero llevar el control de ventas, inventarios, compras, pero ya que son muchos artículos requiero se puedan cargar desde Excel y se pueda modificar el precio a varios artículos a la vez ya que te visan de incremento y seria mucho estar modificando articulo por articulo cuando toda una familia subio el 5% y las otras se mantiene igual, espero me puedan ayudar gracias
Javier me gustaría que me aconsejaras que programa me serviría para el manejo de una pequeña empresa de inmobiliaria con manejo de administración de inmuebles por arrendamientos y administración de inmuebles consignados para ventas con comisiones como pago y administración de inmuebles con reparaciones y manejo de trabajadores para pequeñas reparaciones. ademas de caja y consignaciones y pagos de comisiones vendedores.

Otras buenas alternativas pueden ser Klout y Mention , muy útiles para gestionar la reputación en redes sociales: qué se dice de ti y qué comentarios tuyos tienen más impacto, quiénes son los usuarios con más influencia, etc. Eso sí, Klout es completamente gratuita, pero Mention dispone de un plan con sus correspondientes tarifas en función del tamaño y tipo de equipo. También merecen la pena otras herramientas más específicas como TwitterSearch , “un buscador en tiempo real para que no te pierdas nada de lo que se dice de ti en esta red”, comenta Isra García. En esta misma red dispones también de soluciones como las de Tweet Alarm
“Son herramientas muy útiles en su versión gratuita, de hecho la principal limitación de Zoho CRM sin pago es que sólo permite el acceso a tres usuarios distintos dentro de la empresa, lo que para una pyme suele ser suficiente. En el caso de Openbravo, al ser software libre, el problema puede venir, como con cualquier solución open source (código abierto), en que hay que tener ciertos conocimientos técnicos para ponerlas a funcionar. Por eso, aunque Openbravo sea gratuito, si no tienes conocimientos técnicos debes valorar si te compensa contratar a alguien que instale y configure Openbravo para ajustarlo a las necesidades específicas de la empresa”, explica José Carlos Cortizo, CMO de BrainSins .
objetos, la ejecución de pruebas sobre los métodos de una clase, pueden considerarse como pruebas unitarias. Las ventajas de realizar pruebas unitarias son: encontrar errores de forma temprana, evitando la propagación de estos en el sistema completo, lo cual permite mejorar el comportamiento de la aplicación en las pruebas de integración. Otro beneficio es la posibilidad de documentar el código para facilitar su implementación. Pruebas Integrales Otro aspecto importante en el proceso de evaluación son las pruebas de integración. Estas pruebas se basan en probar un conjunto de unidades las cuales interactúan de acuerdo a la funcionalidad en relación con la especificación de los requerimientos. Las pruebas integrales evalúan que las secuencias de interacción entre componentes se realicen correctamente. Esto se debe hacer ya que pueden haber fallos que se mantiene ocultos y solo pueden ser detectados cuando una unidad de código interactúa con otra dentro del mismo sistema. Las ventajas de realizar estas pruebas son: descubrir interacciones inadecuadas entre los componentes, interfaces y arquitectura de diseños deficientes. Enfoque actual de programación ! Programación Orientada a Objetos De acuerdo al ranking de la revista IEEE Spectrum (IEEE, 2014) el lenguaje Java es el más utilizado para el desarrollo de sistemas empresariales, aplicaciones móviles y web. En este caso las propiedades que la Programación Orientada a Objetos (POO) ofrece, tiene grandes ventajas como son: la portabilidad, la reutilización de componentes y la sencillez de sus cláusulas, que también son fáciles de entender. El mayor representante de este paradigma es el lenguaje Java con más de 9 millones de desarrolladores en todo el mundo (Oracle, 2014). Sin embargo evaluar aplicaciones en Java no es sencillo y los esquemas tradicionales de pruebas no son suficientes, en este caso la planeación de pruebas tradicionales no es aplicable. Esto se debe a que la mayor parte de la funcionalidad de estos sistemas se resuelve a tiempo de ejecución. Las características de la POO que influyen en este aspecto son las siguientes: • Encapsulación: esta propiedad limita el acceso que se tiene a los atributos internos de una clase, y solo se puede acceder a ellos mediante la instancia de la clase. • Herencia: esta propiedad permita a una clase hija comportarse como una clase padre y a sí mismo una clase padre puede comportase como una clase hija, pero con un comportamiento limitado. • Polimorfismo: esta propiedad permite seleccionar los métodos que se utilizan durante tiempo de ejecución haciendo el código más flexible. Programación orientada a aspectos Este enfoque es relativamente nuevo el área de desarrollo de software, pero se ha consolidado como un paradigma el cual facilita la encapsulación de requerimientos no funcionales. Una de las funciones más importante de este nuevo paradigma es mejorar la modularidad del código en sistemas de software y reducir su complejidad. Esto es posible mediante enfoques como el entrelazado de asuntos (crosscutting concern) en el código, estos asuntos generalmente son requisitos no funcionales que debe de cumplir un sistemas, por ejemplo la seguridad y el inicio de sesión de usuarios. Este entrelazado es un concepto que se implementa en diversas secciones del código, mediante la implementación de corte en puntos (pointcuts), de acuerdo a la definición de puntos de unión (joint points) los cuales son puntos donde los asuntos (concerns) son aplicados. Un aviso (advice) es un comportamiento adicional que tendrá el código, el cual es ejecutado en un asunto. Entre los representantes más importantes de este paradigma tenemos a AspectJ (Laddad, 2003), que funciona como una extensión para el lenguaje Java. Actualmente forma parte del proyecto de código abierto Eclipse de IBM. La unidad principal de AspectJ es el aspecto, el cual combina los conceptos corte en puntos, avisos y declaraciones. Este nuevo paradigma ofrece nuevas posibilidades para el área de pruebas de software. En trabajos de investigación como en (Cheon, 2010) se desarrolla un enfoque que utiliza una combinación entre OCL (Object Constariant Language) y aspectos para colocar restricciones en la invocación de métodos para validar los rangos y datos de las variables de entrada.

El término engloba una amplia variedad de aplicaciones informáticas que incluyen desde programas de contabilidad y de ofimática, hasta sistemas de planificación de recursos empresariales (ERP), pasando por programas de gestión de clientes (CRM) y de recursos humanos, así como programas de administración de la cadena de suministros (SCM), etc. Con estos se suele incluir un servicio para dar soporte técnico a las empresas que los usan, como también orientarlas en problemas y dar soluciones, según los protocolos de cada distribuidor.

ubots

×