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.
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
Hola Javier, primero muchas gracias por tan valiosa información. Mi padre lleva muchos años con su negocio que ya es algo así como un micro-mercado y controlar la venta y compra de productos le es imposible, ahora que programa me ayudaría a poder hacerlo? puedo tener un control exacto del negocio? te agradecería mucho la ayuda que me vayas a brindar.
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.
Este tipo de software empresarial permite con gran facilidad automatizar las operaciones, reduciendo el tiempo y los gastos involucrados en el negocio. A la distancia de un clic se pueden ejecutar informes y acceder a otras informaciones importantes vinculadas a inventarios, abastecimientos, distribución, compras, facturación, cobros, pagos a proveedores, entre otros datos claves del negocio.
La automatización es uno de los temas del momento. Ya os lo contamos cuando hablamos acerca de las tendencias tecnológicas más relevantes de nuestros tiempos, pero hoy nos centramos en el testing automation. Y lo primero que hay que decir al respecto, es que la automatización de pruebas de software no garantiza la calidad del software. ¿Sorprendido? Entonces recuerda que la calidad de software va mucho más allá del testing. Cuando hablamos de calidad de software hemos de tener en cuenta tres núcleos: la calidad del proceso de creación de código, la calidad del producto en sí, y la calidad del equipo que lo desarrolla. Sin metodologías ágiles en el proceso, y un equipo de trabajo motivado, la calidad del producto en sí, aquello que parcialmente mides con el testing, se ve mermado. El testing es imprescindible para conseguir una buena calidad del software, sí, pero el testing solo mide software en ejecución. Además todos sabemos que el hecho de que el software funcione no significa necesariamente que esté bien construido La calidad del software engloba un conjunto de factores y como tal, cada uno de estos factores es imprescindible para el conjunto, pero no determina el umbral de calidad por sí solo. Así que hoy, nos centramos en una de esas pequeñas partes imprescindibles para el resto – la automatización de pruebas – pero sin olvidarnos que necesitará de sus compañeros de viaje para funcionar como se espera.
Ver más: ant selenium testng automation process tools used, cross browser testing, cross browser testing matrix, software testing, magento, wordpress, website testing, testing / qa, usability testing, test automation, significance testing cross tabulations spss, testng automation, test automation selenium testng, selenium simultaneous tests, citrix automation selenium, free browser testing suite, cross browser testing jobs, fix cross browser testing, zen cart browser testing, cross browser testing app
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.
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.
La automatización es uno de los temas del momento. Ya os lo contamos cuando hablamos acerca de las tendencias tecnológicas más relevantes de nuestros tiempos, pero hoy nos centramos en el testing automation. Y lo primero que hay que decir al respecto, es que la automatización de pruebas de software no garantiza la calidad del software. ¿Sorprendido? Entonces recuerda que la calidad de software va mucho más allá del testing. Cuando hablamos de calidad de software hemos de tener en cuenta tres núcleos: la calidad del proceso de creación de código, la calidad del producto en sí, y la calidad del equipo que lo desarrolla. Sin metodologías ágiles en el proceso, y un equipo de trabajo motivado, la calidad del producto en sí, aquello que parcialmente mides con el testing, se ve mermado. El testing es imprescindible para conseguir una buena calidad del software, sí, pero el testing solo mide software en ejecución. Además todos sabemos que el hecho de que el software funcione no significa necesariamente que esté bien construido La calidad del software engloba un conjunto de factores y como tal, cada uno de estos factores es imprescindible para el conjunto, pero no determina el umbral de calidad por sí solo. Así que hoy, nos centramos en una de esas pequeñas partes imprescindibles para el resto – la automatización de pruebas – pero sin olvidarnos que necesitará de sus compañeros de viaje para funcionar como se espera.

