Bienvenidos sean a este post, hoy veremos otra seccion de como desarrollar proyectos.
En el post anterior vimos el paso mas importante como es la programacion. Con nuestro proyecto terminado, debemos comenzar con los testing. Por lo general, en los ultimos tiempos las compañias suelen tener un equipo denominado como Garantia de Calidad (QA por sus siglas en ingles) y son o deberian ser los encargados de testear al proyecto. Los inconvenientes o issues que se encuentren durante la fase de testing son convertidos como tareas y asignadas a los programadores para arreglarlas. Si son problemas graves pueden afectar la realizacion del producto o simplemente se clasifican como problemas minimos sin afectarla.
Si bien la tarea basica de los programadores no es arreglar los problemas sino encontrar la raiz del problema. Por simplicidad, echemos una mirada al metodo generar_usuario, la cual genera numeros aleatorios combinado con el email para generar los usuarios:
std::string generar_usuario(const std::string& email)
{
int num = get_random_number();
std::string parte_usuario = email.substr(0, email.find('@'));
return parte_usuario + std::to_string(num);
}
Esta funcion recibe el email que ingresamos para luego generar un numero aleatorio con get_random_number y este lo almacenamos en la variable num. La segunda variable se encarga de buscar la parte del usuario del email, para ello usa a substr y tomara todo el texto antes del arroba de la direccion de email. Y finalmente, devolvemos la concatenacion del nombre del usuario con el numero aleatorio.
Vamos a suponer que el equipo QA reporta un problema con esta funcion. El problema esta relacionado con el numero aleatorio. Supongamos que tenemos un email con el nombre de juan@correo.com y lo mandamos a la funcion anterior. Vamos a suponer que devuelve el usuario juan13, hasta aca no hay ningun inconveniente. Pero despues, agregamos otro email con el nombre de marta@otrocorreo.com y al pasarlo a la funcion nos devuelve el usuario marta13. Como pueden ver solo devuelve ese valor, por lo tanto ingresemos otro usuario con el nombre de juan o marta nos devolvera el mismo usuario y esto lleva a que el sistema indique que el usuario ya existe. Haciendo que el equipo reporte este issue a los programadores.
A simple vista podemos decir que el inconveniente esta en la funcion get_random_number pero esto puede no ser la raiz del problema. Por lo tanto, un enfoque equivocado sobre esto nos llevaria a que modifiquemos esta funcion pero que sucede si esta funcion a su vez es utilizada por otra seccion del codigo? Puede llevarnos a otros problemas. Por eso, siempre tendremos muchos escenarios a contemplar antes de aplicar una solucion. Este es un ejemplo simple pero que no lo es tanto y siempre debemos ver mas alla de lo evidente para evitar mas inconvenientes a futuro.
En resumen, hoy hemos visto a testing y estabilizacion, unos conceptos bases, asi como algunos casos que pueden surgir en nuestros proyectos, y como no siempre la solucion mas obvia es la correcta. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
