Fin de ciclo de calidad y pruebas de software P1

--Originally published at Memogcia blog

El proyecto

En el inicio del trabajo en equipo fue un poco lento por el tema de los NDA’s para poderles otrogar acceso a mis compañeros y que pudieran poder implementar sus metas que marcamos semanalmente.

Inicialmente decidí en buscar tutoriales buenos para que pudieran ir aprendiendo como se comporta el framework y se pudieran familiarizar mas con el código ya que es un framework orientado a MVC. La curva de aprendizaje no fue tan alta ya que varios compañeros ya habían tenido experiencia trabajando en servicios web, en cuanto a otros que nunca habían implementado servicios web, pero eso no fue una causa para que aprendieran lento, al contrario, mostraban mayor interés en el proyecto y al aprender como es que la mayoria de los servicios web funcionan.

En cuanto a las primeras semanas el equipo mostró interés en aprender el framework, mientras fueron aprendiendo iban surgiendo dudas, mismas que les fui respondiendo a lo largo de los días las cuales de la mayoría fueron preguntas en cómo los controlodores y las vistas funcionan en conjunto para poder mostrar la información en el fronend. En cuanto a ejercicios les pedí que fueran instalando lo necesario para que el framework pudiera correr sin problemas en sus computadoras y pudieran trabajar localmente sin necesidad de estar conectado al servidor. Las instalaciones fueron fáciles en los sistemas de Windows, pero por otro lado en los sitemas linux como Ubuntu y Mac tuvieron un poco mas de reto, lo cual me ayudó a recordar los pasos que se necesitaban hacer para que pudiera correr correctamente el framework y evitar los errores que les aparecía, mismos que me habían salido a mi cuando decidí instalar todo el entorno en Ubuntu, por razones que el servidor está basado en este sistema operativo y que hay mucha diferencia cuando se trabaj en windows, ya que los servicios cuando se instalan no hay una manera de que me llegue una notificación a la hora de haya salido una acutalización para ellos, es por eso que decidí en trabajar en Ubuntu y poder asegurar que lo que estoy haciendo funcionará en producción, es el mejor consejo que le podría decir alguien que está empesando a crear su proyecto de programación, que trabaje en el sistema operativo con el cual estará trabajando, así podrá evitar muchos errores. Con las nuevas implementaciones  de serverless de las empresas como Amazon y Google esto ya no será un problema el día de mañana ya que ellas mismas se enargarán de que tu código funcione, no importa que es lo que suceda, ellas te garantizarán que tu sitio siempre estará disponible.

Poco después del primer mes se pudieron tener los NDA’s listos para ahora si el equipo empezara a implementar sus objetivos, poder avanzar y crear sus commits, hacer push en sus ramas y poder juntar sus trabajos. Al igual que al principio hubieron algunos errores, como por ejemplo Israel que ya tenía XAMPP instalado en su computadora desde hace tiempo, le marcó un error de una dependencia que necesitaba instalarse para que la página pudiera funcionar con normalidad.

Para los que estaban trabajando en sistemas operativos con Linux, les tuve que agregar varias configuraciones en apache para que la página pudiera mostrarse correctamente en su computadora, como lo fueron varios plugin del framework para que pudiera trabar en conjunto con la nueva base de datos, tambien la instalación de composer para que las librerías extras funcionaran correctamente. En Windows fue un poco complicado la isntalación de los drivers de las bases de datos, ya que se tuvo que hacer la instalación de varias dependencias y así poder instalar correctamente los drivers de las bases de datos.

Una vez que la página se podía ver correctamente en sus computadoras sin errores, a cada quien le pedí que hiciera un ejercicio con el framework, les dejé que lo hicieran en una semana, la mayoría necesitó ayuda, ya que el ejercicio involucraba mostrar información de la base de datos, además requería que usaran un modelo, dos controladores y 2 vistas. El modelo MVC no es muy simple al principio y se tiene que tomar un poco de tiempo para poder analizarlo y entenderlo. Así se podrá tener una idea mas clara de cómo es que funciona el proyecto y varias páginas en internet.

Una vez concluido el ejericio, empezamos a crear uni-test de el registro y activación de usuarios. Para esta tarea de los test nos tomó tiempo en pensar cómo es que podríamos hacer unitest de la página que está basada en PHP, después de buscar y probar soluciones, encontramos que podemos usar curl en PHP para así poder hacer las llamadas a los endpoint y así poder testearlos.

Concluyendo con el descubrimento de cómo realizaríamos los test, empezamos a modificar los modales que nos había pedido el equipo de diseño, en este objetivo nos tardamos aproximadamente casi dos semanas ya que el sistema de los modales para usarlos como notificaciones tiene una manera especial de usarse para mejorar la experiencia de usario. Una vez terminado los modales, empezamos a cambiar varias cosas de los modales de registro, una de ellas es que en vez de que tengan que hacer click en el checkbox el cliente tenga que escribir la palabra “acepto” para que fuera mas concientes de que están aceptando nuestras políticas. Pero poco tiempo después hicimos pruebas con usuarios reales y opinaron que como estaba con el checkbox era mucho mejor, para no crear una experiencia de usuario.

Una vez terminados los modales empezamos a agregar nuevas cosas al listado de los cuidadores, como es la cantidad de perritos que han cuidado, esta fué una tarea ardua ya que tuvimos que traer nuestros conocimientos de fundamentos de bases de datos y crear una query que nos trajera la cantidad de perritos y después poder unirla a la query con la que ya estaba funcionando la búsqueda de cuiadadores y hacer que funcionara. Esta tarea fue el principio de una mejor experiencia con el framework, ya que mi equipo se estaba familiarizando cada vez más y más con el código, otra de las cosas que emepezamos a mejorar fue el diseño de la lista de los cuidadores para móvil, en este paso aprendieron que la información que se muestra en una laptop a aun celular no necesariamente tiene que ser la misma, ya que la pantalla de un celular a comparación de una laptop es mucho más grande, por lo cual no se puede mostrar el mismo diseño, el diseño tiene que ser interactivo y funcional. Entonces empezamos a optimimzar la parte móvil, la cual si nos llevó un poco mas de tiempo de lo planeado.

El siguiente paso fue mejorar el diseño del perfil del cuidador, la diseñadora nos pidió que por medio de íconos o logos se pudiera dar a entender que es lo que tiene el cuidador, si es que vive en una casa o departamento, si sabe administrar medicamento oral, etc… además de quitar el calendario que teníamos y solamente confundía mas a los usuarios que buscaban reservar en la plataforma. Esto tambíen nos tomó un poco de tiempo, por un problema que tuvimos al querer agregar fechas que el cuidador no iba apoder estar disponible en los inputs de las fechas de inicio a fin, el mayor problema fue traer las fechas parseadas para el plugin de los inputs pudiera reconocerlas correctamente. Además también se implementó un total en el perfil de cuidador el cual se muestra cuando el cliente está en su sesión, este total se va modificando cuando el cliente va cambiando de fechas, este también fué una tarea dura, ya que tenía que obtener las fechas que el cliente seleccionó del plugin y además poder hacer operaciones con ellas. Para el manejo de las fechas nos ayudamos de una librería que nos ayuda a parsear las fechas en cualquier formato que estén. Esta libería nos ayudó mucho a la para poder terminar la tarea y que funcionara correctamente. Un bug que nos apareció al principio es que cuando queríamos obtener los días que hay entre la fecha de inicio y la fecha fina, cuando la fecha final estaba en otro mes, el resultado de los números nos daba negativo y es por eso que decidimos manejar mejor las fechas con una librería que se especializara en el manejo de las mismas…