Merece la pena añadir a estas herramientas otras que nos ayuden a organizar mejor el correo, como Unroll.Me, para olvidarte del correo basura. “Ahora Google ha lanzado la competencia a Mailbox, que se llama Inbox. Son fantásticas para una gestión eficiente del email personal. Unrol.Me es, sencillamente, buenísima. No es un gestor de correo como las otras, sirve para ver a qué estás suscrito, darte de baja fácilmente de las que no te interesen y agrupar las otras en un mismo email”, dice Emilio Rodríguez.
Para mostrar los procesos que se están llevando a cabo en la ejecución de la prueba en tiempo real (para el caso de ADB Input) se hace uso de WebSockets a través de la librería Socket.io cada vez que sucede un cambio en el servidor, es informado al cliente, al mismo tiempo se está almacenando dicha salida en la base de datos, para la generación del log de eventos (figura 16)
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 

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.
Entornos a certificar: para valorar este punto, tambien se debe tener en cuenta el anterior. Es posible que las pruebas a realizar en una aplicación sea necesario ejecutarlas sobre diferentes entornos de despliegue (distintos navegadores, servidores de aplicaciones, versiones de software). En este caso aunque el numero de pruebas sea reducido (y pueda pensarse que no es optimo automatizarlas), se debe repetir varias veces su ejecución por lo que puede compensar su automatización.
101PanelTechDays agile Alianzas atlassian automatización automatización pruebas Big Data calidad Calidad del Software ciberseguridad cloud computing cmmi Codemotion comunicación correo desarrollo desarrollo personal DevOps empresa fabricación ecologica gamificación gestión gestión del tiempo gestión proyectos innovación integración continua iso 27001 juegos lean lean it metodología móvil negocios Noticias nube opensource Panel Sistemas pruebas seguridad Software SQA tarugoconf tendencias testing transformación digital

· Sin desmerecer ningún lenguaje ya que todos son herramientas y/o formas de comunicación con una computadora creo que (es mi opinión personal) para una persona que no sabe o sus conocimientos sobre programación son muy pocos, un lenguaje del estilo C#, .NET, Java que son lenguajes compilados, se hace un poco mas costoso el aprendizaje, es decir que la curva se hace un poco mas pesada en la relación Aprendido/tiempo.
×