Ingeniería de software——Capítulo 7 Realización de puntos de conocimiento

Esta columna son las notas personales del blogger, el objetivo principal es utilizar el tiempo fragmentado para memorizar los puntos de conocimiento de la ingeniería blanda, ¡declaro por la presente!

Directorio de artículos

 1. ¿En qué dos partes consiste la implementación?

2. ¿Qué es la codificación? ¿En qué características del programa tiene un efecto profundo el lenguaje de programación elegido?

3. ¿Qué dos fases abarcan las pruebas de software en el ciclo de vida del software?

4. ¿Cuál es la proporción de la carga de trabajo de las pruebas con respecto a la carga de trabajo total del desarrollo de software?

5. ¿Cuál es un trabajo importante antes de codificar?

6. ¿Qué aspectos se deben considerar en las reglas de codificación?

7. ¿Cuáles son los dos aspectos principales de la eficiencia?

8. ¿El principio de eficiencia?

9. ¿Cuál es el propósito fundamental de la fase de prueba?

10. ¿Cuál es el propósito o la definición de las pruebas de software?

11. ¿Cuáles son los criterios para las pruebas?

12. De acuerdo con el orden del tiempo de prueba, ¿cuáles son los pasos de la prueba?

13. ¿Qué es la operación en paralelo?

14. ¿Qué dos partes se incluyen en el flujo de información en la fase de prueba y de qué partes están compuestas?

15. ¿Qué son las pruebas unitarias? ¿Qué técnicas de prueba se utilizan principalmente?

16. ¿Cuál es el enfoque de las pruebas unitarias?

17. ¿Qué hace que la revisión de código sea superior a las pruebas por computadora?

18. ¿Qué dos programas virtuales se deben desarrollar para las pruebas unitarias?

19. ¿Qué beneficios aporta un alto grado de cohesión del módulo a las pruebas unitarias?

20. ¿Qué son las pruebas de integración? ¿Cuál es el objetivo principal?

21. ¿Cuáles son las dos formas de ensamblar módulos en programas?

22. ¿Cuáles son las dos estrategias del método de prueba incremental para incorporar módulos a un programa?

23. ¿Cuál es la comparación entre estrategias top-down y bottom-up? (La desventaja de una estrategia es la ventaja de la otra)

24. ¿Qué es una estrategia mixta?

 25. ¿Qué son las pruebas de regresión?

26. ¿Cuál es el objetivo de las pruebas de validación? ¿Cuál es la diferencia entre verificación y confirmación?

27. ¿Cuál es la definición de eficacia del software?

28. ¿Cuál es la base para las pruebas de confirmación?

29. ¿Cuál es el objeto principal de la prueba de confirmación? ¿Qué tipo de método de prueba se suele utilizar?

30. ¿Cuál es la diferencia entre las pruebas Alfa y Beta?

31. ¿Qué es un caso de prueba?

32. ¿Qué incluye la tecnología de pruebas de caja blanca?

33. ¿Qué es la cobertura lógica?

34. ¿Qué es la cobertura lógica de débil a fuerte?

35. ¿Qué incluye la prueba de estructura de control?

36. La prueba de ruta básica es una especie de prueba de estructura de control.¿Cuáles son los pasos específicos?

37. ¿Cuál es la diferencia entre la prueba de caja blanca y la prueba de caja negra?

38. ¿Cuáles son las técnicas de prueba de caja negra?

39. ¿Cuáles son los pasos del método de división de clases de equivalencia?

40. ¿Cuáles son las características del método de adivinación incorrecto?

41. ¿Cuáles son las formas efectivas de elegir combinaciones de entrada?

42. ¿Qué es la depuración?

43. ¿Cuáles son las formas de depuración?

44. ¿Cuál es la diferencia entre la confiabilidad y la disponibilidad del software?

45. ¿Cuáles son los métodos para estimar el número total de errores?

46. ​​¿Qué es la revisión de software?

47. ¿Qué tipos de revisión de software se dividen según las diferentes etapas de revisión?

