Agile Testing

Recomiendo este Google Tech Talks presentado por Elisabeth Hendrickson sobre Agile testing. Cada vez son más los equipos de desarrollo que adoptan tecnicas “Agiles”. ¿Que es el testing ágil? en esta presentación Elisabeth Hendrickson comparte sus experiencias en como equipos de pruebas pueden ser ágiles.

Proporcionará una descripción de cómo las prácticas ágiles diferencian a las tradicionales y discute lo que significan esas diferencias para los equipos de testing.

+ Agile Testing Video

Descubre el TMM

TMM es la abreviación usada para Test Maturity Model. El TMM es un proceso de madurez del test que fue originalmente creado por el Illinois Institute of Technoloogy como guía para la mejora de procesos de testing y como complemento al CMM(i).

La estructura del TMM está basada en el CMM y en su fases, ya que consiste también en 5 niveles que reflejan el grado de madurez del test. Para cada nivel de madurez, hay definidas un número de procesos. Los cinco niveles del TMM ayudarán a una organización a determinar la madurez de sus procesos de test y a identificar los pasos a seguir para introducir las mejoras necesarias para lograr niveles mayores de madurez.

Los niveles de madurez son:
o Nivel 1 – Inicial: El test está sumido en un proceso caótico ó simplemente no hay test alguno.

o Nivel 2 – Definición: Se caracteriza por la utilización de técnicas básicas de test que identificarán si el software está de acuerdo con sus especificaciones. Estructuración del proceso de test, planificaciones y estrategias.

o Nivel 3 – Integración: Se caracteriza por el test está completamente integrado en el ciclo de vida del software y es reconocido a todos los niveles del modelo en V. El Plan de test está terminado, las estrategias han sido determinadas en función del previo análisis de riesgos basados en los requisitos.

o Nivel 4 – Gestión y Medición: El test es un proceso medido y cuantificado. La usabilidad es uno de los atributos de calidad utilizados en el test de software.

o Nivel 5 – Optimización, Prevención de defectos y control de calidad: Se caracteriza por mecanismos precisos para que el test pueda ser mejorado continuamente. En este nivel se utilizan procedimientos para seleccionar y evaluar herramientas de test.

Cada día los sistemas son más y más complejos, haciendo necesario que se tomen encuenta mejoras en la calidad de nuestros procesos para mejorar así la calidad final del producto. El modelo TMM nos proporcionará y proceso de desarrollo de software más eficiente y efectivo. Nuestro objetivo será a prevención y no en la detección.

En la web de la fundación TMM se puede encontrar muchísima documentación sobre el modelo TMM y algunos casos prácticos.

Referencias:
+ http
://www.tmmifoundation.org/

Reclutando Ingenieros de Pruebas

Introducción
En un sector tan competitivo como el tecnológico es difícil encontrar la persona correcta que se adapte a las necesidades que ese momento tiene nuestra organización. En muchas ocasiones nos pasamos semanas ó incluso meses buscando a la persona adecuada.

Pero, una vez que la tenemos delante nuestro ¿que le debemos preguntar?…Aquí podréis encontrar algunas preguntas que os pueden servir de base a la hora de entrevistar a un candidato para nuestra organización. Espero que se de ayuda…

Preguntas
1. Why did you ever become involved in QA/testing?

2. What is the testing lifecycle and explain each of its phases?

3. What is the difference between testing and Quality Assurance?

4. What is Negative testing?

5. What was a problem you had in your previous assignment (testing if possible)? How did you resolve it?

6. What are two of your strengths that you will bring to our QA/testing team?

7. How would you define Quality Assurance?

8. What do you like most about Quality Assurance/Testing?

9. What do you like least about Quality Assurance/Testing?

10. What is the Waterfall Development Method and do you agree with all the steps?

11. What is the V-Model Development Method and do you agree with this model?

12. What is the Capability Maturity Model (CMM)? At what CMM level were the last few companies you worked?

13. What is a “Good Tester”?

14. Could you tell me two things you did in your previous assignment (QA/Testing related hopefully) that you are proud of?

15. What methodologies have you used to develop test cases?

16. In an application currently in production, one module of code is being modified. Is it necessary to re- test the whole application or is it enough to just test functionality associated with that module?

17. Define each of the following and explain how each relates to the other: Unit, System, and Integration testing.

18. Define Verification and Validation. Explain the differences between the two.

19. Explain the differences between White-box, Gray-box, and Black-box testing.

20. Define the following and explain their usefulness: Change Management, Configuration Management, Version Control, and Defect Tracking.

21. What is the difference between a test strategy and a test plan?

22. Do you support automated testing? Why?

23. We have a testing assignment that is time-driven. Do you think automated tests are the best solution?

24. What is your experience with change control? Our development team has only 10 members. Do you think managing change is such a big deal for us?

25. How important is Change Management in today’s computing environments?

26. Do you think tools are required for managing change. Explain and please list some tools/practices which can help you managing change.

27. We believe in ad-hoc software processes for projects. Do you agree with this? Please explain your answer.

28. Are regression tests required or do you feel there is a better use for resources?

29. Our software designers use UML for modeling applications. Based on their use cases, we would like to plan a test strategy. Do you agree with this approach or would this mean more effort for the testers.

30. Tell me about a difficult time you had at work and how you worked through it.

Software Testing Life cycle

Normalmente, el testing está considerado como parte del Ciclo de Vida de Desarrollo de cualquier aplicación (Requisitos, análisis & diseño, implementación, testing y deployment), pero el testing, a su vez, tiene su propio ciclo de vida. Dependiendo de la organización, este ciclo puede tener más o menos fases, pero acontinuación comentaré las fases que son siempre comunes.

A grandes rasgo, podemos decir que el ciclo de vida del Software Testing incluye las siguientes fases:

1. Planificación.
2. Análisis
3. Diseño
4. Ejecución
5. Ciclos
6. Pruebas Finales e Implementation
7. Producción

Read more