Introducción a las pruebas, la depuración y el control de excepciones
- 7 minutos
Cada desarrollador de software necesita completar algún nivel de prueba y depuración cuando desarrollan su código, y a menudo se requiere el control de excepciones. ¿Pero cómo están relacionadas estas tres tareas y cuándo deben implementarse?
Prueba, depuración y control de excepciones
La depuración de código está claramente relacionada con el desarrollo y las pruebas de código. Después de todo, realice correcciones en la lógica de código a medida que desarrolle la aplicación y también ejecute el código periódicamente para comprobar que la sintaxis del código y la lógica son correctas. ¿Realmente la depuración significa actualizar la lógica del código durante el proceso de desarrollo? ¿Y verificar que tu código se compila y ejecuta realmente es lo que se entiende por probar? En realidad, no.
¿Cómo se relaciona el control de excepciones con el desarrollo y las pruebas de código? De hecho, ¿qué significa "control de excepciones" y se espera que un desarrollador lo maneje? En el desarrollo de C#, los errores que se producen durante el tiempo de ejecución de la aplicación (frente a los errores de compilación que se producen durante el proceso de compilación) se conocen como excepciones y "control de excepciones" es el proceso que un desarrollador usa para administrar esas excepciones en tiempo de ejecución dentro de su código.
Es posible que se pregunte cómo se relaciona el control de excepciones con el desarrollo y las pruebas de código. De hecho, ¿qué significa "manejo de excepciones" y se espera que un desarrollador lo realice? En el desarrollo de C#, los errores que se producen mientras se ejecuta la aplicación se conocen como excepciones. El término "control de excepciones" hace referencia al proceso que un desarrollador usa para administrar esas excepciones en tiempo de ejecución dentro de su código. Los errores que se producen durante el proceso de compilación se conocen como errores y no forman parte del proceso de control de excepciones.
En las secciones siguientes se describe el rol del desarrollador en pruebas, depuración y control de excepciones.
Responsabilidades de desarrollo y pruebas de software
El proceso de desarrollo de software puede implicar muchas pruebas. De hecho, las pruebas de software tienen su propia materia especializada, y los evaluadores de software desempeñan un papel importante en el desarrollo de aplicaciones grandes. Incluso hay enfoques para el proceso de desarrollo de software que se basan en pruebas, como el desarrollo controlado por pruebas.
Las categorías de pruebas de software se pueden organizar en los tipos de pruebas, los enfoques para las pruebas o una combinación de ambos. Una manera de clasificar los tipos de pruebas es dividir las pruebas en pruebas funcionales y no funcionales . Las categorías funcionales y no funcionales incluyen subcategorías de pruebas. Por ejemplo, las pruebas funcionales y no funcionales se pueden dividir en las subcategorías siguientes:
- Pruebas funcionales: pruebas unitarias - Pruebas de integración - Pruebas del sistema - Pruebas de aceptación
- Pruebas no funcionales: pruebas de seguridad: pruebas de rendimiento: pruebas de facilidad de uso: pruebas de compatibilidad
Aunque es probable que la mayoría de los desarrolladores no se consideren probadores, se espera algún nivel de pruebas antes de que un desarrollador entregue su trabajo. Cuando a los desarrolladores se les asigna un rol formal en el proceso de prueba, a menudo se encuentra en el nivel de las pruebas unitarias.
Nota:
Dado que las pruebas de software son un tema tan grande y, dado que a menudo se realizan mediante un rol de trabajo independiente, los enfoques formales de las pruebas de software no se tratarán en este módulo.
Depuración de código y responsabilidades del desarrollador
La depuración de código es un proceso que los desarrolladores usan para aislar un problema e identificar una o varias formas de corregirlo. El problema podría estar relacionado con la lógica de código o una excepción. En cualquier caso, se trabaja en la depuración del código cuando no funciona de la manera en que debería. Por lo general, el término "depuración está reservado para incidencias en tiempo de ejecución que no son fáciles de aislar. Por tanto, la corrección de incidencias de sintaxis, como la falta de ";" al final de una instrucción de código, no suele considerarse depuración.
Tenga en cuenta el código de ejemplo siguiente:
string[] students = new string[] {"Sophia", "Nicolas", "Zahirah", "Jeong"};
int studentCount = students.Length;
Console.WriteLine("The final name is: " + students[studentCount]);
El ejemplo de código está pensado para lograr lo siguiente:
- Declare una matriz de cadenas denominada
students
. Lastudents
matriz contiene los nombres de los alumnos. - Declare un entero denominado
studentCount
. El código usa elLength
método de la matriz para asignar un valor astudentCount
. - Muestra el nombre del último alumno en la consola. El código usa
studentCount
para acceder al nombre final de lastudents
matriz y usa elConsole.WriteLine()
método para imprimir la información en la consola.
A primera vista, todo parece bien. Sin embargo, este código genera una excepción al intentar imprimir el nombre del alumno en la consola. El desarrollador olvidó que las matrices están basadas en cero. Se debe tener acceso al nombre final de la matriz mediante students[studentCount - 1]
.
La depuración de código es definitivamente una responsabilidad del desarrollador. En este ejemplo de código, es posible que haya reconocido el problema inmediatamente. Sin embargo, en escenarios de codificación más complejos, la búsqueda de un problema no siempre es fácil. No se preocupe, hay herramientas y enfoques que puede usar para realizar un seguimiento de los problemas que son difíciles de encontrar.
Control de excepciones y responsabilidades del desarrollador
Como ha leído anteriormente, los errores que se producen durante el tiempo de ejecución de la aplicación se conocen como excepciones. Si una aplicación genera una excepción y esa excepción no se administra en el código, puede provocar el apagado de la aplicación.
El control de excepciones es definitivamente responsabilidad del desarrollador. C# proporciona una manera de "probar" el código que sabe que podría generar una excepción y una manera de "detectar" las excepciones que se producen.
Resumen
Estos son algunos de los aspectos más importantes que debe recordar de esta unidad:
- Las pruebas, la depuración y el control de excepciones son tareas importantes para los desarrolladores de software.
- Las pruebas se pueden clasificar en pruebas funcionales y no funcionales, y se espera que los desarrolladores realicen algún nivel de pruebas.
- La depuración de código es el proceso de aislar problemas e identificar formas de corregirlos y es responsabilidad del desarrollador.
- El control de excepciones es el proceso de administración de errores que se producen durante el tiempo de ejecución, y los desarrolladores son responsables de controlar excepciones mediante instrucciones "try" y "catch" en su código.