48. ¿Por qué es extremadamente importante la revisión del software? (Importancia de la revisión del software)

Resumen al final del capítulo.


 1. ¿En qué dos partes consiste la implementación?

Una implementación consta de codificación y prueba , que se conocen colectivamente como la implementación.

2. ¿Qué es la codificación? ¿En qué características del programa tiene un efecto profundo el lenguaje de programación elegido?

La llamada codificación consiste en traducir los resultados del diseño del software en programas escritos en un determinado lenguaje de programación.

Las características del lenguaje de programación seleccionado y el estilo de codificación tendrán un profundo impacto en la confiabilidad, legibilidad, capacidad de prueba y mantenimiento del programa.

3. ¿Qué dos fases abarcan las pruebas de software en el ciclo de vida del software?

Fase de prueba unitaria: el escritor y el probador del módulo son la misma persona

Fase de prueba integral: realizada por probadores dedicados

4. ¿Cuál es la proporción de la carga de trabajo de las pruebas con respecto a la carga de trabajo total del desarrollo de software?

40% o más

5. ¿Cuál es un trabajo importante antes de codificar?

Elija un lenguaje de programación apropiado , los lenguajes de alto nivel son significativamente mejores que los lenguajes ensambladores

6. ¿Qué aspectos se deben considerar en las reglas de codificación?

  1. Documentación dentro del programa.
  2. Descripción de datos
  3. construcción de declaraciones
  4. de entrada y salida
  5. eficiencia

7. ¿Cuáles son los dos aspectos principales de la eficiencia?

Tiempo y Capacidad Espacio

8. ¿El principio de eficiencia?

  1. La eficiencia es un requisito de desempeño
  2. La eficiencia se mejora con un buen diseño
  3. La eficiencia del programa es consistente con la simplicidad del programa , no sacrifique la claridad y la legibilidad del programa para aumentar la eficiencia innecesariamente.

9. ¿Cuál es el propósito fundamental de la fase de prueba?

El propósito fundamental de la fase de prueba es encontrar y eliminar         tantos errores potenciales en el software como sea posible , y finalmente entregar un sistema de software de alta calidad a los usuarios .

        Exponer problemas no es el objetivo final de las pruebas de software, encontrar problemas es resolverlos.

10. ¿Cuál es el propósito o la definición de las pruebas de software?

  1. La prueba es el proceso de ejecutar un programa para encontrar errores en él (Definición)
  2. Un buen plan de prueba es aquel que tiene una alta probabilidad de descubrir errores no descubiertos hasta ahora.
  3. Una prueba exitosa es aquella que encuentra un error no descubierto hasta ahora.

11. ¿Cuáles son los criterios para las pruebas?

  1. Todas las pruebas deben ser trazables a los requisitos del usuario.
  2. Se debe desarrollar un plan de prueba mucho antes de que comience la prueba.
  3. Aplicar el principio de Pareto a las pruebas de software, es decir, el 80% de los errores pueden ser causados ​​por el 20% de los módulos del programa.
  4. Debería comenzar con pruebas de " pequeña escala " y avanzar hasta pruebas de " gran escala "
  5. Las pruebas exhaustivas son imposibles
  6. Para lograr los mejores resultados de prueba, un tercero independiente debe participar en el trabajo de prueba.

12. De acuerdo con el orden del tiempo de prueba, ¿cuáles son los pasos de la prueba?

  1. prueba de unidad
  2. Pruebas de integración
  3. Prueba del sistema
  4. Pruebas de aceptación (pruebas de confirmación)

13. ¿Qué es la operación en paralelo?

        La operación en paralelo significa que los productos de software importantes a menudo no se ponen en operación productiva inmediatamente después de la aceptación , sino que pasarán por un período de tiempo de operación en paralelo con el sistema anterior.

14. ¿Qué dos partes se incluyen en el flujo de información en la fase de prueba y de qué partes están compuestas?

  1. Configuración de software : especificación de requisitos, especificación de diseño, lista de programas fuente
  2. Configuración de prueba : esquema y plan de prueba, etc.

