jueves, 29 de marzo de 2012

Testing (Pruebas) en CMMI

Aquí hablaremos específicamente de las pruebas (testing) en un contexto de software y del modelo CMMI para Desarrollo (CMMI for Development, CMMI-DEV)

21 comentarios:

  1. RECIBI LA SIGUIENTE CONSULTA
    Donde estan las buenas prácticas de testing en el CMMI?
    RESPUESTA:
    Entiendo que te refieres al contexto de software.
    Usaré la palabra pruebas en vez de testing.
    Para pruebas unitarias, puedes revisar Technical Solution (TS), SP 3.1.
    Para pruebas de Integración, puedes revisar Product Integration (PI).
    Para pruebas funcionales, pruebas de sistema, pruebas de aceptación y/o pruebas de certificación puedes revisar las areas de proceso Verification (VER) y Validation (VAL).
    Si el énfasis es pruebas en un ambiente similar al de producción y probar para asegurar que el producto final es el esperado por el usuario entonces usa Validation (VAL).
    Adicionalmente en la página web http://www.sei.cmu.edu/cmmi/faq/cov-faq.html#MOD21 el SEI explica (esta es una traducción particular):

    Se proporcionan ejemplos de pruebas de sistema en la SP 1.1 de VER y en la SP 1.1 de VAL. Sin embargo, "pruebas de sistema" (system testing) no es un término usado en CMMI, pues los términos "sistema" (system) y "pruebas" (testing) pueden interpretarse de muchas formas.
    El término "sistema" no se usó en CMMI debido a sus múltiples interpretaciones entre diferentes disciplinas. Por razones de consistencia y claridad, en vez de "sistema" se han usado los términos "producto" y "componente de producto". Se usaron los términos "verificación" y "validación" en vez de "pruebas" porque (1) las pruebas pueden ser parte ya sea de la verificación o validación, y (2) las pruebas son sólo un método usado para verificación o validación.
    De modo que, para encontrar información acerca de "pruebas de sistemas" mejor buscar "verificación de producto" (product verification), "validación de producto" (product validation), "verificación de componente de producto" (product componente verification) y "validación de componente de producto" (product componente validation).

    ResponderEliminar
  2. Recibí consulta 20Octubre2009 19:57 ------

    Javier A. dijo...
    Como se podria institucionalizar un proceso de aseguramiento de la calidad en la etapa de construccion de software?, es decir, como reduciriamos el impacto al cambio de un equipo de trabajo que no tiene un esquema de pruebas adecuado?

    Respondí20Enero2010 -----------------------

    Primero aclaremos que aseguramiento de la calidad no es pruebas (testing). Es un error de concepto frecuente. Las actividades de pruebas (testing) son actividades de control de calidad no de aseguramiento de la calidad. Es un error llamar aseguramiento de la calidad a las actividades de pruebas (testing).

    Segundo, la palabra institucionalizar se refiere a hacer que los procesos de una organización se establezcan de forma que perduren en el tiempo y las personas lo hagan sin necesidad que los estén observando, porque ya han comprendido su valor y además el proceso está en mejora continua.

    Tercero, por lo anterior, en un proyecto en particular no podemos institucionalziar un proceso, la institucionalización de procesos toma tiempo, varios proyectos.

    Cuarto, si en un proyecto ya estás en la etapa de construcción de software (entiendo codificación) y no existe un proceso de pruebas, pues habrá que hacerlo cuanto antes. Comienza entendiendo que, en general, hay varios niveles de pruebas: pruebas unitarias, pruebas de integración, pruebas de sistema y pruebas de aceptación. Siempre deben haber estos niveles, existen muy pocas excepciones.

    Quinto, cómo reducir el impacto al cambio?
    Si te refieres a cambios en los requerimientos, pues la forma de reducir el impacto es tener iteraciones, puedes usar el RUP, Open Up, scrum, etc.
    Si te refieres a cambios en el equipo de proyecto, la forma de reducir el impacto es tener un proceso de inducción establecido, hacer que los nuevos integrantes trabajen en pares o hacer revisiones de pares de su trabajo a cargo de los más experimentados, hasta que los nuevos integrantes logren una productividad razonable.

    ResponderEliminar
  3. Recibí consulta 8Noviembre2009 19:31 -------

    Anónimo dijo...
    LA INFORMACION QUE BRINDA ES ALGO GENERAL, NO ESTA ESPECIFICADO CLARAMENTE.

    Respondí 30Enero2010 ------------------------

    Como comprenderás hay diversas consultas y la gran mayoría anónimas de modo que no sé a cuál información te refieres. Si me indicas sobre qué tema deseas información específica, con gusto podré ayudarte.

    ResponderEliminar
  4. RECIBÍ CONSULTA 4Febrero2010 11:25 -----------
    Anónimo dijo...
    Existe algún documento, checklist para evaluar en que estatus se encuentra el área de aseguramiento de la calidad de una empresa, me serviría muchisimo esta información.

    Como poder evaluar a que nivel o grado de cumplimiento de área de "Aseguramiento de calidad" cuenta una empresa.

    RESPONDÍ 12Febrero2010 ----------------------

    Imagino que preguntas respecto al CMMI, la respuesta es no. No existe un checklist así.

    Aseguramiento de calidad no es testing (pruebas). Es un error frecuente llamar a las actividades de testing o de pruebas aseguramiento de calidad.

    Aseguramiento de la calidad es revisar el fiel cumplimiento del proceso, según la descripción estándar del proceso y revisar que los productos de trabajo (entregables intermedios y finales) se producen siguiendo el proceso establecido.

    Segundo, ya sea que te refieras al Aseguramiento de la Calidad o al Testing, no hay algún checklist para evaluar el status en el que se encuentra el área de aseguramiento de la calidad en una empresa respecto al CMMI.

    Cuando se realiza una evaluación de procesos, la ISO 15504 establece como estándar que:
    (i) debe usarse un modelo de referencia para la evaluación, y
    (ii) debe usarse un método de evaluación documentado.

    Si usamos el modelo CMMI, podemos hacer evaluaciones SCAMPI para determinar el estado actual de un proceso de testing o de un proceso de aseguramiento de la calidad.
    La evaluación se realiza según el método SCAMPI, que es un método público que está en la página web del SEI. Lo primero que hay que hacer es elegir el modelo de referencia; CMMI-DEV (CMMI para Desarrollo) ó CMMI-SVC (CMMI para Servicios); luego mapear los procesos que queremos evaluar a las áreas de proceso pues lo que se evalúa es el grado de implementación de las áreas de proceso seleccionadas.
    Los posibles resultados pueden ser por ejemplo:
    . Si el proceso de Testing de la organización lo mapeamos a las áreas de proceso Verificación y Validación, un ejemplo de posible resultado es que Validación está en un nivel de capacidad 2 y/o que Verificación está en un nivel de capacidad 1.
    . El proceso de Aseguramiento de la calidad de la organización tiene un grado de cumplimiento del 45% de las prácticas exigidas para Aseguramiento de la calidad en un nivel de madurez 3.
    etc.

    Pero una evaluación así no se hace con un checklist. Existen checklists pero son de referencia y de ayuda propios de cada evaluador, no hay un checklist con las preguntas oficiales del SEI o del método SCAMPI A en base al cual se hace la evaluación. La evaluación se hace siguiendo el método SCAMPI. Hay 3 clases: SCAMPI A, B y C. Un SCAMPI A es mas riguroso y requiere más tiempo y recursos. Un Scampi B es emnos riguroso y por tanto requiere menos esfuerzo y tiempo. Finalmente un SCAMPI C puede hacerse en 2 días, es una evaluación a alto nivel, pero permite evaluar el enfoque del proceso que queremos evaluar respecto al modelo CMMI.

    Si salimos del alcance del CMMI y en realidad te refieres a Testing, si hay otros modelos que evalúan el estado actual del testing en una organización, por ejemplo Test Maturity Model Integration (TMMi).

    ResponderEliminar
  5. Buenos días mi pregunta es: el modelo CMMI es recomendable sólo para empresas medianas o grandes? qué opina usted? vale la pena intentarlo en una pequeña o cree que existen mejores alternativas que se ajustan mejor a esta realidad. Muchas gracias por su respuesta.

    ResponderEliminar
  6. Buenos tardes.
    Por favor quisiera saber que empresas brindan el servicio de acompañamiento en la implementación CMMI en el Perú?
    La misma empresa que me acompaña en el proceso de mejora puede evaluarme en SCAMPI A?.
    gracias!

    ResponderEliminar
  7. RECIBÍ CONSULTA 3 SEPT 2010 -----------------
    Buenos días mi pregunta es: el modelo CMMI es recomendable sólo para empresas medianas o grandes? qué opina usted? vale la pena intentarlo en una pequeña o cree que existen mejores alternativas que se ajustan mejor a esta realidad. Muchas gracias por su respuesta.
    RESPONDI 3 SEP 2010---------------------------

    Mi respuesta es que si es recomendable.
    Es un error frecuente creer que el CMMI es sólo para empresas medianas o grandes.
    El CMMI es apropiado para empresas pequeñas y muy pequeñas, tiene toda la flexibilidad necesaria para eso.
    He apoyado y he evaluado organizaciones de 4, 12 y 25 personas que han logrado niveles de madurez 2 y 3 y niveles de capacidad 2 en diversas áreas de proceso. De modo que es completamente factible.
    Reconozco que muchas personas en el mercado, algunas reconocidas, están en desacuerdo y esto se debe a:
    i. Su desconocimiento
    ii. Experiencias fallidas.
    El 25% de las organizaciones en el mundo que usan CMMI tienen menos de 25 personas.
    Si agregas al CMMI el Scrum com framework de procesos mejor aun.

    Si deseas más información puedes contactarme a david.arteaga@processconsulting.net

    ResponderEliminar
  8. RECIBI CONSULTA 3 SEP 2010---------------------
    Buenos tardes.
    Por favor quisiera saber que empresas brindan el servicio de acompañamiento en la implementación CMMI en el Perú?
    La misma empresa que me acompaña en el proceso de mejora puede evaluarme en SCAMPI A?.
    gracias!
    RESPONDI 3 SEP 2010----------------------------
    Respecto a la primera pregunta escribeme a david.arteaga@processconsulting y puedo darte informacion especifica.
    Respecto a la segunda pregunta la respuesta es si, es decir, la misma empresa que te capacita y acompaña puede realizar la evaluación SCAMPI A. No existe restricción al respecto. Existen diversas restricciones y requisitos, pero al respecto no hay.
    Lo que no está permitido es que el evaluador líder que liderará la evaluación SCAMPI A evalúe su mismo trabajo.
    Si tienes consultas específicas al respecto puedes contactarme a david.arteaga@processconsulting.net

    ResponderEliminar
  9. Estimado David, en el contexto de certificación CMMI, el auditor que tipo de registros de test de software podría pedir.
    Gracias

    Saludos
    Victor

    ResponderEliminar
  10. Estimado David, he estado revisando Scrum y mi pregunta es: ya que Scrum casi no pide documentación,es posible certificar con CMMI DEV usando esta manera de llevar los proyectos?

    Gracias

    Saludos

    Victor

    ResponderEliminar
  11. Estimado David, en una respuesta tuya este párrafo:
    "Si te refieres a cambios en el equipo de proyecto, la forma de reducir el impacto es tener un proceso de inducción establecido, hacer que los nuevos integrantes trabajen en pares o hacer revisiones de pares de su trabajo a cargo de los más experimentados, hasta que los nuevos integrantes logren una productividad razonable."
    De aquí algunas preguntas:
    1. De que me sirve que los nuevos integrantes trabajen en pares?
    2. He visto que las metodologías ágiles proponen trabajar en pares, sabes cual es la ventaja?

    Gracias

    Saludos


    Víctor A.

    ResponderEliminar
  12. RECIBÍ CONSULTA 29Marzo2012 -------------------------------------------------
    Estimado David, en el contexto de certificación CMMI, el auditor que tipo de registros de test de software podría pedir. Gracias Saludos Victor
    RESPONDÍ 29Marzo2012 --------------------------------------------------------
    Hola,
    En general:
    1. Planes de prueba.
    2. Casos de prueba.
    3. Procedimiento de prueba.
    4. Resultados de las pruebas.
    5. Aceptación o conformidad que las pruebas han terminado y se han corregido todos los errores que deben corregirse.

    No tienen que ser 5 registros o documentos diferentes, ni tienen que ser documentos. Es posible implementar todo con herramientas que automatizan y apoyan la realización de actividades de testing.

    Adicionalmente, cuáles registros se revisan depende del nivel de madurez o si se usa la representación continua las áreas de proceso a evaluar.

    ResponderEliminar
  13. RECIBÍ CONSULTA 29Marzo2012 -------------------------------------------------
    Estimado David, he estado revisando Scrum y mi pregunta es: ya que Scrum casi no pide documentación,es posible certificar con CMMI DEV usando esta manera de llevar los proyectos? Gracias Saludos Victor
    RESPONDÍ 29Marzo2012 --------------------------------------------------------
    Hola!
    Te sugiero que leas la Guía del Scrum (Scrum Guide) es la guía oficial del Scrum. Allí dice lo contrario a lo que dices "ya que Scrum casi no pide documentación", esto es falso.
    El Scrum Guide dice: "... (el Scrum) funciona bien como un contenedor de otras técnicas, metodologías y prácticas".
    Es decir, el Scrum no es una metodología que abarca todas las actividades del ciclo de vida de desarrollo y/o mantenimiento de software, mas bien debe usarse como marco de referencia que contiene a la metodología de trabajo que uses.

    El Scrum es un marco de referencia que abarca la gestión de requerimientos y parcialmente la gestión de proyectos.

    Existen diversas empresas que usan el Scrum como el marco de referencia para su gestión de requerimientos y gestión de proyectos y que han logrado niveles de madurez del 2 al 5. Por ejemplo (DBserver, en Brasil, nivel de madurez 2, Systematics en Dinamarca y Atlantic en Brasil, nivel de madurez 5).

    Jeff Sutherland, creador del Scrum, entre otros, recomienda que el Scrum debe complemetarse con el CMMI. Puedes leerlo en la versión preliminar de su libro o compendio de artículos en su página web.

    ResponderEliminar
  14. RECIBÍ CONSULTA 29Marzo2012 ----------------------------------------------
    Estimado David, en una respuesta tuya este párrafo: "Si te refieres a cambios en el equipo de proyecto, la forma de reducir el impacto es tener un proceso de inducción establecido, hacer que los nuevos integrantes trabajen en pares o hacer revisiones de pares de su trabajo a cargo de los más experimentados, hasta que los nuevos integrantes logren una productividad razonable." De aquí algunas preguntas: 1. De que me sirve que los nuevos integrantes trabajen en pares? 2. He visto que las metodologías ágiles proponen trabajar en pares, sabes cual es la ventaja? Gracias Saludos Víctor A.
    RESPONDÍ 29Marzo2012 ------------------------------------------------------

    Hola,

    1. De que me sirve que los nuevos integrantes trabajen en pares?
    Respuesta:
    Es una forma de capacitarse o reforzar la capacitación en la forma de trabajo (procesos) en una organización.
    2. He visto que las metodologías ágiles proponen trabajar en pares, sabes cual es la ventaja?
    Respuesta:
    Entiendo que te refieres al Extreme Programming, que establece como uno de sus principio la programación en pares. Aquí se refiere a la programación, no al testing.
    Las ventajas de la programación por pares son múltiples:
    i. Aumenta la calidad del código, refiriendonos a sin errores.
    ii. Aumenta la eficiencia del tiempo invertido en código. Es toma un poco mas de tiempo explicarlo, pero si lo mides es una conclusión.
    iii. Produce código mas fácil de mantener.
    Entre otros.

    ResponderEliminar
  15. Buenas tardes, soy ing. de sistemas, trabajo en el area de QA .. quisiera estudiar CMMI porque me interesa mucho lo que es procesos y quisiera aprender pero estuve buscando cursos y piden como requisitos que las personas que estudien el curso de CMMMI para desarrollo de software sean jefes de proyectos o que pertenezcan al grupo de desarrollo y mantenimiento de software .. ud. me recomendaría llevar el curso ya que no tengo experiencia en ese ámbito?

    ResponderEliminar
  16. Estimado David, tengo una duda con respecto al alcance de "aseguramiento de la calidad de producto" con "testing".

    Gracias

    ResponderEliminar
  17. RECIBÍ CONSULTA 11-05-2012 -------------------------------------------------
    Estimado David, tengo una duda con respecto al alcance de "aseguramiento de la calidad de producto" con "testing". Gracias en Testing (Pruebas) en CMMI
    RESPONDÍ 14-05-2012

    Hola!
    En el contexto del CMMI el aseguramiento de la calidad no incluye ni es testing (pruebas de software).
    En el contexto del CMMI, el aseguramiento de la calidad significa revisar el cumplimiento de los procesos, estándares y procedimientos establecidos por la organización para los proyectos.
    A pesar de esto, con frecuencia encuentro a empresas que a su área de testing le llaman aseguramiento de la calidad. Sin embargo, si estás implementado CMMI no es obligatorio cambiar el nombre del área, si se puede hacer mejor para evitar confusiones pero no es obligatorio.
    Si tu área de testing se llama aseguramiento de la calidad, entonces cuando implementes el área de proceso PPQA del CMMI, a esta función de PPQA se le puede llamar revisión de procesos.

    ResponderEliminar
  18. Hey, nice site you have here! Keep up the excellent work!













    CMMI Consulting in Chennai

    ResponderEliminar
  19. Estimado

    Una consulta respecto a las actualizaciones de sistemas operativos y bases de datos. Cuando existe una actualización disponible para un SO que se encuentra en producción y soporta aplicaciones core del negocio, es necesario hacer pruebas de testing a estas actualizaciones? que dicen las buenas prácticas respecto a estos casos ???..

    Gracias

    ResponderEliminar
  20. RECIBÍ CONSULTA 17Octubre2012 ---------------------------------------------
    Estimado Una consulta respecto a las actualizaciones de sistemas operativos y bases de datos. Cuando existe una actualización disponible para un SO que se encuentra en producción y soporta aplicaciones core del negocio, es necesario hacer pruebas de testing a estas actualizaciones? que dicen las buenas prácticas respecto a estos casos ???.. Gracias
    07Enero2013 ---------------------------------------------------------------

    Hola!
    En general, sin más datos, la respuesta es si.
    Lo correcto es evaluar el impacto de la nueva versión del sistema operativo, el impacto de la nueva versión de la base de datos y el impacto conjunto de ambos nuevos elementos en las aplicaciones.
    En función al impacto se debe decidir qué y cuánto hay que probar.
    Generalmente una nueva versión de algún producto software tiene una descripción, transforma esa descripción en una lista de los cambios que trae esa nueva versión y construyes una matriz para decidir cuánto hay que probar. Por ejemplo:
    La nueva versión de SO trae cambios: c1 y c2.
    La nueva versión de BD trae cambios: h1, h2 y h3.
    Entonces para cada aplicativo evaluar lo escenarios usando la técnica de pruebas ortogonal y tienes un conjunto mínimo de escenarios a probar.
    Luego para cada escenario debes evaluar el impacto y proponer el mejor conjunto de casos de prueba. El impacto de un cambio o conjunto de cambios en un aplicativo depende del cambio mismo.
    Por ejemplo, si la nueva versión de la BD amplía el tamaño del tipo de datos int, entonces hay que evaluar cómo impacta esto en el aplicativo. Sólo quien conoce el aplicativo podrá evaluar, dónde se usan tipos de datos int, en cuáles pantallas, transacciones, procesos batch, etc. y decidir cuán intensivo deben ser las pruebas de acuerdo a la criticidad de la pantalla, transacción, proceso batch, etc.

    Suerte!

    ResponderEliminar
  21. RECIBÍ CONSULTA 6/5/2012 ---------------------------------------------------
    Buenas tardes, soy ing. de sistemas, trabajo en el area de QA .. quisiera estudiar CMMI porque me interesa mucho lo que es procesos y quisiera aprender pero estuve buscando cursos y piden como requisitos que las personas que estudien el curso de CMMMI para desarrollo de software sean jefes de proyectos o que pertenezcan al grupo de desarrollo y mantenimiento de software .. ud. me recomendaría llevar el curso ya que no tengo experiencia en ese ámbito?
    RESPONDI 21/5/2013 --------------------------------------------------------

    Hola, para tomar el curso del CMMI Institute "Introducción al CMMI para Desarrollo" no hay requisito alguno. Puedes tomarlo sin problema.

    Saludos.

    ResponderEliminar