4. ¿Qué es "Control de Calidad de Software"?
El control de calidad está orientado a la prevención
Fiabilidad, Eficiencia, Seguridad, f
acilidad de mantenimiento y
(adecuado) tamaño.
5. ¿Por qué es a veces difícil para las organizaciones
tomar en serio la garantía de calidad?
Solución: alta visibilidad
Prevención: baja visibilidad.
Los problemas de calidad de software, a
menudo, no son tan evidentes en contraste con
el caso de otras industrias
17. Aumento
de la
calidad
Arranque en
Fase de diseño
100% TC
ejecutados
Menor
esfuerzo
Independencia
de GUI
Re-ejecuciones
Más casos de
prueba en
menos tiempo
En todas las
fases
24. Ciclo habitual en la ejecución de proyectos
Diseño y Ejecución de Pruebas MANUALMENTE
Análisis de
negocio
Macro
Diseño
Micro
Diseño
Desarrollo Pruebas
Casos de Uso
Casos de Prueba
Alto Nivel Casos de Prueba Detallados
Ejecución de
Pruebas
HLTC1
HLTC n
…
Req.
DTC1
DTC2
DTC n
26. Otras herramientas del mercado vs.
Casos de Uso
Casos de Prueba
Alto Nivel
Casos de
Prueba
Detallados
Ejecución
de Pruebas
Análisis de
negocio
Macro
Diseño
Micro
Diseño
Desarrollo Pruebas
Casos de Uso
Casos de Prueba
Alto Nivel
Casos de
Prueba
Detallados
Ejecución
de Pruebas
Casos de Prueba
Detallados Ejecución de pruebas
AUMENTO DE LA CALIDAD
27. Integración
con IBM
Rational
Reportes
automáticos
Más
Calidad, Menos
Recursos
• Más casos de prueba en
menos tiempo
• Satisfacción usuarios
• Menor dependencia de
los usuarios clave
Compromisos
cumplidos
• Time To Market
• En tiempo y forma
Fiabilidad
• Eliminamos
margen de ERROR
HUMANO
• Pruebas de
REGRESIÓN
VENTAJAS
30. FasTest Herramienta Testing Testing Manual
¿Cómo se generan los Test Scripts? Excel Grabación Documentación
¿Cuándo se crean los Test Scripts?
En paralelo al Desarrollo Después de desarrollo mínimo En paralelo al Desarrollo
Conocimientos necesarios para crear
los Test Scripts
Excel Herramienta + Programación No aplica
Dependencia de interfaces de usuario Ninguno Alta Ninguno
Impacto (tiempo) por cambios en
Desarrollo
Muy bajo Alto Muy bajo
Conocimientos necesarios de
herramienta Testing
Ninguno Alto Ninguno
Reconocimiento Dinámico de Objetos
GUI
OOTB Programado Ninguno
Mantenimiento de los Test Scripts Poco coste Costoso Poco coste
Evidencias de Pruebas Generadas Automatizado Automatizado Manual
Evidencias de Pruebas Ejecutadas Si Si No
Ejecución Desatendida Si Si No
La calidad del software se refiere a dos nociones relacionadas pero distintas que existen, siempre que se define calidad en un contexto de negocio.Calidad funcional del software : refleja lo bien que cumple con o se ajusta a un modelo determinado, basado en requerimientos funcionales o especificaciones;Calidad estructural del software : se refiere a la forma en que cumple con los requisitos no funcionales que soportan la entrega de los requerimientos funcionales, como la robustez, la facilidad de mantenimiento, el grado en que el software se ha producido correctamente.El control de calidad de Software implica todo el proceso de desarrollo, seguimiento y mejora continua, asegurándose de que se cumple todo lo acordado en los procesos, las normas y los procedimientos que se siguen, y que los problemas se encuentren y se resuelvan. La calidad estructural se evalúa mediante la análisis de la estructura interna del software, de su código fuente, a nivel de unidad, a nivel de tecnología y a nivel de sistemas, o sea si su arquitectura está de acuerdo con los principios de la arquitectura de software.Las cinco características estructurales deseables necesarias para que un trozo o programa de software proporcione valor de negocio son: Fiabilidad, Eficiencia, Seguridad, facilidad de mantenimiento y (adecuado) tamaño.La calidad funcional normalmente se aplica y se mide a través de las pruebas de software.
La solución de problemas es un proceso de alta visibilidad, la prevención de problemas es de baja visibilidad.Este es un problema en cualquier negocio pero es particularmente difícil en la industria del software. Los problemas de calidad de software, a menudo, no son tan evidentes en contraste con el caso de una industria que fabrica productos tangibles, como automóvilesLos costes de no calidad son difíciles de medirExiste dificultad para definir las causas de la no calidad.
Un departamento interno de control de calidad no sólo exige una evidente inversión, sino que también existen gastos ocultos que pueden elevar el precio global del proceso de control de calidad. Los costos que las empresas deben considerar a la hora de constituir un equipo interno de QA son:Costes salariales (reclutamiento, salario, impuestos, seguros, etc)Beneficios a los empleadosTI y los costos de infraestructura (ordenador, fax, software (incluyendo certificados), Internet, infraestructura de red, helpdesk, mantenimientos, teléfono, correo electrónico y alojamiento web, correo de voz, etc)Gastos de formaciónGastos de oficina (oficinas, áreas comunes, mobiliario, seguro de responsabilidad civil, material de oficina, papel, tóner, etc)En última instancia, los clientes se encuentran que externalizar el QA llega a ser más competitivo - por no hablar de que la subcontratación puede reducir los dolores de cabeza de gestión de personal y libera tiempo para perseguir otros objetivos de negocio.
Independientemente del alcance y la frecuencia de las necesidades de pruebas de un proyecto, a menudo es rentable y supone ahorro de tiempo contratar a un equipo independiente de profesionales de control de calidad para hacer el trabajo. La subcontratación del QA ahorra a las empresas costes excesivos o inesperados y tiempo que, de otra manera, se gastaría en la creación y mantenimiento de un equipo cualificado de ingenieros de control de calidad.
Hay dos opciones naturales para implementar la función de garantía de la calidad del software (SQA). Un enfoque mantiene independiente el control de calidad del equipo de desarrollo , es decir, el equipo de control de calidad reporta directamente al cliente. Alternativamente, QA puede ser parte del equipo de desarrollo existente. En este caso los informes de los equipos de control de calidad son para el director del proyecto de desarrollo, que tiene la última palabra en todas las cuestiones.SQA es una disciplina compleja que requiere del adecuado proceso organizativo y la experiencia. En primer lugar, deben participar los perfiles adecuados. Pensar que un perfil especializado en desarrollo de software también es adecuado para la realización de las actividades de control de calidad es un error común que puede costar muy caro. El desarrollo y los procesos de control de calidad son totalmente diferentes y requieren diferentes habilidades y competencias, que generalmente, no se encuentran en una sola persona.Por otra parte, sólo un equipo de control de calidad independiente tiene la capacidad para desarrollar todas las habilidades y competencias necesarias. Este conocimiento se obtiene mediante pruebas de muchos productos, mediante la mejora continua de los procesos y procedimientos de control de calidad, y con la adquisición y desarrollo de las herramientas pertinentes. Para los clientes que nunca han probado el control de calidad independiente, trabajar con el equipo de profesionales de AUTANApuede ser la forma más fácil de iniciar y evaluar los posibles beneficios para el negocio.
Nuestra experiencia en la industria indica, claramente, que los equipos de control de calidad independientes ofrecen mejores resultados y que con ellos el cliente siempre obtiene una imagen precisa la calidad del software. Además, el control de calidad independiente se centra en poner de manifiesto todos los problemas lo antes posible, en contraste con la situación de control de calidad integrada, cuando el director del proyecto de desarrollo puede ser demasiado optimista sobre el estado real del proyecto. Con demasiada frecuencia, el enfoque integrado da lugar a problemas ocultos que aparecen en las etapas finales de desarrollo de productos o, incluso, después de la liberación del producto. Necesidad de mayor Transparencia.Se necesitan equipos especializados con las habilidades y competencias adecuadas.Se debe establecer una mejora continua de procesos.Se debe establecer un riguroso control de calidad:Reducción de no conformidadesReducción de los costes de no calidadEste enfoque proporciona los mejores resultados desde el principio, sin necesidad de esperar a final del desarrollo y el crecimiento del equipo interno dedicado al proyecto.AUTANA invierte continuamente en la mejora de procesos y la capacitación del personal y seleccionará las mejores herramientas disponibles en el mercado con el fin de proporcionar la más alta calidad de servicio y de mantener la reputación de nuestra empresa como un proveedor de control de calidad fiable.
El resultado es que no se aprovechan todas las capacidades ofrecidas por herramientas. Al final, se utilizan exclusivamente para las pruebas básicas de regresión, o para los “sanitychecks”Hemos desarrollado un Framework basado en Java que extiende las capacidades de IBM RationalFunctionalTester
Es indiscutible que la automatizaciónde las pruebas funcionales es imprescindible para asegurar la calidad de cualquier implementación compleja – especialmente en Siebel - pero siempre han existido dudas sobre la posibilidad de automatizar el 100% delas pruebas con éxito, por los siguientes motivos:El proceso de grabación de scripts funcionales – con cualquier herramienta de Testing Funcional del mercado - está totalmente ligado a los interfaces de usuario. Esto significa que se debe de disponer de un mínimo avance en el Desarrollo antes de poder comenzar a diseñar/grabar los scripts de automatización.Los retrasos habituales en el Desarrollo también retrasan el arranque de la fase de Testing. Esto significa una pérdida de dinero para el Cliente Final y para el Proveedor de Testing ya que no se ejecutarán todas las pruebas estimadas y, por lo tanto, no se asegura la calidad del Software al 100%.Cualquier cambio en el desarrollo de los interfaces de usuario impacta en el mantenimiento de los scripts de las pruebas automatizadas. Supone una inversión adicional importante porque será necesario modificar los scripts existentes o volver a grabar el escenario por completo para adaptarlos a los cambios en el software.En el caso de herramientas como RationalFunctionalTester, o HP Quick Test Pro, se requiere experiencia avanzada en la utilización de las mismas, además de conocimientos de programación en Java, Visual Basic o C.El resultado es que no se aprovechan todas las capacidades ofrecidas por herramientas como RFT o QTP. Al final, se utilizan exclusivamente para las pruebas básicas de regresión, o para los “sanitychecks” – no se validarán por tanto todos los requisitos de los procesos de negocio. Con Fastestse pueden automatizar con seguridad el 100% de los casos de prueba, con todas las combinaciones posibles, mediante sencillos comandos en excelEs independiente de la GUI, ya que accede directamente a los objetos del repositorio de Siebel, sin grabación de scripts por pantallaLos retrasos en desarrollo no afectarán sensiblemente ya que los objetos del repositorio seguirán siendo sustancialmente los mismosLos cambios en el desarrollo igualmente afectarán en menor medida al ser indenpendientes de la GUINo son necesarios conocimientos de programación, el keyword-driven usa comandos sencillos e intuitivos
Simplificamospor completo el modo en el que se diseñan, mantienen y ejecutan las pruebas. ¿Cómo? Introduciendo un nuevo concepto: Keyword-DrivenAutomatedTesting.Mediante este nuevo concepto, aportamos un ahorro en TIEMPO y en RECURSOS.
No existe un proceso de grabación de scripts. Eliminamos la necesidad de contratar Testers que poseen experiencia con una herramienta de Testing en concreto. En vez de grabar y mantener los scripts generados por las herramientas actuales, en nuestro caso el input para las pruebas automatizadas son Test Cases Automatizados. Sólo hace falta conocer una serie de comandos intuitivos, saber rellenar una Hoja de Cálculo, o saber seguir las instrucciones de un asistente. Eliminamos la necesidad de conocer lenguajes de scripting.Enlugar de depender de Testers para programar y ejecutar los scripts, nuestro sistema arranca automáticamente con un solo “click” e interpreta los comandos secuenciales que se introducen en Hojas de Cálculo o en tablas de BBDD. Es un sistema inteligente e independiente de equipos de Testing.Genera reportes automáticos con los resultados
La creación de nuestros Test Cases Automatizados puede comenzar en paralelo a la fase de Diseño Técnico. No esnecesariodisponer de un interfaz de usuarioparaempezar a diseñarlaspruebasautomatizadas.Aseguramos la posibilidad de ejecutar el 100% de los Test Cases estimados con menosesfuerzo manual.La creación de nuestros Test Cases Automatizados no requiere expertise en lenguajes de programación o en herramientas de Testing. El proceso de diseño y mantenimiento es más ágil, más sencillo : se requieren menos recursos.Los cambios habituales en los interfaces de usuario no nos afectarán! Disminuimos la inversión en tiempo para modificar o mantener los Test Cases AutomatizadosLas pruebas se pueden ejecutar una y otra vez, indefinidamente (pruebas de regresión y sanitychecks)Se pueden automatizar las pruebas de cualquier fase (UnitTest, SystemTest, IntegratedTest, UserAcceptanceTest)En consecuencia, se puedenejecutarmáscasos de prueba en menostiempo, con menosrecursos. Estoredundará en un aumento de la calidaden lasentregas del software, ahorrandotiempo y dinero.
Ahorro endiseño, porque se hace en paralelo al diseño técnico, con keyword-driven intuitivo, independiente de la interfaz de usuarioAhorro enmantenimiento, al ser independiente de la interfaz de usuarioAhorro en laejecución, al ser automática, con un sencillo clickAhorro enrecursos, al necesitarse menos gente para la ejecuciónReducción de no conformidades, al ser usado desde prueba unitaria, aumentando la calidad en la entregaEn suma, se reduce el coste de la fase de testing, y el coste (más difícil de medir) de la no calidad (rehacer código, rehacer pruebas, retrasos en las entregas, penalizaciones, …)
Ahorro endiseño, porque se hace en paralelo al diseño técnico, con keyword-driven intuitivo, independiente de la interfaz de usuarioAhorro enmantenimiento, al ser independiente de la interfaz de usuarioAhorro en laejecución, al ser automática, con un sencillo clickAhorro enrecursos, al necesitarse menos gente para la ejecuciónReducción de no conformidades, al ser usado desde prueba unitaria, aumentando la calidad en la entregaEn suma, se reduce el coste de la fase de testing, y el coste (más difícil de medir) de la no calidad (rehacer código, rehacer pruebas, retrasos en las entregas, penalizaciones, …)
Con el mismocostejornadas/hombre, con Fastest se aumenta un 333% los casos de pruebaque se puedenejecutar
Para ejecutar el mismonúmero de casos de prueba, el coste se reduce en un 70%
Con Fastest conseguimosaumentar el número de casos de pruebaejecutadosreduciendo el coste
Fases habituales en los proyectos (no se han incluido las fases posteriores de capacitación, Pase a Producción, Garantía, etc)Durante la fase de macro diseño (diseño funcional), se elaboran los casos de prueba a alto nivel (HighLevelTestCases)Durante la fase de micro diseño (diseño técnico), se elaboran en detalle los casos de prueba (DetailedTestCases).Cambios en el desarrollo impactarán en los casos de prueba diseñados.La ejecución de las pruebas comenzará una vez estén listos los desarrollos y la interfaz de usuario.
Con otras herramientas de automatización:Si optamos por una herramienta de automatización de pruebas del mercado, no podemos empezar a diseñar los casos de prueba detallados hasta que la interfaz de usuario esté lista (el script de automatización consiste en la grabación de la prueba en la pantalla, es decir, se necesita la interfaz de usuario).El desarrollo tiene que estar avanzado para poder automatizar pruebas (interfaz de usuario necesaria)Cambios en el desarrollo afectarán a los scriptsCualquier cambio en la interfaz de usuario afectará a los scripts automatizados, que tendrán que ser adaptadosAlto coste de mantenimiento de los scriptsLa ejecución de las pruebas sufrirá retrasosCon FASTEST:Los DTC se pueden empezar a programar en fase de diseño técnicoLa ejecución de las pruebas puede comenzar tan pronto esté listo el desarrollo (se pueden automatizar pruebas unitarias)Los cambios en la interfaz de usuario no nos afectaránSe puede adelantar la ejecución de las pruebas, desde la fase de pruebas unitariasLos cambios en la GUI no requieren cambiar el test case automatizadoEl impacto de los cambios en desarrollo es menor.Las pruebas se pueden ejecutar más veces, durante más tiempo, sin coste adicionalTodo al final redunda en un Aumento de la calidad
Se integra con RationalQuality Manager:Diseño Centralizado de los Escenarios de Pruebas.Ejecución Centralizada de las Pruebas.Monitorización y Reporting Centralizado.Gestión de Defectos Centralizado.Reportes:Genera automáticamente los resultados en formato HTML, Word.Genera automáticamente las evidencias de las pruebas ejecutadas (configurable).Más Calidad, menos Recursos:Mayor número de casos de prueba en menor tiempoMenosrecursoshumanosnecesariosReducción de incidenciasEntregas más fiablesEficiencia de la aplicaciónSatisfacción de los usuariosMenosnecesidad de soportedurante la ejecución de pruebas UATSe reduce la dependencia de los usuarios en las UAT:Intervienen en el último momento para validar los casos de uso (ya vienen bien probados desde fases anteriores con lo que ya no fallarán). Se reduce el tiempo de dedicación requerida por los usuarios clave ya que se pueden realizar las pruebas uat de manera automática.Cumplimiento de los compromisos planificados en tiempo y formaReducción del time-to-market de los cambiosevolutivosFiabilidadPosibilidad de realizar sin esfuerzo PRUEBAS DE REGRESIÓNMayor fiabilidad: eliminamos el margen de error humano.Los casos de prueba se diseñan una vez y se ejecutan “N” veces automáticamente.
REDUCCIÓN DE COSTESAUMENTO DE LA CALIDAD
A partir de Siebel 8Reconoce objetos HTML y objetos SiebelSe puede extender el Framework para reconocer objetos de otras tecnologías.