Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PRUEBAS DE SOFTWARE
REVELÓ
LIBRO DE ENTRENAMIENTO
SEGUNDA EDICION
www.test-institute.org
Dedicación
A todos los estudiantes del International Software Test Institute™, gracias por inspirarnos,
mantenernos enfocados y asegurarnos de que hacemos todo lo posible para ayudarlos a
crecer en su carrera con sus habilidades y conocimientos. Sin usted, su compromiso y su leal
apoyo, International Software Test Institute™ no podría llegar a donde está hoy.
Machine Translated by Google
BIENVENIDOS
¡Hola! Soy Yeliz. Por lo tanto, escribimos para usted Software Testing Revealed
y lo trajimos para su servicio.
Me encanta que se tome su tiempo para leer su libro Pruebas
de software. Quiero compartir brevemente con usted por qué Estamos absolutamente seguros de que Software Testing
queríamos escribir este libro para usted y cómo puede Revealed lo hará competente en las pruebas de software, por
aprovecharlo al máximo. lo que tendrá una excelente oportunidad de amar las pruebas
de software y seguir disfrutando de los beneficios tangibles de
En el contexto de nuestro programa de certificación de Pruebas ser un profesional de las pruebas de software.
de software, realizamos una investigación exhaustiva en el
espacio educativo de Pruebas de software.
Tome un café para disfrutar y un poco de papel para tomar
La conclusión fue: ¡Fallamos en encontrar un solo libro de texto sus notas, y pase un rato tranquilo para leer su libro de
que sinceramente pudiéramos recomendar a nuestros Pruebas de software.
estudiantes!
Luego, tendrá una gran comprensión sobre el dominio de
Hablamos con nuestros estudiantes exitosos y descubrimos Pruebas de software y estará preparado para aprobar su
que casi ninguno de los libros de pruebas de software en el examen de certificación de Pruebas de software. ¡Estará listo
mercado realmente podría ayudarlos a hacer una entrada sin para ofrecer excelentes productos y servicios a sus clientes y
problemas a las pruebas de software. Una cantidad significativa empleadores y construir su brillante carrera y futuro!
de libros de pruebas de software en el mercado afirman que
cubren todos los detalles de las pruebas de software, pero lo
que no dicen es que no tienen un contenido comprensible, Yeliz Obergfell
claro y lógico para ayudar a sus lectores a comprender y, lo Vicepresidente - Experiencia Estudiantil
que es más importante, a amar las pruebas de software. ! Instituto Internacional de Pruebas de Software™
6
Machine Translated by Google
International Software Test Institute™ es un instituto Programas de Certificación de Pruebas de Software de otras
independiente que ayuda a organizaciones y profesionales a Entidades de Certificación con ánimo de lucro.
acreditarse con programas de certificación de pruebas de
software válidos y de renombre mundial y demostrar su International Software Test Institute™ tiene como objetivo
competencia en el dominio de pruebas de software. eliminar las barreras impuestas a los profesionales de pruebas
Capacitamos a los profesionales de todo el mundo para que de software en los mercados desarrollados y emergentes al
construyan sus carreras y a las empresas para que creen y evitar que paguen tarifas irrazonables por los cursos de
vendan sus productos y servicios sobresalientes. capacitación en el aula de pruebas de software y los exámenes
de certificación de pruebas de software antes de que
Sus Programas de Certificación Accredited Software Tester, certifiquen sus conocimientos en pruebas de software.
Accredited Software Test Manager y Accredited Software Test
Automator han demostrado su aceptación y reputación en Además, no dude en consultar "¿Qué hace que sus programas
todo el mundo al ser la elección de más de 349.000 de certificación sean los mejores de la industria?" sección en
profesionales de pruebas de software en 143 países. nuestro www.test-institute.org portal web para leer por qué
nos desempeñamos y le servimos mucho mejor que nuestra
competencia.
La prueba de software es un proceso abierto que se puede
combinar con otros procesos y marcos de ingeniería de International Software Test Institute™ ofrece 3 importantes
software y, sin embargo, antes de que se estableciera el programas de certificación de pruebas de software en línea
International Software Test Institute™, no solía haber una que están diseñados por nuestro consorcio de renombrados
forma razonable para que los profesionales de prueba de líderes empresariales y personas, entrenadores, mentores,
software como usted obtuvieran certificaciones de prueba de expertos y autoridades de las principales industrias.
software y probaran su competencia en el dominio de pruebas Puede consultar sus programas de certificación de pruebas
de software. Los profesionales de pruebas de software de software en esta lista de certificaciones de pruebas de
tuvieron que pagar costosas tarifas por el software.
7
Machine Translated by Google
Introducción a las pruebas de software miles de líneas de código y corregir un error no es una tarea
fácil. Nunca se sabe que al corregir un error, puede introducir
otro error sin saberlo en el sistema.
Las pruebas de software no son más que un arte de investigar
el software para garantizar que su calidad bajo prueba esté
en línea con los requisitos del cliente. Las pruebas de
software se llevan a cabo de manera sistemática con la
intención de encontrar defectos en un sistema. Es necesario
para evaluar el sistema. A medida que avanza la tecnología,
vemos que todo se digitaliza. Puede acceder a su banco en
línea, puede comprar desde la comodidad de su hogar y las
opciones son infinitas.
¿Se ha preguntado alguna vez qué pasaría si estos sistemas
resultan defectuosos? Un pequeño defecto puede causar una
gran pérdida financiera. Es por esta razón que las pruebas
de software ahora están emergiendo como un campo muy
poderoso en TI.
8
Machine Translated by Google
9
Machine Translated by Google
tecnologías de la información. En primer lugar, las pruebas a las expectativas del cliente es importante planificar cada paso
ayudan a reducir el costo total del proyecto de desarrollo de cuidadosamente. Se deben considerar muchas cosas para
software. Si se ignoran las pruebas en las etapas iniciales de planificar sus esfuerzos de prueba.
desarrollo para ahorrar una pequeña cantidad de dinero, es Las pruebas de software deben planificarse teniendo en cuenta
posible que luego resulte ser un asunto muy costoso porque, a el presupuesto, el cronograma y el rendimiento para lograr los
medida que avanza en el proceso de desarrollo, se vuelve cada mejores resultados.
vez más difícil rastrear los defectos y corregirlos. defecto en
algún lugar puede introducir otro defecto en algún otro Todas las actividades de prueba requieren planificación. Es
importante delinear un plan de prueba que proporcione detalles
módulo. sobre cómo se llevará a cabo cada actividad. También se
requiere un plan de prueba para garantizar que todos los
El requisito se finaliza después de varias conversaciones con el aspectos del software se cubran a fondo y que no haya repetición
cliente. Las pruebas aseguran que el software se comporta y se del proceso de prueba para que no se desperdicie tiempo ni esfuerzo.
ve exactamente como se menciona en el documento de La última tendencia ahora es involucrar al equipo de pruebas en
especificación de requisitos, de modo que cuando el software se el proceso de redacción de especificaciones. Es importante que
entrega al cliente no hay argumentos sobre la variación de los el equipo de pruebas comprenda claramente los requisitos del
requisitos originales. Las pruebas de software ayudan a fortalecer cliente, ya que todo el desarrollo se basa en los requisitos
la reputación de mercado de una empresa. El software bien definidos por el cliente.
probado es de buena calidad y buena calidad significa mejores
comentarios y revisiones. Cualquier cosa que no esté en línea con el requisito es un
defecto. Por lo tanto, el equipo de pruebas debe tener una idea
clara sobre cómo debería ser el resultado final de ejecutar el
Para lograr los mejores resultados, es importante organizar software. De hecho, es importante comenzar a escribir casos de
todos sus esfuerzos de prueba y de eso se trata esta capacitación prueba en paralelo a la escritura de especificaciones. Esto
de prueba de software proporcionada por el Instituto Internacional ayudará a los probadores a analizar si todos los requisitos son
de Pruebas de Software. Las pruebas de software no pueden comprobables o no. Cuando escribe casos de prueba en paralelo
ser fructíferas sin una planificación adecuada. para estar a la altura al proceso de escritura de especificaciones
10
Machine Translated by Google
11
Machine Translated by Google
12
Machine Translated by Google
13
Machine Translated by Google
• •
Capacidad de recuperación: esto da una idea de la capacidad Capacidad de prueba: cuánto esfuerzo se dedica a probar el
de un sistema para volver a funcionar por completo después sistema.
de una falla.
•
4. Eficiencia: generalmente depende de la buena arquitectura y las Capacidad de reemplazo: qué tan fácil es reemplazar un
prácticas de codificación seguidas durante el desarrollo del software. componente del sistema en un entorno dado.
14
Machine Translated by Google
15
Machine Translated by Google
2 Se observa una disminución del rendimiento: todas las asegurarse de que todos los procedimientos necesarios del ciclo
aplicaciones generalmente se ralentizan con el tiempo y de vida del desarrollo de software se sigan correctamente. El
tienden a ocupar más y más memoria de la computadora, control de calidad es una actividad proactiva que se centra en: 1
por lo que es mejor cambiar a otro software. Prevención de defectos
2 Procesos
3 No parece ser fiable: Es un hecho conocido 3 Mejora continua de estos procesos
que cada vez que se realizan cambios en el código del
software para corregir un error, se introducen más defectos Las pruebas de software, por otro lado, se llevan a cabo para
en el sistema. identificar o descubrir defectos y errores en el software.
Sorprendentemente, esta es una de las principales razones Se trata de pruebas rigurosas reales del software para ver si hay
del aumento de las tasas de fallas y, para salvar la situación, defectos o variaciones de los requisitos del cliente que deben
siempre es mejor deshacerse del proyecto o renunciar a la corregirse. Las pruebas de software son parte del proceso de
corrección de errores. control de calidad y se enfocan solo en actividades orientadas al
producto. La prueba del software se lleva a cabo durante la fase
Pruebas de software VS Garantía de calidad En de prueba y solo los defectos se identifican y no se corrigen en
la industria de TI, a menudo se observa que las personas este proceso. La reparación de defectos no forma parte de las
generalmente no diferencian entre la garantía de calidad del pruebas de software.
software y las pruebas de software. Los evaluadores a menudo se
consideran profesionales de aseguramiento de la calidad del
software porque los objetivos de las pruebas de software y el
aseguramiento de la calidad son los mismos, es decir, garantizar Garantía de Calidad VS Control de Calidad
que el software sea de la mejor calidad. Otro tema que está estrechamente relacionado con la garantía de
Como su nombre indica, los procesos de garantía de calidad se calidad es el control de calidad. La gente a menudo se confunde
llevan a cabo para garantizar que la calidad del producto esté en entre los dos, pero hay una gran diferencia. Mientras que el
línea con los requisitos del cliente. Los profesionales de aseguramiento de la calidad tiene que ver con las actividades
aseguramiento de la calidad trabajan en el desarrollo e preventivas, el control de la calidad se enfoca en los procesos
implementación de todos los procesos necesarios para correctivos.
dieciséis
Machine Translated by Google
Esto es lo que debe comprender: las pruebas de software son Las empresas emplean un equipo de control de calidad para
un subconjunto del control de calidad y el control de calidad es identificar si hay algún producto o servicio que no cumpla con
un subconjunto de la garantía de calidad. Todo el enfoque del el estándar de calidad de la empresa. Si hay un problema, el
aseguramiento de la calidad está en la implementación de equipo de control de calidad tiene la autoridad para detener la
procesos y procedimientos que se requieren para la verificación producción de ese producto hasta que se resuelva el problema.
del software en desarrollo y los requisitos del cliente.
La importancia de la auditoría y la
inspección La auditoría se compone de algunos procesos
muy sistemáticos que definen cómo se llevan a cabo las
pruebas de software en la organización. El equipo de auditoría
examina todos los procesos que se llevan a cabo en el momento de la pru
IEEE define la auditoría como una revisión de los procesos
documentados para garantizar que la organización o un equipo
siga todos los procesos según los estándares definidos.
17
Machine Translated by Google
¿Qué es la prueba de software? llevado a cabo en todos los niveles de pruebas de software: unidad,
integración, sistema y aceptación.
18
Machine Translated by Google
Pruebas de caja blanca el código se ejecuta al menos una vez. La idea detrás de esta
A diferencia de las pruebas de caja negra, las pruebas de caja forma de prueba es garantizar que cada declaración en cada
blanca se llevan a cabo en profundidad hasta el nivel del código bloque de código se ejecute al menos una vez y se observen los
fuente. En esta forma de probar la lógica interna, se examina su resultados. Esta forma de prueba también se conoce como forma
implementación y funcionamiento y se escriben los casos de de prueba de cobertura de línea o cobertura de segmento.
prueba para comprobar cómo funciona el software a nivel interno.
Las pruebas de caja blanca se pueden realizar a nivel de unidad,
integración y sistema. El punto a tener en cuenta aquí es que cada declaración se ejecuta
Las pruebas de caja blanca a menudo se utilizan para detectar una vez, lo que significa que puede haber algunas condiciones en
errores de diseño internos que, de otro modo, serían muy difíciles algunos bloques que no se pueden probar de esta manera. Por lo
de descubrir; sin embargo, esta forma de prueba no verifica si tanto, existe la posibilidad de que algunos errores pasen
faltan requisitos o especificaciones. desapercibidos en el proceso de cobertura de estados de cuenta.
Cobertura de decisión
La cobertura de decisión o cobertura de sucursal se ocupa de
probar todas las condiciones verdaderas y falsas del código.
La razón por la que también se denomina cobertura de sucursal es
porque una sucursal es el resultado de una decisión. Se considera
que es una forma de prueba más efectiva que la simple cobertura
de declaraciones. Una declaración de decisión puede ser:
el código se prueba de tal manera que cada declaración de resultados también conocido como sentencia CASE.
19
Machine Translated by Google
20
Machine Translated by Google
21
Machine Translated by Google
requisitos Por lo tanto, un probador puede buscar áreas que un El escenario de tiempo en el que se implementará el software
desarrollador puede haber ignorado. Por lo tanto, las pruebas puede ayudar al evaluador a comprender cómo llevar a cabo las
siempre deben ser realizadas por probadores independientes. pruebas para el proyecto. Es muy importante saber lo que
Este enfoque tiene algunas desventajas. Cuando los equipos de realmente se debe probar para diseñar una estrategia de prueba.
desarrollo y prueba son diferentes, a menudo hay una brecha de
comunicación y, a veces, los desarrolladores se vuelven
descuidados con la codificación y no revisan su código porque
piensan que todo es trabajo de un probador, lo que aumenta la
carga sobre el probador.
22
Machine Translated by Google
23
Machine Translated by Google
Todas las empresas de renombre se aseguran de que la calidad del Las pruebas de software son las que pueden ser de utilidad para las
software del producto se rija por algunos conjuntos de estándares que pruebas de software.
han sido aprobados por el público. Al cumplir con estos estándares, una
empresa brinda seguridad sobre sus productos y puede brindar garantías ¿Qué es la capacidad de prueba del software?
a sus clientes solo cuando ha seguido algunos estándares y sabe que el La capacidad de prueba del software se utiliza para medir la facilidad
software se comportará de cierta manera. Por lo tanto, el consumidor con la que se puede probar un sistema de software. La capacidad de
sabe que está comprando lo correcto si cumple con los estándares prueba se calcula en las primeras fases del desarrollo del software para
correctos. averiguar cuántos recursos se necesitarán para finalizar el proceso de
prueba. Si bien las pruebas ayudan a descubrir defectos, la capacidad
de prueba juega un papel importante en la identificación de las áreas
clave donde los errores permanecen ocultos a la vista de un evaluador.
Desde el punto de vista del productor, las normas ayudan a mejorar la Cuando la capacidad de prueba es alta, significa que la prueba es más
calidad del producto final. Una vez que una empresa ha finalizado el fácil y una capacidad de prueba más baja significa que se debe aumentar
estándar que debe seguir, se vuelve más fácil para ellos trabajar en el esfuerzo de prueba. La capacidad de prueba se puede determinar
otros proyectos de software y cada vez que comienzan un nuevo mediante:
proyecto no necesitan comenzar todo desde cero. Hay muchos tipos de
estándares de prueba de software definidos para evaluar la calidad del
software que puede mejorar en gran medida la eficacia de las pruebas 1 Controlabilidad: el proceso de prueba se puede optimizar solo si
de software; sin embargo, se cree que hasta ahora no se han elaborado podemos controlarlo.
tales estándares que puedan cubrir todos 2 Observabilidad: lo que ves es lo que se puede probar. Los factores
que afectan el resultado final son visibles.
aspectos de las pruebas de software. 3 Disponibilidad: Para probar un sistema tenemos que llegar a él.
Estándares que enfatizan tener pruebas como parte de un requisito más 4 Simplicidad: cuando el diseño es autoconsistente, las características
grande o estándares que respaldan no son muy complejas y las prácticas de codificación son
simples, entonces hay menos para probar.
24
Machine Translated by Google
Cuando el software ya no es simple, se vuelve difícil de el enfoque de la verificación está en la calidad del software que se
probar. está desarrollando, ya sea que siga todos los estándares o no,
5 Estabilidad: si se realizan demasiados cambios en el diseño de ¿está bien diseñado?
vez en cuando, habrá muchas interrupciones en las pruebas
de software. Entonces, mientras que la validación verifica si las especificaciones
6 Información: La eficiencia de las pruebas depende en gran se diseñaron correctamente para cumplir con los requisitos del
medida de la cantidad de información disponible para el cliente, la verificación verifica si el software se desarrolló de acuerdo
software. con los estándares y normas de calidad del software de la
organización de ingeniería de software.
Esto es lo que necesita saber sobre la capacidad de prueba:
1 Mayor capacidad de prueba significa mejores pruebas y menos
cantidad de errores
2 Una menor capacidad de prueba significa que las pruebas no
son de gran calidad y existe la posibilidad de que haya más
errores en el sistema.
25
Machine Translated by Google
el proyecto, es decir, durante el análisis de requisitos y las pruebas Una vez que se completan las pruebas, los evaluadores envían los
de aceptación. Esta táctica no es del todo correcta y es casi imposible informes y el equipo de desarrollo comienza a buscar la causa raíz
de seguir. El hecho real es que hasta el día de hoy se ha observado de los defectos. En este proceso, el desarrollador escanea todos los
que es muy difícil capturar todo el conjunto de requisitos del cliente módulos relacionados e intenta encontrar el problema en el código;
durante el inicio del proyecto. una vez hecho esto es hora de rectificar el defecto. Entonces, la
depuración es el proceso en el que se descubre la causa de los
Los requisitos de software a menudo sufren varios cambios incluso defectos informados y luego se rectifican los defectos paso a paso.
después de que se ha iniciado el desarrollo.
Muchas veces los cambios son solicitados por el propio equipo de La depuración es el proceso de resolución de problemas existentes.
desarrollo. Por lo tanto, es importante llevar a cabo procesos de
validación y verificación en cada fase del desarrollo del software. No es prudente rectificar un defecto hasta que se conozcan por
completo todas las posibles razones detrás de él. Si comienza a
depurar sin un conocimiento completo sobre el defecto, entonces
Hoy en día, los probadores suelen considerar la verificación y la hay posibilidades de que en el proceso de rectificación de un defecto
validación, también conocidas como V&V, como una forma poderosa pueda introducir algún otro en cualquiera de los módulos
de ver varios aspectos del software. interrelacionados. Los desarrolladores deben evitar la experimentación
en el momento de la depuración, ya que esto puede causar muchos
Pruebas de software VS Depuración de software problemas. Una vez que se soluciona un defecto, el desarrollador
Este es otro tema en el que la gente generalmente se confunde. La envía el trabajo al probador, quien probará a fondo todo el módulo.
prueba y la depuración de software pueden sonar como la misma
cosa, pero ese no es realmente el caso. Para empezar, el proceso 1 Las pruebas de software descubren defectos y la depuración
de depuración comienza cuando finaliza la prueba de software. los localiza y corrige.
2 Las pruebas de software son un aspecto muy importante del
Mientras que las pruebas de software descubren defectos, la ciclo de desarrollo de software, mientras que la depuración
depuración elimina los defectos del sistema. es el resultado de las actividades de prueba.
26
Machine Translated by Google
¿Qué es un defecto?
Defecto es cualquier cosa que no esté en línea con las especificaciones
de requisitos de software. El defecto generalmente existe en el código del
programa o en su diseño.
Esto da como resultado una salida incorrecta en el momento de la
ejecución del programa.
1 Un fragmento de código se denomina buggy cuando tiene demasiados
defectos.
2 Error informa los detalles sobre la naturaleza de la
insecto.
¿Qué es un defecto?
4 Existe una técnica de prueba muy interesante en la que los defectos La gravedad define la gravedad del impacto de un defecto en el
se inyectan deliberadamente en el código y luego se monitorea el rendimiento del sistema. La gravedad puede ser de uno de los siguientes
resultado para verificar si el sistema funciona como se espera en tipos:
1 Crítico: tal defecto no permite que la aplicación funcione
caso de ciertos problemas.
correctamente debido a una falla del sistema o corrupción de
datos. Los defectos críticos sí
27
Machine Translated by Google
no permite que el usuario se mueva más y lo pone en 2 Medio: el defecto debe resolverse poco después de que se
una posición miserable. hayan resuelto los defectos con mayor prioridad.
2 Mayor: Los defectos mayores son un poco menos severos
que los defectos críticos. Pueden hacer que el sistema 3 Alto: El defecto con alta prioridad significa que requiere
falle; sin embargo, en caso de un defecto importante, atención inmediata y debe ser resuelto lo antes posible.
existe otra forma posible de lograr el resultado deseado
y el usuario no necesita capacitación para ello.
Entonces, una vez que reciba el informe de gravedad y prioridad
3 Moderado: Estos defectos no causan la de los defectos, esto es lo que necesita saber:
el sistema falle pero produzca resultados erróneos o
contradictorios.
4 Menores: Los defectos que no causan fallas en el sistema
ni afectan la usabilidad del sistema y que pueden
corregirse fácilmente se conocen como defectos menores.
5 Cosmético: Defectos relacionados con el aspecto o
apariencia del sistema se denomina defecto cosmético.
28
Machine Translated by Google
29
Machine Translated by Google
30
Machine Translated by Google
obstáculos en el proceso de desarrollo y si hay algún problema, probador es capaz de descubrir y qué tipo de detecta que tiende a
debe resolverse con atención inmediata. pasar por alto. Esto le dará una idea clara de qué tan serio es su
equipo con respecto al trabajo.
Descripción general del equipo de prueba Todos los miembros del equipo deben trabajar juntos para preparar
de software Qué tan pronto y qué tan bien puede lograr sus un documento que defina claramente las funciones y
objetivos de prueba depende únicamente de las capacidades del responsabilidades de todos los miembros del equipo. Una vez que
equipo de prueba. Dentro del propio equipo de pruebas, es se prepara el documento, el papel de cada miembro debe
importante contar con la combinación correcta de probadores que comunicarse claramente a todos. Una vez que los miembros del
puedan trabajar juntos de manera eficiente para lograr los objetivos equipo tengan claro quién se encargará de qué área del proyecto,
comunes de las pruebas. Al formar un equipo para la prueba, es entonces, en caso de cualquier problema, será fácil determinar a
importante asegurarse de que los miembros del equipo tengan una quién se debe contactar.
combinación de todos los conocimientos de dominio relevantes que
se requieren para probar el software en desarrollo.
Cada miembro del equipo debe contar con los documentos
necesarios que brinden información sobre cómo se organizaría la
Es muy importante asegurarse de que el equipo de pruebas de tarea, qué enfoque se seguirá, cómo se programan las cosas,
software tenga una estructura adecuada. La jerarquía y los roles cuántas horas se han asignado a cada miembro y todos los detalles
deben estar claramente definidos y las responsabilidades también relacionados con los estándares aplicables. y procesos de calidad.
deben estar bien definidas y distribuidas adecuadamente entre los
miembros del equipo. Cuando el equipo está bien organizado, el
trabajo se puede manejar bien.
Si cada miembro del equipo sabe qué deberes tiene que realizar, Rol del probador de
entonces podrá terminar sus deberes según lo requerido dentro software Un probador de software (ingeniero de prueba de software)
del límite de tiempo. Es importante realizar un seguimiento del debe ser capaz de diseñar conjuntos de pruebas y debe tener la
rendimiento de los probadores. capacidad de comprender los problemas de usabilidad. Se espera
Es muy importante comprobar qué tipo de defectos que dicho probador tenga un conocimiento sólido de la prueba de software.
31
Machine Translated by Google
metodologías de diseño y ejecución de pruebas. Es muy importante que casos de prueba es importante que el evaluador de software conozca
un probador de software tenga grandes habilidades de comunicación varias técnicas de prueba y cuál es el mejor enfoque para un sistema en
para que pueda interactuar con el equipo de desarrollo de manera particular. Debe saber cuáles son las diversas fases de las pruebas de
eficiente. Las funciones y responsabilidades de un probador de software software y cómo se deben realizar las pruebas en cada fase.
de usabilidad son las siguientes:
2 Es responsable de realizar las pruebas, luego analizar los resultados 2 Realice las pruebas según el procedimiento definido.
y luego enviar sus observaciones al equipo de desarrollo. res.
mejor los requisitos del producto o en caso de que el diseño 4 Preparar todos los informes relacionados con las pruebas de software
requiera algún tipo de modificación. realizadas.
5 Asegúrese de que todo el trabajo relacionado probado se lleva a cabo
4 Los probadores de software a menudo son responsables de crear la de acuerdo con los estándares y procedimientos definidos.
documentación del producto de prueba y también deben participar res.
32
Machine Translated by Google
Debe tener un conocimiento sólido sobre las pruebas tanto manuales actividades de prueba realizadas por el equipo e identificar a
como automatizadas para que pueda decidir cómo se pueden los miembros del equipo que requieren más capacitación.
combinar ambas metodologías para probar el software. Un gerente de
prueba debe tener un conocimiento sólido sobre el área comercial y 4 Programe actividades de prueba, cree un presupuesto para las
los requisitos del cliente, en base a eso, debe poder diseñar una pruebas y prepare estimaciones del esfuerzo de prueba.
estrategia de prueba, una meta y objetivos de prueba. Debe ser bueno 5 Selección de las herramientas de prueba adecuadas después de
en la planificación de proyectos, la coordinación de tareas y personas, interactuar con los proveedores. Integración de las actividades
y debe estar familiarizado con varios tipos de herramientas de prueba. de testing y desarrollo.
Mucha gente se confunde entre las funciones y responsabilidades de 6 Llevar a cabo una mejora continua del proceso de prueba con la
un administrador de pruebas y un líder de pruebas. Para aclarar, se ayuda de métricas.
supone que un líder de pruebas debe tener una rica experiencia 7 Verificar la calidad de los requisitos, qué tan bien están definidos.
técnica que incluye programación, manejo de tecnologías de bases
de datos y varios sistemas operativos, mientras que puede no serlo. 8 Rastree los procedimientos de prueba con la ayuda de la matriz
tan fuerte como Software Test Manager con respecto a la gestión y de trazabilidad de prueba.
coordinación de proyectos de prueba. Las responsabilidades del jefe
de pruebas son las siguientes: Rol del automatizador de pruebas de
software El automatizador de pruebas de software o un ingeniero de
33
Machine Translated by Google
Las responsabilidades de un probador en esta posición son las Interacciones entre el equipo de prueba de software y los equipos
siguientes: de desarrollo Para producir buenas aplicaciones de software, es
importante que los equipos de prueba y desarrollo de software
1 Debe ser capaz de comprender los requisitos y diseñar trabajen juntos con un buen entendimiento. Para esto, es importante
procedimientos de prueba y casos de prueba para pruebas que los evaluadores y los desarrolladores se sientan cómodos con el
de software automatizadas. rol del otro y entiendan bien que tienen un objetivo común y que es
2 Diseñe scripts de prueba automatizados que sean reutilizables. prudente escucharse mutuamente. Una buena habilidad de
comunicación es muy importante tanto para los evaluadores como
3 Asegurarse de que todas las actividades relacionadas con las para los desarrolladores.
pruebas automatizadas se lleven a cabo de acuerdo con los
estándares definidos por la empresa.
Interacciones entre el equipo de prueba de software y los equipos Antes de comenzar con el trabajo de prueba, es importante discutir
comerciales Si un cliente tiene algún problema relacionado con las las pautas y expectativas básicas para que no haya confusión en
actividades de prueba y los asuntos operativos del proyecto, entonces etapas posteriores. La crítica debe tomarse en un sentido positivo.
es el gerente de prueba de software quien es responsable de
comunicar los detalles al cliente sobre cómo se gestionan las cosas. Es importante comprender que los desarrolladores y evaluadores
El gerente de pruebas de software no solo responde las consultas de tienen el objetivo común de producir software de alta calidad. Un
los clientes, sino que también se asegura de que el proyecto se probador no está descubriendo errores para mostrar a alguien, la idea
complete a tiempo según los requisitos del cliente. es aprender de los errores y evitar repetirlos en el futuro. Una cultura
de crítica constructiva puede ser de gran ayuda.
34
Machine Translated by Google
producción. Este equipo es responsable de planificar los gerente del proyecto y brindar el apoyo necesario en la
lanzamientos de hardware, software y pruebas. También es planificación y programación del proyecto para que el proyecto
responsable del desarrollo de los procedimientos de desarrollo pueda completarse con éxito a tiempo dentro de los límites
de software y de la coordinación de las interacciones y la del presupuesto financiero especificado.
capacitación de los lanzamientos. Las pruebas de software
se consideran un aspecto muy importante del ciclo de vida de
la ingeniería de software, pero no se superan con el desarrollo.
Las pruebas y la verificación son una parte muy importante
del ejercicio de gestión de versiones.
35
Machine Translated by Google
Métodos de prueba de software La prueba de caja gris es una forma muy inteligente de prueba
en la que se espera que el probador conozca la funcionalidad,
la arquitectura del software, cómo fluirían los datos y cómo se
Hemos discutido las técnicas de prueba de caja negra y caja manejarían las excepciones.
blanca en la sección 3. Aquí echamos un vistazo a algunas Para proyectos de gran tamaño, siempre es mejor incorporar
metodologías de prueba más: • Prueba de caja gris • Prueba pruebas de automatización para verificar la funcionalidad y la
incremental • Prueba de subprocesos interfaz de usuario de la aplicación, ya que esto ahorraría
mucho tiempo y el probador no se sentirá demasiado estresado.
Pruebas incrementales
Pruebas de caja Las pruebas incrementales entran en escena una vez que el
gris Cuando las metodologías de prueba de caja negra y las evaluador ha completado las pruebas unitarias. Esta forma de
metodologías de prueba de caja blanca se utilizan en prueba se utiliza en la integración de pruebas donde es
combinación para las pruebas de software, se denomina necesario verificar cómo varios módulos independientes
prueba de caja gris o caja gris. Esta forma de prueba analizará interactúan entre sí. En esta forma de prueba, se pide a los
los aspectos lógicos y funcionales del software. En esta forma desarrolladores que integren los módulos sistemáticamente
de prueba, el probador tiene poco y no un conocimiento utilizando stubs o drivers. Esta forma de metodología de
profundo sobre lo que se supone que debe hacer el código. prueba de integración se conoce como prueba incremental.
Idealmente, el evaluador debe conocer las estructuras de Las pruebas incrementales se pueden clasificar en tres tipos:
datos y los algoritmos internos.
La prueba de caja gris se lleva a cabo cuando es necesario 1 Integración de arriba hacia abajo: En este caso la
probar ambos lados del software (funcional e interno a la vez). integración de los módulos se realiza de arriba hacia
El probador debe poder escribir casos de prueba que puedan abajo. Todos aquellos módulos que no están disponibles
probar el software a fondo con la ayuda de datos que también se sustituyen por talones.
pueden verificar toda la lógica interna posible. 2 Integración bottom up: En este caso la integración de los
módulos se realiza desde
36
Machine Translated by Google
37
Machine Translated by Google
Pruebas
Hay varios beneficios de las pruebas unitarias. En primer
unitarias La parte independiente y comprobable más pequeña
lugar, obtiene la confianza para continuar con las pruebas de
del código fuente se denomina unidad. Es el primer paso en
integración solo cuando está seguro de que todas las unidades
el entorno de prueba de software y generalmente lo llevan a
funcionan correctamente. Cuando comienza las pruebas
cabo los desarrolladores o sus compañeros de equipo.
unitarias en paralelo con el desarrollo, puede parecer un
Esta forma de prueba rara vez la realizan los probadores de
proceso lento, ya que se descubren muchos defectos durante
software. Para realizar la prueba de integración, es importante
esta etapa y se realizan varios cambios en el código.
completar primero la prueba unitaria para todas las unidades.
Sin embargo, con el tiempo, el código se refina y la cantidad
Para realizar pruebas unitarias, es importante tener un plan
de defectos comienza a reducirse. Por lo tanto, la base del
de pruebas unitarias y un plan de pruebas unitarias bien definidos.
casos. software es sólida y en las etapas posteriores el
38
Machine Translated by Google
el desarrollo de software se lleva a cabo a un ritmo mucho más unidad se ha fusionado con otras unidades para formar un
rápido, lo que ahorra mucho tiempo. componente más grande.
Pruebas de integración
Una vez finalizada la fase de pruebas unitarias, es el momento
de pasar a las pruebas de integración. Durante las pruebas de
integración, el probador verifica cómo una o más unidades
interactúan entre sí y producen resultados para varios
escenarios. Esta forma de prueba la lleva a cabo un ingeniero
de pruebas de software.
39
Machine Translated by Google
Pruebas de integración
Pruebas del sistema
De arriba hacia abajo es un enfoque sistemático en el que los módulos de Una vez que la fase de pruebas de integración se completa con éxito, es
nivel superior se prueban primero y luego, uno por uno, se agregan y hora de pasar a las pruebas del sistema, donde el sistema como un todo
prueban los submódulos. El enfoque de abajo hacia arriba es justo lo con todos los componentes bien integrados está listo para realizar más
contrario de arriba hacia abajo. En este caso, primero se prueban los pruebas. Aquí es donde no solo se prueba el rendimiento del software, sino
módulos más bajos y, paso a paso, se agregan y prueban los módulos de también el cumplimiento de los estándares de calidad. Dado que el sistema
nivel superior. En general, el enfoque de abajo hacia arriba se sigue primero se prueba como un todo para ver si cumple con las especificaciones
en las pruebas de software, seguido de las pruebas de arriba hacia abajo. técnicas y funcionales y los estándares de calidad definidos por la
organización, es importante que esta forma de prueba la lleve a cabo un
equipo de pruebas altamente calificado. Para esta forma de prueba es muy
importante crear un escenario similar al escenario en tiempo real donde se
implementará el sistema.
40
Machine Translated by Google
41
Machine Translated by Google
42
Machine Translated by Google
43
Machine Translated by Google
44
Machine Translated by Google
45
Machine Translated by Google
La autenticación es un proceso en el que a la persona que intenta Pruebas de integridad de datos y bases de datos
acceder al software se le solicita un nombre de usuario y una En las pruebas de integridad de datos, debemos verificar si los datos
contraseña. Una combinación incorrecta de los dos parámetros indica almacenados en la base de datos son precisos y producen resultados
que la persona no es lo que dice ser y no se le permite ir más allá. según las expectativas. Algunas comprobaciones son muy importantes
para las pruebas de integridad de los datos, como si es posible
Esta es una verificación de autenticación que garantiza que se recuperar información en blanco de la base de datos o no, si los datos
verifiquen las credenciales de inicio de sesión de un uso de aplicación se validan correctamente antes de guardarlos en la base de datos, si
de software autorizado. se pueden actualizar los datos almacenados en la base de datos, si
puede ejecutar pruebas para todo tipo de archivos de datos, etc. En
La autorización, por otro lado, tiene que ver con los privilegios para otras palabras, las pruebas de integridad de datos se llevan a cabo
usar ciertas funciones restringidas de una aplicación de software. El para garantizar que los datos sean precisos y consistentes durante
hecho de que haya borrado el proceso de autenticación no significa todo su ciclo de vida.
que haya sido autorizado para acceder a todos los datos, funciones y
casos de uso de la aplicación de software. Por ejemplo, en el caso de La integridad de la base de datos, por otro lado, se ocupa de probar
los sitios de redes sociales, una vez que ingresa el nombre de usuario todos los métodos y procesos necesarios que son importantes para
y la contraseña correctos, solo puede acceder a los detalles de su acceder a la base de datos y administrar los datos que contiene.
cuenta y a ninguna otra cuenta además de esa. También se trata de cómo se procesan todas las funciones y datos de
los métodos de acceso.
Los datos no deben corromperse y no deben eliminarse, actualizarse o
crearse sin saberlo, y debe haber casos de prueba para realizar estas
Además de la autenticación y la autorización, las pruebas de seguridad validaciones.
46
Machine Translated by Google
con la red, problema de conexión con el servidor de aplicaciones, trabaja correctamente. Esto incluye verificar el sistema en busca
no poder conectarse a una base de datos, etc. de problemas de rendimiento, como baja velocidad o posibilidades
de fallas, cómo funciona la aplicación en un escenario en tiempo
La prueba de conmutación por error, por otro lado, se lleva a real, si el software se emplea correctamente en la carpeta
cabo para probar la capacidad del software para recuperarse de correcta, etc. Todo esto es parte de las pruebas de implementación.
problemas graves inesperados, como una falla de hardware o un
bloqueo. Esta forma de prueba explica qué tan bien se restaurará
el sistema a su estado original en caso de cualquier tipo de falla. Pruebas de regresión
Una vez que se detecta un defecto en el sistema, se envía
inmediatamente para su reparación. Sin embargo, una vez que
Pruebas de configuración e implementación se corrige el defecto, es importante realizar pruebas intensas
Las pruebas de configuración se llevan a cabo para verificar para verificar que los cambios realizados en el código no hayan
cómo funciona un sistema para varios tipos de configuraciones afectado a ninguna otra área del sistema.
de sistema. Hay varias razones para llevar a cabo pruebas de Las pruebas de regresión se llevan a cabo para garantizar que la
configuración. Puede ayudarlo a determinar el tiempo de reacción corrección de errores no haya causado ninguna violación de la
del sistema en el entorno de prueba y la configuración óptima lógica comercial o de la funcionalidad. Las pruebas de regresión
requerida para que el sistema funcione según lo esperado. Las ayudan a minimizar las brechas en el proceso de prueba.
pruebas de configuración también juegan un papel muy importante Garantiza que la aplicación no tenga defectos antes de enviarla a
en escenarios donde existe la necesidad de migrar un software la siguiente fase de prueba.
de una plataforma a otra. Ayuda a verificar si el sistema es
compatible con el nuevo entorno según lo exigen las Pruebas de rendimiento
especificaciones de hardware. Temas como el retraso de la red, la representación de datos, el
procesamiento de transacciones de bases de datos y el equilibrio
de carga entre servidores generalmente se descubren durante
las pruebas de rendimiento. En otras palabras, en lugar de
Una vez que el sistema se ha implementado, es importante encontrar defectos en el software real, las pruebas de rendimiento
realizar ciertas comprobaciones para asegurarse de que va a funcionar. se enfocan en probar problemas de rendimiento. Está
47
Machine Translated by Google
importante realizar pruebas de rendimiento en cualquier software El probador puede controlar la cantidad de usuarios virtuales y
para el que es importante tener estabilidad, escalabilidad y ver cómo se comporta el sistema.
velocidad, lo que significa un buen tiempo de respuesta y
representación de datos. Pruebas de
estrés En las pruebas de estrés, el software se somete
Pruebas de carga y benchmarking de rendimiento El intencionalmente a condiciones anormales y luego se supervisa
proceso de pruebas de carga también es muy interesante; aquí su rendimiento. En las pruebas de estrés, el software se prueba
se prueba el comportamiento del software bajo carga máxima. aplicando una carga que está mucho más allá del límite aceptable
La prueba de carga se lleva a cabo para verificar cómo funciona y los recursos se retiran para averiguar el punto en el que no
o se comporta el software en condiciones de carga máxima. Hay funcionará. Hay muchas formas de crear condiciones anormales
varias herramientas disponibles para pruebas de carga, como para las pruebas de estrés, la base de datos se puede apagar y
JMeter, Load Runner, Silk Performer, etc. Estas herramientas se encender, y los puertos de red se pueden cerrar o reiniciar
utilizan para aleatoriamente. La forma más común de realizar pruebas de
pruebas de carga automatizadas del software donde se pueden estrés es iniciando procesos que consumirían muchos recursos.
crear varios usuarios virtuales y luego se ejecuta un script para
verificar cómo se comporta el software cuando varios usuarios
intentan acceder al sistema al mismo tiempo.
48
Machine Translated by Google
49
Machine Translated by Google
50
Machine Translated by Google
51
Machine Translated by Google
Las pruebas ayudan a ahorrar mucho tiempo para que el equipo secciones del software requieren pruebas, cómo se llevaría a cabo
tenga más tiempo para concentrarse en la calidad del software. esta tarea, cómo y dónde se mantendrán los scripts, cómo se
Para realizar pruebas de automatización, debe conocer los beneficiaría el proyecto de esta actividad y cuánto dinero se
siguientes detalles: ahorraría en este proceso. Cuanto más específico sea en la
definición de la estrategia; más éxito tendrá en el logro de sus
1 Qué secciones del software requieren pruebas de automatización objetivos de prueba.
2 Qué herramientas serán ideales para este propósito 3 El
proceso de escribir scripts de prueba y ejecutarlos 4 Debe poder
identificar errores potenciales y saber cómo crear informes de Al definir la estrategia, es importante dividir su objetivo en objetivos
resultados. más pequeños y verificar si puede lograr lo que necesita con la
ayuda de una herramienta de prueba de automatización. Si el
proyecto es demasiado grande e intenta probar áreas complejas en
el primer intento, entonces hay posibilidades de cometer errores.
Es bueno incluir pruebas de automatización para mejorar la calidad Por lo tanto, es aconsejable comenzar con algo pequeño inicialmente
del software, pero las pruebas de automatización no son la única y luego crecer gradualmente.
forma de lograr la calidad y de ninguna manera deben considerarse
un reemplazo de las inspecciones y los procedimientos de recorrido. Las pruebas de automatización se pueden llevar a cabo en pruebas
Muchas organizaciones aún consideran que las pruebas de unitarias, integración y pruebas a nivel de sistema. Siempre es
automatización son la última forma de detectar defectos que pueden mejor descubrir los defectos máximos en las primeras etapas del
haber pasado desapercibidos. desarrollo del software, por lo que es mejor planificar las pruebas
de automatización lo antes posible.
Estrategia de automatización de pruebas de
software No hay duda de que las pruebas de automatización hacen Automatización de pruebas de software y su retorno de
la vida mucho más fácil, pero tener las herramientas adecuadas no Inversión (ROI)
es suficiente para lograr el éxito en las pruebas de automatización. El ROI de la automatización de pruebas de software se calcula para
Es muy importante desarrollar una estrategia para las pruebas de saber cómo se beneficiaría la empresa al incorporar esta metodología
automatización que defina claramente qué en sus pruebas.
52
Machine Translated by Google
procesos. Da una idea justa sobre el ahorro de costos, el • El cálculo del ROI de reducción de riesgos indica
alcance de la mejora en la eficiencia y la calidad del software. reducción del riesgo y alcance de la mejora de la calidad.
Las pruebas de automatización ahorran tiempo y brindan
al equipo más tiempo para realizar análisis y realizar
ROI = (Ganancia-cantidad invertida) / cantidad invertida pruebas ad hoc y exploratorias, lo que conduce a una
Los métodos más utilizados para el cálculo de cobertura exhaustiva y reduce así las posibilidades de
El ROI para las pruebas de automatización son: falla.
• Cálculo sencillo del ROI para saber cómo se beneficiaría la Casos de prueba para automatizar
empresa con el ahorro de costes. Este cálculo es de Es difícil y no es aconsejable automatizar todas las pruebas.
gran importancia cuando una empresa quiere saber Por lo tanto, uno debe determinar claramente qué casos de
cómo se beneficiaría económicamente al incorporar prueba deben automatizarse. Primero debe mirar aquellas
pruebas automáticas. El costo de inversión incluiría el secciones del software que requieren pruebas repetidas. Los
monto gastado en la adquisición de la licencia, hardware casos de prueba que deben ejecutarse repetidamente y
y capacitación del personal, desarrollo de scripts, requieren una gran cantidad de datos para su ejecución deben
mantenimiento y análisis de los mismos. • El cálculo del automatizarse. Además de las pruebas repetitivas, también
ROI de eficiencia informa sobre los beneficios en debe centrarse en la automatización:
términos de mayor eficiencia. A diferencia del ROI
simple, este cálculo solo analiza las ganancias de inversión 1 Casos de prueba que requieren múltiples conjuntos de
de tiempo. Cuando una empresa ya tiene las datos para su ejecución y son difíciles de realizar
herramientas de prueba de automatización y las ha manualmente.
estado usando durante bastante tiempo, no es necesario 2 Pruebas de carga y estrés que son difíciles de con
que conozca los cálculos de ROI simple porque no va a conducto manualmente.
hacer ninguna inversión monetaria fresca en este caso. 3 Pruebas que se ejecutan para comprobar el rendimiento
del software en múltiples plataformas.
4 Pruebas de interfaz gráfica de usuario.
53
Machine Translated by Google
Casos de prueba para no pasos que le gustaría grabar o poner en su guión de prueba.
automatizar Hay ciertos casos de prueba que no se prefieren Esto le ayudará a diseñar todas las condiciones requeridas para
para ser automatizados. Como: las pruebas de una función.
1 Casos de prueba que se ejecutarían una sola vez o con Asegúrese de haberse ocupado de todas las validaciones en
muy poca frecuencia. sus scripts de prueba. Si planea probar las transacciones de la
2 Las pruebas ad hoc o exploratorias no se pueden realizar base de datos, debe asegurarse de que la base de datos tenga
con la ayuda de pruebas de automatización. los datos necesarios para la prueba.
3 Casos de prueba que solo requieren ejecución manual o Antes de ejecutar el caso de prueba, es importante comprender
una opinión humana. cómo se ha diseñado la herramienta de software automatizada.
Esto es importante porque una vez que comience la prueba, no
¿Cómo queremos Automat? querrá que lo interrumpan problemas desconocidos.
La automatización de un caso de prueba comienza con la
definición de lo que desea probar. Elija siempre aquellos casos
de prueba que sean independientes y estables. Siempre es Herramientas de automatización de
mejor ejecutar casos de prueba independientes más pequeños pruebas de software Las herramientas de automatización
en lugar de unos pocos grandes y complejos. Los scripts tienen un impacto muy positivo en la eficiencia y productividad
grandes son difíciles de mantener y pueden ser difíciles de del software. Es importante utilizar herramientas de
ejecutar si se han realizado cambios importantes en el software. automatización de pruebas de software para simplificar las
Si un script de prueba requiere un cambio, siempre es más fácil pruebas. Ciertos procesos de prueba manuales pueden llevar
realizar cambios en un script más corto que en uno más largo. mucho tiempo. Con la ayuda de las herramientas de
una. automatización, puede lograr más en menos tiempo. Sin
embargo, nunca dependa completamente de las herramientas
Antes de automatizar un caso de prueba, es mejor ejecutar el de automatización. Debe definir claramente qué debe probarse
caso de prueba manualmente. Dado que los casos de prueba manualmente y dónde es necesario implementar herramientas
automatizados son aquellos que uno necesita usar para pruebas de prueba de automatización. La mayoría de las herramientas
repetitivas, por lo tanto, antes de diseñar un caso de prueba de de prueba de automatización con buena reputación vienen con
este tipo, es mejor ejecutarlo manualmente y anotar todos los sus precios, pero vale la pena implementarlas en proyectos, ya que son de
54
Machine Translated by Google
Ingeniería de software en cascada Las secuencias de fases en el modelo de cascada son las
siguientes:
55
Machine Translated by Google
ahora está listo para su lanzamiento al mercado y se puede El cliente, el equipo de gestión y el equipo de soporte técnico de la
implementar en el entorno del cliente. empresa discuten los requisitos del software con todo detalle.
6 Mantenimiento: si surge algún defecto o problema después de
que el software se haya entregado al cliente, se lanzan Estos requisitos se analizan, discuten varias veces y luego se
parches o una nueva versión del software para solucionar documentan hasta que son claros y completos.
el problema.
56
Machine Translated by Google
•
el cliente. Si capturamos el requisito incorrectamente, Ayuda a programar actividades y estimar costos.
comenzaremos el proyecto con el pie izquierdo.
• SRS sirve como base para la validación y
verificación.
Especificación de requisitos del
usuario Este documento define lo que un usuario quiere y
cuáles son sus expectativas del software. Este documento
ofrece una imagen clara de las necesidades comerciales de
un cliente. Este documento está escrito por los usuarios finales.
Estos requisitos se prueban en las pruebas de aceptación del
usuario. Este documento no es de carácter técnico. Habla de
la necesidad comercial del usuario.
y forma la base para planificar los próximos pasos para
capturar los requisitos y el diseño del sistema.
57
Machine Translated by Google
Diseño de software
Enfoque de diseño de arriba hacia
abajo El enfoque de arriba hacia abajo es un enfoque muy sistemático
Diseño de software de alto nivel El
en el que primero se diseña el esquema del sistema sin definir los
diseño de software de alto nivel proporciona una imagen clara del
detalles de ningún subsistema. Una vez que el esquema del sistema
diseño de la base de datos y la arquitectura funcional del sistema. El
está listo, es hora de avanzar paso a paso a cada subsistema. Cada
diseño de software de alto nivel sirve como guía para el equipo de
subsistema se define con todo detalle hasta que la especificación llega
desarrollo.
a los elementos básicos.
Siempre que haya alguna duda con respecto al flujo de diseño, los
desarrolladores se refieren al documento de diseño de alto nivel (HLD).
Para crear este documento, es importante que el documento de
Enfoque de diseño de abajo hacia
especificación de requisitos de software (SRS) sea absolutamente claro.
arriba El enfoque de diseño de abajo hacia arriba es exactamente lo
contrario del enfoque de arriba hacia abajo. En este caso, el primer
paso consiste en definir los elementos básicos con todo detalle y luego
vincular estos elementos para formar varios subsistemas que se
Diseño de nivel de software detallado El
vinculan aún más hasta el momento en que se forma el sistema
diseño de nivel de software detallado o diseño de bajo nivel (LLD)
completo.
implica dividir el diseño de alto nivel en secciones más pequeñas y
Este enfoque se puede comparar con plantar un árbol donde al principio
escribir la lógica que serviría como especificación del programa. LLD
todo lo que tenemos en la mano es una semilla, pero a medida que
proporciona
comenzamos a trabajar en ella, se forma un árbol.
58
Machine Translated by Google
Ciclo de vida ágil de la ingeniería de software desarrollo dinámicamente cada vez que se produce un
cambio en los requisitos.
59
Machine Translated by Google
solicitado. Este enfoque se enfoca más en la interacción requiere mucha disciplina y las teorías pueden variar de
con el cliente y menos en la documentación para que el una compañía a otra. Por ejemplo, algunas empresas
El equipo de desarrollo está seguro de que está en el camino correcto. creen que, al final del día, un desarrollador debe
asegurarse de que nada quede sin integrar. En tal
Aunque el desarrollo ágil de software sigue un enfoque escenario, el desarrollador necesita planificar todas sus
muy realista, no es ideal para proyectos complejos y tareas correctamente. Si bien esto puede parecer una
siempre existe el riesgo de sostenibilidad, mantenibilidad tarea difícil, el mayor beneficio de este enfoque es que
y extensibilidad. Este proceso tiene requisitos mínimos el cliente puede ingresar en cualquier momento y ver
de recursos y es ideal para proyectos donde los cómo se está desarrollando el producto y puede dar su
requisitos sufren cambios con frecuencia. Dado que la opinión sobre lo que se le presenta.
documentación es menor y el enfoque está
completamente en la interacción con el cliente, todo el Pruebas y papel de las pruebas en el ciclo de vida
proyecto depende de qué tan bien el cliente pueda de la ingeniería de software ágil Las formas
comunicar sus requisitos. La metodología ágil permite tradicionales de desarrollo de software no utilizan un
el desarrollo concurrente; las reglas son nominales que probador en todo su potencial. De hecho, los evaluadores
se pueden emplear fácilmente. comenzaron a trabajar solo después de que el requisito
funcional se había desarrollado por completo. En un
Integración continua de software y pruebas entorno ágil, el probador es un miembro muy importante
continuas de software En la forma tradicional de del equipo y está involucrado en cada fase de cada
desarrollo de software, los desarrolladores trabajan en iteración, ya sea en la planificación o en el análisis de
piezas de código individuales durante varios días y, una requisitos.
vez que se completan las unidades individuales, pasan
a la integración de unidades. En esta metodología, la prueba es tan importante como
Dado que en cada iteración esta metodología cree en el desarrollo y el producto se somete a pruebas
hacer que el proyecto se centre en el desarrollo de continuas. El probador está trabajando continuamente
código de alta calidad, se debe seguir la integración en metodología ágil y así, al final del proyecto, el número
continua. El concepto de integración continua de defectos en el
60
Machine Translated by Google
61
Machine Translated by Google
Gestión de proyectos de software • Alcance: define el problema y lo que se debe hacer para
resolverlo.
La gestión de proyectos de software incluye toda la información y • Estimación: define el esfuerzo y el tiempo que
las herramientas necesarias para gestionar el proceso de los ir a completar el proyecto.
proyectos de desarrollo de software. Para ejecutar correctamente • Riesgo: define la obstrucción que el equipo puede enfrentar
un plan de proyecto de desarrollo de software, el gerente redacta un durante el desarrollo del software y cómo se puede abordar.
plan que describe cómo se llevará a cabo el desarrollo.
• Cronograma: Asignación de recursos para que la
proyecto puede terminar a tiempo.
El plan también se enfoca en cómo se mantendrán los estándares • Estrategia de control: define cómo realizar el control de calidad.
de calidad durante el proceso de desarrollo.
El gerente también define cómo se organizará el equipo de desarrollo,
cómo se llevará a cabo la gestión de riesgos. Dotación de
personal del proyecto Para llevar a cabo la dotación de personal
del proyecto, es importante definir varios roles, las habilidades
Software de requeridas para cada rol, cómo se programará la dotación de
planificación de proyectos La planificación de proyectos es personal y cómo se hará la dotación de personal para cada rol. Para
necesaria para controlar y monitorear los complejos procesos cada función es necesario definir los requisitos de habilidades y
involucrados en el desarrollo de software. La planificación del competencias, el nivel de experiencia, la disponibilidad y las expectativas salarial
proyecto se realiza para garantizar que el proyecto se complete a
tiempo, que el producto final sea de buena calidad y que el proyecto Coordinación de Proyectos y Alineación de
se complete a tiempo. Para seguir adelante con la planificación del Partes interesadas
proyecto, es importante tener en cuenta la complejidad del proyecto, Es responsabilidad del coordinador del proyecto de TI alinear a los
su tamaño y el nivel de incertidumbre estructural. Un plan de proyecto miembros del equipo interno con las partes interesadas externas.
de software se compone de: Esto se hace coordinando varias fases y cronogramas del proyecto,
rastreando el progreso y haciendo arreglos para ordenar suministros
y
62
Machine Translated by Google
63
Machine Translated by Google
Ciclo de vida de las pruebas de software y • Se identifican las áreas que requieren pruebas de automatización y las
que requieren pruebas manuales.
2 Plan de prueba: teniendo en cuenta los requisitos del proyecto, se Ejecución de pruebas
planifican las actividades de prueba y se prepara el documento del La ejecución de la prueba consiste en:
plan de prueba. • Ejecución de casos de prueba • Usar
3 Diseño de casos de prueba: se identifican escenarios de prueba y los
una herramienta de seguimiento de errores para
casos de prueba se diseñan en consecuencia. registrar errores • Documentar los resultados de las
64
Machine Translated by Google
sesenta y cinco
Machine Translated by Google
66
Machine Translated by Google
proceso muy complicado. Luego, la industria ideó algo que era fácil
de usar.
67
Machine Translated by Google
68
Machine Translated by Google
la eficiencia y la eficacia de un proyecto pueden mejorar significativamente interesados en proyectos y programas. En cualquier momento, el
mediante el seguimiento de las actividades de prueba. Desde el punto de administrador del proyecto puede ver cuántos defectos se informan
vista del proceso de desarrollo de software, las métricas se pueden utilizar diariamente, cuántos casos de prueba se ejecutan y cuánto trabajo realizó
para medir: cada probador. Un informe de estado diario tiene información sobre: 1
• Desarrollo de software • Mantenimiento Cuántos casos de prueba se planificaron para el
de software • Pruebas de software
¿día?
Documentaciones de prueba de software Los 2 ¿Cuántos de ellos fueron ejecutados?
documentos de prueba de software que se prepararon durante o antes de la 3 ¿Cuántos defectos ha informado el equipo de pruebas?
prueba para realizar un seguimiento de todas las actividades de prueba se
denominan documentos de prueba de software. los 4 ¿Cuántos de los defectos fueron críticos?
Los documentos importantes de prueba de software incluyen: • Plan 5 Ubicación: ¿Dónde se pueden ver los informes de prueba más detallados
de prueba • Escenario de prueba • Caso de prueba • Matriz de (hoja de defectos y ejecución de pruebas)?
trazabilidad
Informes de incidentes
Los informes de incidentes ayudan a coordinar las actividades de prueba y
Informes de pruebas de software desarrollo. La gestión de incidentes implica:
En esta sección discutiremos los siguientes informes:
•
Informes diarios del estado de las • Comparación de los resultados reales y esperados • ¿Cuál fue la
pruebas • Informes de incidentes causa de la desviación en los casos en que fallaron las pruebas? –
•
Informe de estado de prueba final (cierre del proyecto de prueba) ¿Automatización de prueba defectuosa, caso de prueba deficiente,
falla real del software?
Informes de estado de prueba diarios
El informe de estado de prueba diario ayuda a mantener la transparencia
dentro del equipo de prueba y con el
69
Machine Translated by Google
El informe de incidentes debe estar preparado para una falla real. Informe de estado de prueba final (cierre del proyecto de
Un informe de incidente debe proporcionar los siguientes detalles: prueba) El informe de cierre del proyecto de prueba se crea
cuando se alcanza el criterio de salida del proyecto o cuando se ha
completado toda la actividad de prueba. Este informe lo crea el líder
• Identificación de prueba y luego lo revisan todas las partes interesadas y los
• ¿Cuál es el ID de cada informe? • ¿Cuál clientes. Este informe tiene todos los detalles de los casos de
es el objeto de prueba? • Versión de la prueba que se han ejecutado con éxito y si hay algún defecto
aplicación de software bajo prueba pendiente que el equipo planea resolver después de la
• Detalles del entorno de prueba - hardware y implementación del proyecto, también se menciona en este informe.
software
• Nombre del desarrollador que necesita evaluar
y resolver el incidente
• ¿Cuándo se observó la falla? • Clasificación
• Estado • Gravedad Prioridad • Requisito •
Causa • Descripción del problema •
Descripción del problema Detalles del caso
•
de prueba
70
Machine Translated by Google
71
Machine Translated by Google
2 Definición de probabilidad de riesgo que explicaría cuáles son las los factores sociales, internos o externos deben evaluarse adecuadamente.
posibilidades de que ese riesgo ocurra
Para identificar los riesgos a los que puede estar sujeto su proyecto, es
En esta fase de Gestión de riesgos, debe definir procesos que son
importante estudiar primero los problemas que enfrentan los proyectos
importantes para la identificación de riesgos.
anteriores. Estudie adecuadamente el plan del proyecto y verifique todas
Todos los detalles del riesgo, como la identificación única, la fecha en que
las posibles áreas que son vulnerables a algunos u otros tipos de riesgos.
se identificó, la descripción, etc., deben mencionarse claramente.
La mejor manera de analizar un plan de proyecto es convertirlo en un
diagrama de flujo y examinar todas las áreas esenciales. Es importante
realizar algunas sesiones de lluvia de ideas para identificar las incógnitas
Análisis de riesgos de software
conocidas que pueden afectar el proyecto. Cualquier decisión tomada
El análisis de riesgos de software es un aspecto muy importante de la
relacionada con aspectos técnicos, operativos, políticos, legales,
gestión de riesgos. En esta fase se identifica el riesgo y luego se categoriza.
Luego de la categorización del riesgo, se analiza el nivel, probabilidad
(porcentaje) e impacto del riesgo. La probabilidad se define en porcentaje.
72
Machine Translated by Google
después de examinar cuáles son las posibilidades de que ocurra un Análisis de riesgo cuantitativo: se puede utilizar para el análisis de
riesgo debido a diversas condiciones técnicas. Estas condiciones riesgo de software, pero se considera inapropiado porque el nivel de
técnicas pueden ser: riesgo se define en %, lo que no brinda una imagen muy clara.
1 Complejidad de la tecnología
2 Conocimientos técnicos que posee la prueba
equipo Planificación de riesgos de software
3 Conflictos dentro del equipo La planificación de riesgos de software tiene que ver con:
4 Equipos distribuidos en una gran área geográfica 1 Definición de medidas preventivas que reduzcan la posibilidad o
probabilidad de varios riesgos.
5 Uso de herramientas de prueba de mala calidad
2 Definir medidas que reducirían el impacto en caso de que ocurra
Con impacto nos referimos a la consecuencia de un riesgo en caso un riesgo.
de que ocurra. Es importante conocer el impacto porque es necesario 3 Seguimiento constante de los procesos para identificar
saber cómo un negocio puede verse afectado: 1 Cuál será la pérdida riesgos lo antes posible.
para el cliente
73
Machine Translated by Google
74
Machine Translated by Google
Pruebas
obras
• Matriz de Trazabilidad •
Técnicas de Estimación de Pruebas de Software •
¿Qué es el ciclo de vida de la gestión de defectos y cómo
Gestión de la Configuración • Gestión del Cambio funciona?
75
Machine Translated by Google
4 Asignado: este estado indica que el error se ha asignado a la marca de identificación se coloca en la celda donde se
un desarrollador para que lo corrija. cruzan la columna y la fila.
5 Re-probado: Una vez que se corrige el defecto, el probador
realiza pruebas para comprobar si el defecto se ha Entonces, si colocamos los diversos requisitos del proyecto en
cerrado o no. la columna de la izquierda y varios procesos de prueba en la
6 Reabierto/cerrado: si el defecto es reparado se le asigna parte superior de la fila. Luego, podemos mapear fácilmente
el estado de 'cerrado' o en caso contrario se 'reabierto'. qué procesos de prueba se han completado para cada uno de
los requisitos. Esto daría una idea precisa sobre cuánto
porcentaje de requisitos se ha completado.
¿Qué es la matriz de trazabilidad?
La matriz de trazabilidad es una herramienta que se utiliza para
conectar y rastrear los requisitos del proyecto (relacionados ¿Q ué son las técnicas de estimación de pruebas de
con la seguridad, la aplicación y el negocio) con los procesos software?
de implementación y prueba. Esto ayuda a analizar cuánto de Los diferentes proyectos de software pertenecen a diferentes
los requisitos del proyecto se han completado. dominios, por lo que las técnicas de estimación de software
pueden variar un poco de un proyecto a otro. Además, es muy
difícil acertar en la estimación a la primera. Sin embargo, las
Una matriz de trazabilidad es de gran utilidad en proyectos técnicas de estimación de software son muy importantes para
complejos de desarrollo de software. Con la ayuda de esta una empresa. Desempeña un papel muy importante en el
herramienta, puede rastrear cómo funcionan las cosas en SDLC. Las técnicas de estimación proporcionan una estimación
cualquier sección del proyecto. Esta matriz se crea en un del tiempo que puede ser necesario para terminar una tarea en particular.
documento de hoja de cálculo que consta de filas y columnas.
Un conjunto de valores se establece en la fila y otro conjunto La estimación se realiza para tener una idea aproximada de
de valores se establece en las columnas. Si hay algún tipo de cuánto esfuerzo se necesitaría para completar una tarea en
relación entre cualquier valor de la columna y cualquier valor particular. La estimación también podría significar costo.
de la fila entonces un Muchos factores, como la experiencia pasada, las suposiciones,
los documentos, los riesgos calculados, etc., ayudan a determinar
76
Machine Translated by Google
la estimación para un ciclo de desarrollo de software. Esta estimación que existe la posibilidad de que surjan problemas pero
ayuda a una organización en la licitación de un proyecto. La estimación eventualmente todo estará bien (B). El tercer enfoque es la
del software es necesaria para evitar las posibilidades de sobrepasar estimación pesimista donde todo saldrá mal (C). Entonces, la
el presupuesto durante las pruebas o la demora en la finalización del fórmula de estimación se define como: A+(4*B)+C/6 4 El
proyecto. método de punto funcional sugiere que: (Estimación de
1 La técnica de estimación del software Delphi es la técnica más esfuerzo total) = (Número total de puntos de función) (estimación
utilizada para la estimación. Proporciona una forma de lograr de cada punto funcional).
*
un acuerdo dentro de un equipo sin ningún conflicto. Cada
uno del equipo proporciona un presupuesto anónimo e La fórmula mencionada anteriormente aclara que se da más
individual que es valorado por el coordinador. Si la evaluación peso a cada punto de función. Los puntos de función se
está dentro del rango aceptable, entonces se puede tomar clasifican en complejos, medios y simples y luego se realiza
una decisión o, de lo contrario, se repite el proceso nuevamente. una estimación.
asumiendo que nada saldrá mal y que todas las condiciones • Después de cada revisión, es importante etiquetar los elementos
están bien (A). El segundo enfoque es de estimación más de configuración y las líneas base.
probable donde se supone
77
Machine Translated by Google
El desarrollo de software es un proceso complejo donde los documentado y todas las configuraciones son fáciles de
siguientes problemas son muy comunes: identificar.
1 Muchas veces los desarrolladores tienden a sobrescribir las
modificaciones de los demás
2 Si las versiones no se mantienen adecuadamente, el proceso
de integración puede ser muy difícil.
3 A veces hay problemas de compatibilidad entre las versiones
del compilador y las herramientas de desarrollo.
78
Machine Translated by Google
los miembros del personal lidian con la presión en importante monitorear los cambios y rastrear los detalles
condiciones difíciles. del sistema.
2 Control del cambio: hacer frente a los nuevos cambios en el 3 Efectuar cambios: generar ganancias a partir de los cambios
entorno empresarial. Independientemente de los nuevos positivos.
cambios que realice en el entorno, es
79
Machine Translated by Google
Gracias
Me gustaría agradecerle nuevamente por tomarse el tiempo de
leer Pruebas de software reveladas. Esperamos que haya
disfrutado leyendo este libro tanto como nosotros lo habíamos
hecho mientras lo escribíamos. Es nuestro mayor placer si de
alguna manera logramos ayudarlo a construir una base sólida
de pruebas de software.
80