15. ¿Qué son las pruebas unitarias? ¿Qué técnicas de prueba se utilizan principalmente?

        Las pruebas unitarias se centran en detectar la unidad más pequeña de diseño de software: módulo , que utiliza principalmente " tecnología de prueba de caja blanca " .

        La prueba de múltiples módulos se puede llevar a cabo en paralelo, utilizando dos métodos diferentes de prueba manual y prueba por computadora para completar el trabajo, complementarse entre sí y complementarse entre sí.

16. ¿Cuál es el enfoque de las pruebas unitarias?

  1. interfaz de módulo
  2. estructura de datos locales
  3. vía de ejecución importante
  4. ruta de manejo de errores
  5. Condiciones de contorno (lo más importante)

17. ¿Qué hace que la revisión de código sea superior a las pruebas por computadora?

        Se pueden encontrar muchos errores en una reunión de revisión de código , y después de que se encuentra el error mediante pruebas informáticas, generalmente es necesario corregir el error antes de continuar con la prueba, es decir, los errores se encuentran y corrigen uno por uno .

18. ¿Qué dos programas virtuales se deben desarrollar para las pruebas unitarias?

Software del controlador (programa principal)

Software de código auxiliar (módulos de código auxiliar, subrutinas ficticias)

19. ¿Qué beneficios aporta un alto grado de cohesión del módulo a las pruebas unitarias?

        Un alto grado de cohesión del módulo simplifica el proceso de prueba unitaria . Si cada módulo solo completa una función, la cantidad de planes de prueba requeridos se reducirá significativamente y los errores en los módulos son fáciles de predecir y encontrar.

20. ¿Qué son las pruebas de integración? ¿Cuál es el objetivo principal?

Las pruebas de integración son una técnica sistemática para probar y ensamblar software cuyo objetivo principal es encontrar problemas relacionados con las interfaces .

21. ¿Cuáles son las dos formas de ensamblar módulos en programas?

Existen métodos de prueba no incrementales y métodos de prueba incrementales cuando         los módulos se ensamblan en programas , y los métodos de prueba incrementales se usan generalmente en las pruebas de integración.

22. ¿Cuáles son las dos estrategias del método de prueba incremental para incorporar módulos a un programa?

estrategias top-down y bottom-up

23. ¿Cuál es la comparación entre estrategias top-down y bottom-up? (La desventaja de una estrategia es la ventaja de la otra)

Las principales desventajas del enfoque de prueba de arriba hacia abajo son:

  1. necesito un talón
  2. Puede encontrar dificultades de prueba asociadas con este
  3. Los errores en los módulos críticos de bajo nivel se encuentran tarde
  4. Con este método, la mano de obra no puede desarrollarse completamente en la etapa inicial.

Las principales ventajas del enfoque de prueba de arriba hacia abajo:

  1. No se requiere conductor de prueba
  2. Capacidad para implementar y verificar la funcionalidad principal del sistema al principio de la fase de prueba
  3. Capacidad para detectar errores de interfaz en módulos de nivel superior en una etapa temprana

 

24. ¿Qué es una estrategia mixta?

Estrategia mixta = método de prueba de arriba hacia abajo mejorado + método híbrido

[Nota]: el método híbrido también se denomina "método sándwich", es decir, el método de prueba de arriba hacia abajo se usa para la capa superior de la estructura del software, y el método de prueba de abajo hacia arriba se usa para la capa inferior

 25. ¿Qué son las pruebas de regresión?

Las pruebas de regresión se refieren a volver a ejecutar un subconjunto de pruebas que ya se han realizado.

26. ¿Cuál es el objetivo de las pruebas de validación? ¿Cuál es la diferencia entre verificación y confirmación?

Las pruebas de confirmación también se conocen como pruebas de aceptación , cuyo objetivo es verificar la eficacia del software.

La verificación se refiere a la serie de actividades que aseguran que el software implementa correctamente un requisito específico.