Un software de gestión empresarial  es una solución informática diseñada para administrar y automatizar gran parte de los procesos de negocio de nuestra organización. Cada empresa tiene unas necesidades en particular, por esa razón tenemos que elegir aquel sistema que mejor pueda cubrirlas. Pero no solo nos tenemos que conformar con cubrir  las necesidades actuales, tenemos que ampliar nuestra visión y pensar que tipo de necesidades va a tener nuestro negocio en cinco años, por  poner un ejemplo.
Para un análisis profundo, de utilidad y que le permita realizar descubrimientos, conjugue sus dos activos más importantes: su gente y sus datos (tanto big data como datos de menor volumen). Tableau admite análisis a medida por parte de prácticamente cualquier usuario. De este modo otorga a todo el personal la capacidad para ver y comprender mejor sus datos. Además, permite a sus analistas de negocios publicar KPI de toda la empresa en una plataforma de análisis centralizada y fácil de usar.
Para campañas de email marketing, dos soluciones gratuitas y muy buenas son MailChimp y Acumbamail . En el caso de esta segunda puedes elegir tarifas mensuales en función del número de envíos que piensas realizar o el número de suscriptores a los que piensan mandar tus campañas de email marketing. Si lo que haces son envíos de forma puntual o envíos de SMS, puedes elegir una de sus tarifas de prepago por créditos. Desde 13 euros al mes. Sin permanencia. Existe también una versión gratuita de hasta 2.000 envíos a 250 suscriptores. MailChimp es algo más generosa, ya que permite enviar hasta 12.000 correos a 2.000 abonados. “La versión gratuita en ambos casos incluye en los emails un logo de cada una de las compañías y enlace al site, pero no es algo que moleste, por lo que la única razón lógica para optar por sus versiones de pago sería que el número de suscriptores o emails enviados al mes nos resulten insuficiente. En cuanto a las diferencias entre las dos, además del volumen de envíos, la única es que Acumbamail es una empresa española y su interfaz está en castellano. En Mailchimp está todo en inglés, tanto el interfaz como el soporte”, comenta José Carlos Cortizo.

Firebug es una extensión de navegador web que ayuda a los probadores en la depuración, edición y supervisión en línea de CSS, HTML y JavaScript de la aplicación web. Firebug junto con Firepath se utiliza para identificar XPath de cualquier elemento. Tanto Firebug como Firepath pueden instalarse como una extensión para Mozilla Firefox, mientras que Firebug Lite se puede agregar como una extensión de Chrome que proporciona una rica presentación de elementos HTML y DOM para la edición en directo.
Son herramientas que utilizan de forma habitual la mayoría de los emprendedores y startups que necesita organizar grupos de trabajo y proyectos en equipo. Ayudan a asignar las tareas de cada uno, ponerles fechas límite, etc. Imprescindibles, sobre todo, para quienes trabajan con colaboradores de forma remota. Aquí ganan por goleada Basecamp y Trello ; los dos muy parecidos, pero Trello le ha tomado la delantera a la primera porque es totalmente gratuita (Basecamp sólo lo es para los profesores) y porque combina muy bien con Google Docs. Otra alternativa recomendable es Asana , aunque en su versión gratuita está limitada a un máximo de 15 personas por equipos que empiezan.
Jelinski, Z. A. (1972). Software Reliability Research. In Statistical Computer Performance Evaluation. New York:academic Press. Laddad, R. (2003). AspectJ in Action. Manning. Musa, J. D. (2004). Software Reliability Engineering. New York: Mc Graw Hill. Norman F. Schneidewind, L. J. (2008, Junio 27). IEEE Recommended Practice on Software Reliability. New York, NY 10016-5997, USA. Oracle. (2014). http://www.oracle.com. Ragab, S. a. (2010). Object oriented design metrics and tools a survey. In Informatics and Systems (INFOS), 2010 The 7th International Conference on (pp. 1-7). Rathore, S. a. (2012). Investigating object-oriented design metrics to predict fault-proneness of software modules. In Software Engineering (CONSEG), 2012 CSI Sixth International Conference on (pp. 1-10). doi:10.1109/CONSEG.2012.6349484 Sommerville, I. (2007). Software Engineering. Pearson Education. Wahid, M., & Almalaise, A. (2011). JUnit framework: An interactive approach for basic unit testing learning in Software Engineering. Engineering Education (ICEED). doi:10.1109/ICEED.2011.6235381 Autorización y renuncia Los autores del presente artículo autorizan al Instituto Tecnológico de Orizaba (ITO) para publicar el escrito en la revista electrónica “Coloquio de investigación multidisciplinaria” con registro(ISSN2007$8102 en su edición 2014. El ITO o los editores no son responsables ni por el contenido ni por las implicaciones de lo que está expresado en el escrito.
×