Testing en Produccion: El Futuro del Testing

testing-produccionHoy en dia, todos sabemos la importancia del software testing en nuestras aplicaciones, el objetivo y alcance de las pruebas es un punto muy importante a tratar, para saber hasta donde llegar y que tipos de pruebas nos comprometos a entregar al cliente conjuntamente con el proyecto para garantizar la calidad del sistema.

Hasta ahora, cuando hablamos de testing, siempre tenemos en mente un escenario de desarrollo o pre-producción, pero estamos seguros de como se comportará nuestro software en un entorno de producción, cumplirá la expectativas del cliente y los resultados de las pruebas serán los mismos que las pruebas en laboratorio.

La respuesta, no lo sabemos al 100%, hay muchos factores que no podemos controlar o medir en un entorno real, sobretodo si no tenemos acceso directamente y no realizamos nosotros el despligue en producción, y por eso, debemos tener la posibilidad de realizar testing de nuestras aplicaciones en un entorno real.

El objetivo fundamental, a parte de garantizar la calidad de nuestro software, es poder realizar mediciones de los resultados y tener “fotos” de como se comporta el sistema, y poder comparar estas mediciones en el tiempo para saber la salud de nuestra aplicacion y ver si se va degradando con el tiempo.

En esta mini-guia de la empresa Global Logic, aunque ya tiene un par de años, podeis encontrar una lista de “TiP methodologies” recomendadas que podemos utilizar para realizar testing en producción.

testing-produccion-guia

Link Pdf: https://www.globallogic.com/wp-content/uploads/2013/06/Testing-in-Production.pdf

Como siempre, espero que os sea de utilidad.

 

Microsoft Solutions Framework 5.0 (MSF)

Microsoft Solutions Framework 5.0, abreviado como MSF, es un marco de trabajo flexible para la planificación de proyectos y gestión del ciclo de vida de las aplicaciones con Visual Studio 2010, válido para entornos tradicionales y para entornos ágiles, resumiendo un poco, nos brinda una solución para la optimización y mejora de los entornos de producción de software que nos permite crear proyectos de equipo y controlarlos mediante Team Foundation Server (TFS).

Segun las propias palabras de Microsoft, Microsoft Visual Studio Team Foundation Server y el núcleo de las herramientas de administración, puede aplicar procedimientos probados para administrar el ciclo de vida de su aplicación, desde comprender las necesidades del cliente hasta el diseño del código y la implementación. Puede usar la instrumentación de estas herramientas para realizar un seguimiento de las necesidades de código, compilaciones y resultados de las pruebas. Estos procedimientos pueden ayudar a su equipo a crear software que sus clientes valoren, lo que resulta más rápido y más confiable.

Puede usar estas herramientas para obtener los siguientes resultados:

Planeación y seguimiento: capture lo que es importante para sus clientes y realice el seguimiento del progreso de su proyecto. Represente los procesos y supervise su calidad para ayudar a su equipo a convertir las necesidades del cliente en software operativo.

Diseño: diseñe la funcionalidad, sobre activos existentes o desde el principio, usando los diagramas arquitectónicos para comunicar la información crítica acerca del software de su equipo.

Desarrollo: escriba, realice pruebas unitarias, depure, analice y genere perfiles de su aplicación mediante herramientas que se integran con el resto del ciclo de vida de la aplicación para que su equipo pueda comprender cómo su progreso contribuye al proyecto.

Compilación: compile su aplicación mediante el sistema de compilación integrado para que su equipo pueda asegurarse de cumplir los requisitos de calidad y ver qué requisitos se han cumplido en cada compilación.

Pruebas: ejecute pruebas manuales o automatizadas, incluidas las pruebas de rendimiento y de esfuerzo. Administre las pruebas sistemáticamente para que su equipo conozca la calidad del software en cualquier momento.

Implementación: implemente en entornos virtuales para habilitar un desarrollo y unas pruebas más sofisticadas.


Las características fundamentales a cubrir para la administración y gestion de proyectos son:

  • Captura de la visión del producto
  • Creación de los requisitos del producto
  • Desarrollo de la documentación
  • Establecimiento del proceso del proyecto
  • Administración de problemas
  • Planeamiento de una iteración
  • Planeamiento del proyecto
  • Administración del riesgo
  • Prueba de un requisito del cliente
  • Comprobación de un requisito del producto