La validación se refiere a la serie de actividades realizadas para garantizar que el software realmente satisfaga las necesidades del usuario.

27. ¿Cuál es la definición de eficacia del software?

La efectividad del software significa que el software es efectivo si sus funciones y desempeño son consistentes con lo que los usuarios esperan razonablemente.

28. ¿Cuál es la base para las pruebas de confirmación?

Especificación de Requerimientos de Software

29. ¿Cuál es el objeto principal de la prueba de confirmación? ¿Qué tipo de método de prueba se suele utilizar?

Las pruebas de confirmación están centradas en el usuario y, por lo general, utilizan pruebas de caja negra . Los problemas encontrados en esta etapa suelen estar relacionados con los errores en la etapa de análisis de requerimientos , los cuales involucran una amplia gama de áreas y son de difícil solución.

30. ¿Cuál es la diferencia entre las pruebas Alfa y Beta?

Las pruebas alfa se llevan a cabo en un entorno controlado , generalmente con los desarrolladores dirigiendo las pruebas de los usuarios.

Las pruebas beta las realizan los usuarios finales del software en uno o más sitios del cliente , y los desarrolladores no están en el sitio de prueba.

31. ¿Qué es un caso de prueba?

Los datos de prueba y los resultados de salida esperados se denominan casos de prueba, el problema más difícil es diseñar los datos de entrada para la prueba.

32. ¿Qué incluye la tecnología de pruebas de caja blanca?

Pruebas de estructura de control y cobertura lógica

33. ¿Qué es la cobertura lógica?

Cobertura lógica es el término general para procesos de prueba de ruta progresivamente más y más completos.

34. ¿Qué es la cobertura lógica de débil a fuerte?

  1. Cobertura de declaraciones (cobertura de puntos): seleccione suficientes datos de prueba para que cada declaración en el programa bajo prueba se ejecute al menos una vez
  2. Cobertura de decisión (cobertura de borde): No solo cada declaración debe ejecutarse al menos una vez, cada rama de cada decisión debe ejecutarse al menos una vez
  3. Cobertura de condición : no solo ejecutar cada declaración al menos una vez, sino también hacer que cada condición en la expresión de decisión obtenga varios resultados posibles
  4. Cobertura de juicio/condición : cada condición en la expresión de juicio puede tomar varios valores posibles, y cada expresión de juicio también puede tomar varios resultados posibles
  5. Cobertura de combinación de condiciones : seleccione suficientes datos de prueba para que cada posible combinación de condiciones en cada expresión de decisión ocurra al menos una vez

【Nota】:

  1. Cobertura de decisión >= cobertura de declaración
  2. cobertura condicional >= cobertura de declaración
  3. La cobertura de condición suele ser más fuerte que la cobertura de decisión, no existe una relación de inclusión específica
  4. Anulación de decisión/condición >= Anulación de decisión
  5. Anulación de juicio/condición >= Anulación de condición
  6. El criterio más fuerte es la cobertura de ruta.

35. ¿Qué incluye la prueba de estructura de control?

Prueba de ruta básica, prueba condicional, prueba de bucle

36. La prueba de ruta básica es una especie de prueba de estructura de control.¿Cuáles son los pasos específicos?

  1. Dibuje el diagrama de flujo correspondiente de acuerdo con los resultados del diseño del proceso.
  2. Calcule la complejidad circular del gráfico de flujo , hay tantos caminos independientes como números, y los resultados de los caminos independientes no son únicos
  3. Determine el conjunto básico de caminos linealmente independientes (un camino independiente contiene al menos un borde que no se usó antes de definir el camino )
  4. Diseñe casos de prueba que apliquen cada ruta en el conjunto base

