Daniel fundó su empresa de Software Internet en 1996, y se especializa en aplicar las nuevas tecnologías al mundo del comercio. Es dirigente de Cámaras Empresariales, fue Presidente y Vicepresidente de entidades regionales, y ha recibido el Premio al Mérito Industrial. Ha fundado 7 empresas, una de ellas Solo10.com SA que actualmente exporta a 17 países.
Resumen La calidad de software se ha convertido en un tema de gran importancia y la base de un gran número de investigaciones. Para obtener mejores niveles de calidad, se han utilizado modelos matemáticos e instrumentos de evaluación. Sin embargo el costo de la evaluación de un sistema es muy alto, esto es debido, a que las pruebas que se realizan a un sistema de software, normalmente son del orden de miles. El objetivo de evaluar un sistema es encontrar la mayor cantidad de fallos posibles optimizando los recursos que se tienen asignados al proyecto. A pesar de muchos esfuerzos, en la actualidad los paradigmas de programación como el orientado a objetos (POO) y el orientado a aspectos (POA), tienen características en donde las técnicas clásicas de pruebas no son suficientes. En este trabajo se propone un novedoso esquema de evaluación para sistemas orientados a objetos, en donde se combina la planeación de las pruebas, apoyada con técnicas de programación orientada a aspectos. Este enfoque mejora la eficiencia de la técnica de pruebas de caja negra para lenguajes como Java. Nuestra herramienta de evaluación se enfoca en medir los niveles de confiabilidad mediante la emulación de un ambiente controlado con evaluadores virtuales, lo que permite reducir los costos y mejorar la eficiencia en el proceso de evaluación. Abstract Quality software has become an issue with great relevance and it has been the basis of many researches. To obtain best quality levels it has been used different math models and assessment tools. However, the cost to evaluate any system is high, due to the test that have been implemented, it must be run thousands of times. Aim of evaluate a software system is to debug most errors so optimize resources allocate to the project of software. In spite of many efforts, currently the programming paradigms like object-oriented programming (OOP) and aspect-oriented programming (AOP), have characteristics where the testing classic techniques are not enough. In this paper we propose a novel evaluation scheme for object-oriented systems, where planning of tests and techniques supported with aspect-oriented programming are combined. This approach improves the efficiency of the technique of black box testing for programming languages like Java. Our assessment tool focuses to measure the levels of reliability by emulating of a controlled environment with virtual evaluators, thereby reducing costs and improvement the efficiency of process of evaluating. Palabras clave: Confiabilidad, pruebas, calidad, programación orientada a objetos. Introducción Durante el proceso de desarrollo de software, la etapa de localización y corrección de fallos, es decir, la fase de pruebas, puede llegar a ocupar desde un 40% hasta 60% de los recursos totales asignados al proyecto de software (Sommerville, 2007). En un contexto ideal, se espera que un sistema desarrollado de una forma adecuada, presente la menor cantidad de fallos posibles. Sin embargo y a pesar de muchos esfuerzos, los

