“Conocimiento software>Software de utilidades

¿Cómo examina el software?

2014/2/8
Examinar el software es un proceso multifacético dependiendo de sus objetivos. ¿Está tratando de entender cómo funciona, encontrar errores, evaluar su seguridad o evaluar su usabilidad? El enfoque cambia en consecuencia. Aquí hay un desglose de los métodos comunes:

1. Análisis estático: Esto implica examinar el código * sin * ejecutarlo. Los métodos incluyen:

* Revisión del código: Inspeccionar manualmente el código para errores, inconsistencias de estilo, vulnerabilidades de seguridad y adherencia a los estándares de codificación. Esto a menudo se hace en colaboración.

* Herramientas de análisis de código estático: Herramientas automatizadas que analizan el código para posibles errores, vulnerabilidades y problemas de calidad del código. Los ejemplos incluyen Sonarqube, FindBugs y Lint. Estas herramientas pueden identificar cosas como excepciones de puntero nulo, fugas de memoria y prácticas de codificación inseguros.

* Revisión de diseño: Examinar la arquitectura, los documentos de diseño y las especificaciones del software para identificar posibles problemas al principio del ciclo de vida del desarrollo.

2. Análisis dinámico: Esto implica ejecutar el software y observar su comportamiento. Los métodos incluyen:

* Prueba: Esto es crucial y abarca varias técnicas:

* Prueba unitaria: Prueba de componentes o módulos individuales del software.

* Prueba de integración: Prueba de la interacción entre diferentes componentes.

* Prueba del sistema: Probar todo el sistema en su conjunto.

* Prueba de aceptación: Probar el software para garantizar que cumpla con los requisitos del usuario.

* Prueba de regresión: Vuelva a probar los cambios para garantizar que el nuevo código no haya roto la funcionalidad existente.

* Prueba de rendimiento: Evaluar la velocidad, escalabilidad y estabilidad del software bajo varias cargas. Esto incluye pruebas de carga, pruebas de estrés y pruebas de resistencia.

* Pruebas de seguridad: Identificación de vulnerabilidades que podrían ser explotadas por los atacantes. Esto implica pruebas de penetración, escaneo de vulnerabilidad y auditorías de seguridad.

* Prueba de usabilidad: Observar a los usuarios que interactúan con el software para identificar áreas de mejora en la interfaz de usuario y la experiencia del usuario.

* Depuración: Uso de herramientas de depuración para atravesar el código, inspeccionar variables e identificar la causa raíz de los errores.

* Monitoreo: Observar el comportamiento del software en un entorno de producción para identificar cuellos de botella de rendimiento, errores y otros problemas. Esto a menudo implica la colección de registro y métricas.

* Perfil: Analizar el rendimiento del software para identificar áreas para la optimización.

3. Ingeniería inversa: Esto implica analizar el código compilado o un sistema en ejecución para comprender su funcionalidad, a menudo sin acceso al código fuente. Esto se utiliza para varios fines, incluidos el análisis de seguridad, las pruebas de compatibilidad y la creación de soluciones.

Herramientas y técnicas utilizadas:

* Debuggers (por ejemplo, GDB, LLDB): Para atravesar el código e inspeccionar variables.

* Profilers (por ejemplo, Valgrind, Yourkit): Para identificar cuellos de botella de rendimiento.

* Sistemas de control de versiones (por ejemplo, GIT): Para el seguimiento de los cambios y la colaboración en la revisión del código.

* Los rastreadores de emisión (por ejemplo, Jira, problemas de Github): Para administrar informes de errores y solicitudes de funciones.

* Marcos de prueba automatizados (por ejemplo, Junit, Pytest): Para escribir y ejecutar pruebas automatizadas.

* Herramientas de análisis estático (como se mencionó anteriormente): Para detectar automáticamente los olores de código y posibles insectos.

Los métodos y herramientas específicos utilizados dependen en gran medida del contexto:el tipo de software, la etapa de desarrollo, los recursos disponibles y los objetivos del examen. Un examen integral a menudo implica una combinación de técnicas de análisis estáticos y dinámicos.

Software de utilidades
Error 1101 en una instalación Java
Cómo abrir un archivo cdm
Cómo sincronizar con ChronoSync
Cómo cambiar una cuenta de usuario en una cuenta de usuario móvil
Cómo saber la cantidad de un documento es plagiado
Cómo desinstalar HP Remote Support Software Manager
Cómo transferir los datos de un usuario a otro
Cómo restaurar un archivo de DD USB ​​
Conocimiento de la computadora © http://www.ordenador.online