Plantillas de procesos para MSF y TFS:

Microsoft Operations Framework 4.0 (MOF)

Microsoft Operations Framework, abreviado como MOF, proporciona un conjunto de prácticas recomendadas y guías de operaciones para obtener confiabilidad, disponibilidad y seguridad sobre la plataforma Microsoft administrando e implementando servicios IT más confiables y rentables para que la infraestructura de IT funcione con eficacia.

Según Microsoft, la optimización de infraestructuras va más allá de los productos y tecnologías. Las personas y los procesos constituyen una gran parte de la madurez del servicio de IT de la organización. Algunos estándares y procedimientos recomendados tratan las áreas relacionadas con las personas y procesos en la administración del servicio de IT. Microsoft Operations Framework (MOF) aplica gran parte del conocimiento incluido en las normas ITIL (IT Infrastructure Library)COBIT (Control Objectives for Information and related Technology) y las hace aplicables y factibles para los clientes de Microsoft.

Podemos decir que MOF es una ampliación de ITIL y COBIT, el modelo de procesos MOF se divide en 4 bloques: Cambio, Funcionamiento, Soporte y Optimización donde cada apartado se ocupa de un aspecto del ciclo de vida del sistema:

Funcionamiento

El bloque funcionamiento asume todas las tareas necesarias para mantener un sistema en un estado operativo correcto, como, por ejemplo, efectuar copia de seguridad de los datos, supervisar el estado del servicio y la administración de directorios y seguridad. En este apartado se realizaran las tareas relacionadas con la solución, las tareas operativas cotidianas y recomendaciones de control y supervisión.

Soporte

El bloque de soporte se encarga de los problemas del sistema y la recuperación / solución de los mismos después de que se produzcan. Entre otras tareas, se puede mencionar la recuperación de servidores y servicios, el servicio de asistencia y el análisis y solución de los problemas. Tambien podemos encontrar tareas relacionadas con la compatibilidad y administración de problemas de redes y conexiones inalámbricas.

Optimización

El bloque de optimización se ocupa de cómo mejorar el servicio que ofrece el sistema. En esta sección encontrará información clave sobre funciones como el planeamiento de capacidades, la disponibilidad y la administración de continuidad.

Cambio

El bloque de cambio se encarga del planeamiento e implementación de los cambios del entorno. Engloba la administración de cambios y versiones y la administración de la configuración. Este apartado contiene el subconjunto más habitual de los cambios que puede efectuar en la infraestructura IT y una descripción de los procesos de cambios y versiones asociados a ellos. También se incluye la información que se debe mantener en un sistema de administración de la configuración.