Super útil tu publicación, muy apropiada para mi nicho de mercado, en su mayoría pequeñas empresas, por lo que compartiré esta información en mis redes sociales. Este tipo de aportes son muy necesarios para lograr la administración correcta de nuestros micro y pequeños negocios. Me interesa en especial el del manejo de clientes, ya veremos como nos va. Muchas Gracias.
Aquí no estamos para realizar evaluaciones financieras de empresas; no obstante, es insoslayable la experiencia de la casa de software y no podíamos dejar de nombrarla. Dicha experiencia la cobran muy bien en su producto y así como desembolsamos dinero para su licencia, “desembolsaremos” tiempo en su instalación y entrenamiento de usuarios, ambas tareas complejas. Como atenuante, nuestro usuario beta no deberá tener grandes habilidades de programación; VBscript es una tecnología con muchos años en el mercado y con mucha gente capacitada que lo maneja; la oferta es grande y baja nuestro presupuesto en empleados. Cuenta con interfaz de usuario web, API, versión para ordenador de escritorio y aplicación web. Tiene componentes de prueba reutilizables, documentación automatizada y se integra con herramientas de desarrollo continuo como por ejemplo Jenkis (el cual os presentamos recientemente en otro artículo). De manera adicional, como complemento, UFT ofrece “Lean Functional Testing” (LeanFT) para creación de pruebas con Visual Studio (C#) o Eclipse (Java).
Para la empresa que no trabaje con clientes ni tenga que controlar stock, etc. serviría una herramienta exclusivamente de facturación como Factura Directa. Para la gestión del punto de venta y generar recibos digitales, llevar el inventario y diseñar informes de venta, una buena solución gratuita es Caja Square . Y para negocios más complejos, hay que pensar en herramientas más completas: como ERP el más recomendado es Openbravo y como CRM, Zoho CRM .

Después de haber hecho esta pequeña vista de águila sobre cómo podríamos organizar a nuestro equipo de automatización de pruebas sin cometer demasiados errores, considero que cualquier empresa es capaz de gestionar un equipo de automatización realmente eficiente. Lo más difícil es conseguir que el equipo interactúe de forma correcta con los proyectos existentes y nunca se olvide de nutrir periódicamente a sus recursos.
Este documento informativo muestra cómo conseguir un sistema ERP global - una solución ERP que facilita las transacciones y procesos de empresa por todo el mundo en una única instancia de software y con una única base de datos. Un sistema ERP global es lo máximo en agilidad empresarial, control y visibilidad global. Vea también algunos consejos practicos.
Super útil tu publicación, muy apropiada para mi nicho de mercado, en su mayoría pequeñas empresas, por lo que compartiré esta información en mis redes sociales. Este tipo de aportes son muy necesarios para lograr la administración correcta de nuestros micro y pequeños negocios. Me interesa en especial el del manejo de clientes, ya veremos como nos va. Muchas Gracias.
HOLA, SI FUERAN TAN AMABLES ME PODRÍAN DECIR QUE PROGRAMA UTILIZAR PARA UN LOCAL DE REPUESTOS DE AUTOS? NO TIENE NADA, TENGO QUE HACERLO DE CERO, QUIERO CARGAR TODA LA MERCADERÍA PARA SABER STOCK, SEPARAR EN LAS DISTINTAS MARCAS Y MODELOS, PODER CARGAR CÓDIGOS, Y LISTAS DE PRECIO, LISTA DE CLIENTES Y PROVEEDORES, Y EMITIR LA FACTURACIÓN. QUE SIRVA PARA LA COMPU DEL LOCAL, EN CADENA CON UNA SUCURSAL MAS EL CELULAR. HAY ALGO ASÍ? GRACIAS
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

Por otro lado, otra herramienta que cada vez cobra mayor importancia dentro de un ecommerce es el buscador interno. “La importancia de un buscador reside en que es una de las herramientas más directamente vinculadas a la conversión, es decir, a la venta”, afirma Pepe Romero, responsable de comunicación de Doofinder . “Cualquier persona que entra en un, blog, intranet o comercio online, lo primero que hace es ir a la caja de búsqueda. En el caso de los blog, intranet o webs corporativas, Doofinder ayuda a encontrar fácilmente el contenido, mejorando así la experiencia del lector o empleado a la hora de encontrar lo que busca”.


Herramientas de Evaluación para Automatizar Pruebas de Sistemas Orientados a Objetos Leticia Dávila-Nicanor1, Ulises Juárez-Martínez2, Alejandro Romero Herrera1 1Maestría en Ciencias de la Computación Centro Universitario UAEM Valle de México Blvd. Universitario s/n Predio San Javier, Atizapán de Zaragoza, México 2Instituto Tecnológico de Orizaba – División de Estudios de Posgrado e Investigación Oriente 9 No. 852, Col. Emiliano Zapata, Orizaba, Veracruz, México, C. P. 94320 alex.romher@gmail.com, ldavilan@uaemex.mx, ujuarez@ito-depi.edu.mx Área de Participación: Ingeniería de Software Resumen La calidad de software se ha convertido en un tema de gran importancia y la base de un gran número de investigaciones. Para obtener mejores niveles de calidad, se han utilizado modelos matemáticos e instrumentos de evaluación. Sin embargo el costo de la evaluación de un sistema es muy alto, esto es debido, a que las pruebas que se realizan a un sistema de software, normalmente son del orden de miles. El objetivo de evaluar un sistema es encontrar la mayor cantidad de fallos posibles optimizando los recursos que se tienen asignados al proyecto. A pesar de muchos esfuerzos, en la actualidad los paradigmas de programación como el orientado a objetos (POO) y el orientado a aspectos (POA), tienen características en donde las técnicas clásicas de pruebas no son suficientes. En este trabajo se propone un novedoso esquema de evaluación para sistemas orientados a objetos, en donde se combina la planeación de las pruebas, apoyada con técnicas de programación orientada a aspectos. Este enfoque mejora la eficiencia de la técnica de pruebas de caja negra para lenguajes como Java. Nuestra herramienta de evaluación se enfoca en medir los niveles de confiabilidad mediante la emulación de un ambiente controlado con evaluadores virtuales, lo que permite reducir los costos y mejorar la eficiencia en el proceso de evaluación. Abstract Quality software has become an issue with great relevance and it has been the basis of many researches. To obtain best quality levels it has been used different math models and assessment tools. However, the cost to evaluate any system is high, due to the test that have been implemented, it must be run thousands of times. Aim of evaluate a software system is to debug most errors so optimize resources allocate to the project of software. In spite of many efforts, currently the programming paradigms like object-oriented programming (OOP) and aspect-oriented programming (AOP), have characteristics where the testing classic techniques are not enough. In this paper we propose a novel evaluation scheme for object-oriented systems, where planning of tests and techniques supported with aspect-oriented programming are combined. This approach improves the efficiency of the technique of black box testing for programming languages like Java. Our assessment tool focuses to measure the levels of reliability by emulating of a controlled environment with virtual evaluators, thereby reducing costs and improvement the efficiency of process of evaluating. Palabras clave: Confiabilidad, pruebas, calidad, programación orientada a objetos. Introducción Durante el proceso de desarrollo de software, la etapa de localización y corrección de fallos, es decir, la fase de pruebas, puede llegar a ocupar desde un 40% hasta 60% de los recursos totales asignados al proyecto de software (Sommerville, 2007). En un contexto ideal, se espera que un sistema desarrollado de una forma adecuada, presente la menor cantidad de fallos posibles. Sin embargo y a pesar de muchos esfuerzos, los

Mi nombre es Nery tengo una pequeña ferretería y se me esta complicando llevar un correcto control de inventario y lista de precios. Me gustaría saber si hay algún programa que al hacer la venta vaya descontando en automático del inventario , además de que al indicarle un determinado cliente me de el precio específico para los artículos que tengo en la lista de precios para ese determinado cliente.


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.
Muchas herramientas de automatización de pruebas proveen características para grabar y reproducir acciones del usuario para posteriormente ejecutarlas un número indefinido de veces, comparando resultados obtenidos con resultados esperados. La ventaja de ésta aproximación a la automatización es que requiere de menos desarrollo de software, sin embargo el confiar en éstas características del software lo hace menos confiable en la medida que muchas veces dependen de la etiqueta o posición del elemento de interfaz, y, al cambiar, el caso de prueba debe ser adaptado al cambio o probablemente fallar. Una variante de estas pruebas es la prueba de sistemas basados en la web en las que la herramienta de prueba ejecuta acciones sobre el navegador e interpreta el HTML resultante. Una variación más es la automatización sin scripts, que no usa grabación y reproducción de acciones sino que construye un modelo de la Aplicación Bajo Prueba ABP (AUT en sus siglas en inglés) que permite a la persona que prueba ("tester") que cree pruebas simplemente editando parámetros y condiciones.
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 un gusto saludarte. Te comento que soy encargado de almacenes en una empresa constructora, en donde manejamos ingreso y salida de materiales de construcción, equipos, repuestos, herramientas, etc., en la oficina central y en coordinación con los almacenes de los campamentos de obra. Me gustaría que puedas aconsejarme un programa que me permita desarrollar estas actividades para tener un mejor control de los almacenes. Agradecido de antemano.......
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.
En el desarrollo contemporáneo de software existe una tendencia creciente a usar Frameworks como los denominados XUnit (por ejemplo JUnit y NUnit) que permiten la ejecución de pruebas unitarias para determinar cuándo varias secciones del código se comportan como es esperado en circunstancias específicas. Los casos de prueba describen las pruebas que han de ejecutarse sobre el programa para verificar que éste se ejecuta tal y como se espera. La automatización de pruebas es una característica clave del desarrollo ágil de software en donde se le conoce como "desarrollo guiado por pruebas". En ellas, las pruebas unitarias se escriben antes que el código que genera la funcionalidad. Sólo cuando el código pasa exitosamente las pruebas se considera completo. Cuando hay cambios, el programador descubre inmediatamente cualquier defecto que rompa los casos de prueba lo cual baja el costo de la reparación. Dos inconvenientes de este estilo de trabajo son:
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
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

×