37. ¿Cuál es la diferencia entre la prueba de caja blanca y la prueba de caja negra?

  1. La estructura lógica del software de prueba y detección de caja blanca , la función del software de prueba y detección de caja negra
  2. La premisa de las pruebas de caja blanca es que el probador conoce completamente la estructura y el algoritmo de procesamiento del programa , mientras que las pruebas de caja negra consideran el programa como una caja negra sin considerar el procesamiento interno del programa.
  3. La prueba de caja blanca se realiza en la etapa inicial de la prueba , mientras que la prueba de caja negra se usa principalmente en etapas posteriores del proceso de prueba.
  4. Los métodos técnicos utilizados por los dos son diferentes . Las técnicas de prueba de caja blanca incluyen principalmente la cobertura lógica y la prueba de ruta , mientras que las técnicas de prueba de caja negra incluyen principalmente la división de clases de equivalencia y el análisis de valores límite.

38. ¿Cuáles son las técnicas de prueba de caja negra?

Partición de clases de equivalencia, análisis de valores límite, adivinación de errores

39. ¿Cuáles son los pasos del método de división de clases de equivalencia?

  La división de equivalencia primero divide las clases de equivalencia de los datos de entrada , para determinar las clases de equivalencia efectivas y las clases de equivalencia no válidas de los datos de entrada , y también necesita analizar las clases de equivalencia de los datos de salida , para derivar las clases de equivalencia correspondientes . de los datos de entrada según las clases de equivalencia de los datos de salida clase de equivalencia

[Nota]: El programa es más propenso a errores cuando se trata de condiciones de contorno. Por lo general , las dos técnicas de división de equivalencia y análisis de valores de contorno siempre se utilizan en combinación cuando se diseña un plan de prueba.

40. ¿Cuáles son las características del método de adivinación incorrecto?

La adivinación de errores depende en gran medida de la intuición y la experiencia.

41. ¿Cuáles son las formas efectivas de elegir combinaciones de entrada?

  1. Usar tablas de decisión o árboles de decisión como herramientas
  2. Combinación de pruebas informáticas e inspección humana

42. ¿Qué es la depuración?

La depuración es el proceso de eliminación de errores después de que las pruebas encuentran errores , y es el trabajo mental más difícil en el proceso de desarrollo de software.

43. ¿Cuáles son las formas de depuración?

  1. fuerza bruta
  2. retrocediendo
  3. Método de eliminación de causas (incluido el método de búsqueda binaria, método de inducción, método deductivo)

44. ¿Cuál es la diferencia entre la confiabilidad y la disponibilidad del software?

La confiabilidad del software se refiere a la probabilidad de que un programa se ejecute con éxito dentro de un intervalo de tiempo dado de acuerdo con las especificaciones.

La disponibilidad del software se refiere a la probabilidad de que un programa se ejecute correctamente de acuerdo con las especificaciones en un momento dado.

45. ¿Cuáles son los métodos para estimar el número total de errores?

  1. Errores de implantación
  2. prueba separada

46. ​​¿Qué es la revisión de software?

        Una revisión de software es un medio para evaluar el estado de un elemento o proyecto de software para determinar si es consistente con los resultados planificados y permitir la mejora.

47. ¿Qué tipos de revisión de software se dividen según las diferentes etapas de revisión?

  1. necesita revisión
  2. revisión funcional
  3. revisión de calidad
  4. revisión de costos
  5. revisión de mantenimiento

48. ¿Por qué es extremadamente importante la revisión del software? (Importancia de la revisión del software)

La revisión del software puede organizar la fuerza colectiva del         equipo del proyecto , realizar un análisis razonable del contenido relacionado con el software y encontrar y resolver problemas tanto como sea posible en la etapa inicial de la vida del software, por lo que la revisión del software es extremadamente importante.