Mas información

  • MOF 4.0 Oficial Site
  • Guide MOF 4.0
  • IT Pro Quick Start Kit
  • Getting Started with MOF 4.0 Guide
  • MOF Reliability Workbooks
  • MOF Management Reviews
  • Cross Reference ITIL V3 and MOF 4.0
  • MOF Service Mapping
  • MOF Action Plan: Release Readiness for Windows 7
  • Bridging from MOF Guidance to Microsoft Products
  • Proyectos Agiles con Scrum

    ProyectosAgiles.org es una web sin ánimo de lucro que tiene el objetivo de ayudar a trabajar en un mundo cambiante, donde la innovación, la competitividad, la calidad y la productividad son fundamentales, utilizando Scrum. Para ello, queremos que aquí puedas encontrar el mejor conocimiento en español sobre esta alternativa ágil de gestión de proyectos.

    Una web que no podeis dejar de visitar, para conocer el proceso de Scrum y sobretodo por su Base de Conocimiento Agil y para aprender como gestionar proyectos con Scrum.


    Beneficios de Scrum

    Apartado muy interasante para conocer los principales beneficios de Scrum:

    Artículos destacados de ProyectosAgiles.org

    Curso Gratis Scrum Dia a Dia

    Desarrollado a principios de los 90, los primeros origenes de Scrum provienen de los estudios realizados a finales de los 80 por empresas como Canon, HP, Honda, Xerox y otras que tenian la necesidad de desarrollar productos novedosos que debían salir al mercado en menos tiempo que sus productos anteriores para ganar cuota de mercado y adelantarse a la competencia. La primera formalización real de Scrum fue realizada por Schwaber y Sutherland, durante el OOPSLA del año 1995.

    ¿Que es realmente Scrum?

    Podemos definir Scrum como una metodología ágil empleada en el Desarrollo de Software y la Gestión de Proyectos TIC, especialmente indicada para proyectos en entornos complejos, donde se necesita obtener resultados pronto, los requisitos cambian constatemente o estan poco definidos y donde la innovación, competitividad, flexibilidad y productividad son fundamentales para conseguir cumplir los objetivos del cliente. De hecho, Scrum es un término del Rugby que quiere decir “melé”, cuyo significado es trabajar todos agrupados en equipo. Los actores que intervienen (scrum roles) los podeis ver en el grafico.

    Aunque existen muchos principios y ventajas de utilizar Scrum (ver Manifiesto Ágil), para mí, los 4 principios fundamentales son estos:

    • Importancia de los individuos más que los procesos y herramientas.
    • Entregar software que funciona más que documentación exhaustiva.
    • Colaborar con el cliente más que negociación de contratos.
    • Respuesta a los cambios más que seguimiento de un plan.

    Curso Dia a Dia con Scrum

    El Curso Día a día con Scrum lo podeis encontar en la web de DosIdeas, esta en castellano, y la verdad esta muy bien organizado y explicado para saber gestionar un proyecto por etapas mediante Scrum. El diagrama completo de scrum es este:

    En este curso veremos cómo se aplica Scrum, llevando un proyecto día a día con los distintos eventos y problemas que puedan ir apareciendo.

    • Concepto de Scrum y metodologías ágiles
    • Cómo comenzar un proyecto con Scrum
    • Preparación del equipo y artefactos necesarios
    • Tareas de gestión necesarias
    • Reuniones
    • Proceso de mejora
    • Gestión de Impedimentos e Imprevistos

    Introducción a Scrum

    Conceptos básicos de Scrum

    Sprint #0: Preparación

    El proyecto

    Elementos necesarios antes de empezar

    Sprint #1: Comienza el proyecto

    Día 1: planificación del Sprint

    Día 2: el primer Scrum

    Día 3: terminando las primeras tareas

    Día 15: fin del Sprint

    Sprint #2: Aumenta la velocidad

    Día 1: nuevo factor de foco y comienzo

    Día 10: el equipo finaliza su backlog

    Día 15: fin del Sprint con más historias

    Sprint #3: Impedimentos e Imprevistos

    Día 1: planificación del Sprint con mayor factor de foco

    Día 4: surge un impedimento

    Día 7: surge un imprevisto

    Día 9: atrasos

    Día 15: fin del Sprint e incumplimiento del compromiso

    Sprint #4: El equipo sigue avanzando

    Día 1: planificación del Sprint y ajuste del factor de foco

    Y el proyecto continúa…

    El proyecto sigue creciendo en funcionalidad, el equipo seguirá trabajando por Sprints, repitiendo y mejorando el proceso, junto al Dueño del Producto, hasta finalizar todas las entregas.

    Ejemplo de Sesión Scrum de Dos Ideas

    Para finalizar, aqui teneis una sesión de ejemplo ficticia de Scrum. Se listan las acciones y resoluciones que se toman en las distintas reuniones y momentos claves en un proyecto Scrum.

    link: Sesión de ejemplo Scrum

    LSSI en Proyectos TIC

    La LSSI o LSSICE significa Ley de Servicios de la Sociedad de la Información y del Comercio Electrónico y es una ley que fue publicada el 12 de Octubre de 2002 que pretende regular los servicios y las comunicaciones en Internet.

    La normativa legal de la LSSI depende del tipo de servicio que ofrece cada tipo de web:

    • Páginas web que permiten la compra / contratación de productos o servicios.
    • Empresas consideradas Prestadores de Servicios de Intermediación,  que ofrecen conexión y/o hospedaje, directorios y buscadores.
    • Páginas web de empresas, profesionales o particulares que generan ingresos, aunque no vendan productos o servicios, como ofertas, concursos, promociones, etc.

    Desde la web del Ministerio de Industria, Turismo y Comercio han publicado una guia con toda la infomación necesaria:

    Descargar guia: LSSI. La Ley de Internet Fácil en PDF

    Desde la web de Delitos Informaticos, destacan estos puntos importantes a tener en cuenta en cuanto a la presencia en Internet:

    • Nombre de dominio
    • Diseño y elaboración del sitio web
    • Publicidad
    • Protección de datos
    • LSSI
    • Protección de la marca
    • Seguridad informática
    • Sistemas de pago
    • Protege tu web: inscripción en el Registro de Propiedad Intelectual
    • Contratos informáticos

    Una lista mas detallada de las obligaciones que debe cumplir su proyecto TIC para cubrir la LSSI son las siguientes:

    • Estar legalmente capacitado para operar comercialmente
    • Informar sobre la identidad del comercio y comerciante
    • Informar sobre relaciones de transferencias con otros sitios web
    • Informar respecto al nombre de dominio y propietario
    • Informar al usuario de la recogida de sus datos personales LOPD
    • Consentimiento del interesado para la recogida de sus datos personales LOPD
    • Informar del uso de “cookies” si su aplicacion web las utiliza
    • Autorización previa para el envío de comunicaciones comerciales por vía electrónica
    • Autorización para comunicaciones comerciales, ofertas promocionales y concursos
    • Informar sobre el uso de datos personales para el envío de comunicaciones publicitarias
    • Informar sobre la validez y eficacia de los contratos celebrados por vía electrónica
    • Informar sobre las garantías de productos y servicios
    • Informar sobre los plazos de entrega
    • Informar sobre las politicas de devolución de productos
    • Informar sobre las politicas de devolución del dinero cobrado
    • Encriptar las transmisiones de datos mediante un sistema seguro
    • Disponer de un Servidor Seguro para las transacciones electrónicas
    • No debe recoger ni conservar los datos de las tarjetas de crédito o débito de los clientes para uso privado / interno.

    Otras recomendaciones importantes:

    • Informar sobre la propiedad intelectual de los contenidos de la web
    • Informar si dispone del servicio de Atención al Cliente
    • Informar si dispone del servicio de Logística
    • Informar si dispone de publicidad en la web
    • Informar de la limitación y exención de responsabilidad
    • Informar de la inserción de contenidos en la web por parte de los usuarios.

    Si quereis ampliar mas información, existe este libro “Todo sobre la LSSI y Comercio Electronico: Guia Legal Practica“, que podeis encontrar en Casa del Libro.

    Infracciones y Sanciones

    Para finalizar, aqui teneis las sanciones previstas por el incumplimiento de las obligaciones establecidas en la LSSI se califican como leves, graves y muy graves, imponiéndose en cada caso las siguientes sanciones:

    • LEVE: Multa de hasta 30.000 €
    • GRAVE: Multa de 30.001 € hasta 150.000 €
    • MUY GRAVES: Multa de 150.001€ hasta 600.000 €

    Bueno, pues hasta aqui la LSSI, espero que toda esta información aclare vuestras dudas y sea de utilidad en vuestros proyectos.

    LOPD en Proyectos TIC

    De la mano de Informatica64,  consultores expertos en legislación informática, planes de seguridad y analisis forense en entornos Windows, teneis disponible este fantástico libro gratuito publicado por Microsoft:

    El libro “La proteccion de datos personales en entornos Microsoft v.2.0”  es una edición revisada del primer manual, lanzado en 2002, con todas las novedades producidas en la LOPD en los últimos años. El libro está dirigido fundamentalmente a responsables de sistemas de información y responsables de seguridad de empresas y entidades, si bien también se utiliza como libro de texto en bufetes de abogados, clases de universidades, másters y ponencias relacionadas con la LOPD y la protección y privacidad de los datos, según explican desde Microsoft.

    Héctor Sánchez, director de Tecnología de Microsoft Ibérica, es el coordinador editorial y coautor del libro, junto a Chema Alonso y Juan Luis G. Rambla, de Informática 64; Antonio Soto, director de Solid Quality; David Suz Pérez, consultor de Microsoft Ibérica; José Helguero Sainz, economista, director de Helas Consultores y miembro de la Comisión de Seguridad de ASIMELEC; María Estrella Blanco Patiño, responsable de publicaciones de Helas Consultores; y Miguel Vega Martín, director de Marketing de IPS Certification Authority y miembro de la Comisión de Seguridad de ASIMELEC.

    Descarga Gratuita en formato PDF

    Libro “La proteccion de datos personales en entornos Microsoft v.2.0