Resumen al final del capítulo.

        La implementación incluye dos fases de codificación y prueba .

        De acuerdo con la metodología tradicional de ingeniería de software, la codificación se lleva a cabo después del diseño general y el diseño detallado del software. Simplemente traduce el resultado del diseño del software en un programa escrito en un determinado lenguaje de programación . Por lo tanto, la calidad del programa básicamente es depende de la calidad del diseño. Sin embargo, el lenguaje utilizado para la codificación, y especialmente el estilo de escritura de los programas, también tiene un impacto considerable en la calidad del programa.

        Un gran número de resultados prácticos muestran que el lenguaje de programación de alto nivel tiene muchas ventajas sobre el lenguaje ensamblador. Por lo tanto, a menos que sea muy necesario, generalmente no use lenguaje ensamblador para escribir programas. En cuanto a qué lenguaje de programación de alto nivel elegir, no solo se deben considerar las características del lenguaje en sí, sino también una serie de factores prácticos como el entorno de uso.

        Una buena documentación dentro del programa, un formato regular de descripción de datos, una estructura de declaración simple y clara y un formato de entrada y salida, etc., tienen un gran efecto en la mejora de la legibilidad del programa y también mejoran la legibilidad del programa en gran medida. .mantenibilidad .

En la actualidad, las pruebas de software siguen siendo el principal medio         para garantizar la confiabilidad del software . La tarea fundamental de la fase de prueba es encontrar y corregir errores en el software.

        Las pruebas de software son la tarea más ardua y ardua en el proceso de desarrollo de software.Las pruebas de software a gran escala deben realizarse en etapas, generalmente al menos divididas en tres etapas básicas: pruebas unitarias, pruebas de integración y pruebas de aceptación .

        El diseño de un plan de prueba es una cuestión técnica clave en la fase de prueba, el objetivo básico es seleccionar la menor cantidad de datos de prueba eficientes para lograr una prueba lo más perfecta posible, para encontrar tantos problemas en el software como sea posible.

        Debe reconocerse que las pruebas de software no solo se refieren a las pruebas con computadoras, sino que también incluyen las pruebas realizadas por humanos (p. ej., revisión de código). Los dos métodos de prueba tienen sus propias ventajas y desventajas, se complementan y ambos son indispensables.

        Las pruebas de caja blanca y las pruebas de caja negra son dos métodos básicos de prueba de software.Estos dos métodos tienen sus propias fortalezas y se complementan entre sí. Por lo general, el enfoque de caja blanca se usa principalmente en las primeras etapas del proceso de prueba , mientras que el enfoque de caja negra se usa principalmente en las etapas posteriores del proceso de prueba . Para diseñar soluciones de prueba efectivas, los ingenieros de software deben comprender profundamente y adherirse a los principios básicos de las pruebas de software.

        Las técnicas para diseñar esquemas de prueba de caja blanca incluyen principalmente cobertura lógica y prueba de estructura de control ; las técnicas para diseñar esquemas de prueba de caja negra incluyen principalmente partición de equivalencia, análisis de valor límite y especulación de error .

        Los errores de software encontrados en el proceso de prueba deben ser corregidos a tiempo, que es la tarea de depuración. Para corregir el error, primero se debe determinar la ubicación exacta del error, que es la tarea más difícil en el proceso de depuración y requiere un pensamiento y un razonamiento cuidadosos y cuidadosos. Para corregir errores, a menudo es necesario corregir el diseño original, y es necesario considerar consideraciones generales, en lugar de "tratar la cabeza cuando duele la cabeza y tratar el pie cuando duele el pie", y debe tratar de evitar la introducción de nuevos errores durante el proceso de depuración.

        La prueba y la depuración son dos procesos muy relacionados en la fase de prueba del software y, a menudo, se llevan a cabo de forma alterna .

El número de errores ocultos         en el programa determina directamente la confiabilidad del software . La cantidad de errores que quedan en el programa se puede estimar mediante pruebas. De acuerdo a la cantidad de errores que se han encontrado y corregido en el proceso de prueba y depuración, se puede estimar el tiempo promedio entre fallas del software, por el contrario, de acuerdo al tiempo promedio requerido entre fallas del software, el número Se puede estimar el número de errores que se deben corregir, para poder juzgar la etapa de prueba.

Siguiente capítulo : Ingeniería de software—Capítulo 8 Puntos de conocimiento de mantenimiento

 

 Repetidamente, con los pies en la tierra; nunca olvidar, ¡habrá ecos!

Supongo que te gusta

Origin blog.csdn.net/qq_52487066/article/details/131519742
Recomendado
Clasificación