Este publicación surge de la necesidad de un compañero el cual se pregunta cómo debo realizar una entrega profesional de mi trabajo.

🤔 Readme

Es básicamente la primera página, documento que nos indica los pasos iniciales y esenciales para la instalación de nuestros sistema. Siempre es bueno dependiendo del cliente o el público al cual está dirigido que la información se encuentre en más de un lenguaje.


💪 GIT

Lo primero es tener nuestro código en un sistema de control de versiones "git" para ellos podemos hacer uso de plataformas que nos brindan este servicio de forma gratuita como Github, Gitlab, BitBucket. Dejo una lista de video tutorial sobre git aquí

Una vez tengamos nuestro código en un sistema de repositorio, nos encontramos con los siguientes beneficios: respaldo, codigo versionado, poder integrar más desarrolladores a tu proyecto, entre otros.

Además si el proyecto no es de tu propiedad y el cliente exige la entrega total puedes realizar el traspaso del repositorio sin  problema, brindando al cliente un historial de todos los "commits" o características que se han realizado durante su desarrollo.


🙉 Pruebas "Test"

Otro punto importante para brindar seguridad a ti mismo como desarrollador o al cliente, es la implementación de pruebas.

En programación, una prueba unitaria es una forma de comprobar el correcto funcionamiento de una unidad de código. Por ejemplo en diseño estructurado o en diseño funcional una función o un procedimiento, en diseño orientado a objetos una clase. Esto sirve para asegurar que cada unidad funcione correctamente y eficientemente por separado. Además de verificar que el código hace lo que tiene que hacer, verificamos que sea correcto el nombre, los nombres y tipos de los parámetros, el tipo de lo que se devuelve, que si el estado inicial es válido, entonces el estado final es válido también.
La idea es escribir casos de prueba para cada función no trivial o método en el módulo, de forma que cada caso sea independiente del resto. Luego, con las Pruebas de Integración, se podrá asegurar el correcto funcionamiento del sistema o subsistema en cuestión.

Existente diferente herramientas para testear dependiendo de nuestro lenguaje usado

Java: https://java-source.net/open-source/testing-tools

JavaScript: https://www.browserstack.com/guide/top-javascript-testing-frameworks

PHP: https://www.softwaretestinghelp.com/php-testing-framework-tools/


Reporte de Cobertura

El reporte de cobertura va de la mano con los testing, ya que es un reporte el cual nos muestra en forma porcentual el uso de cada una de nuestras líneas de código.

La cobertura de código es una medida (porcentual) en las pruebas de software que mide el grado en que el código fuente de un programa ha sido comprobado.1​ Sirve para determinar la calidad del test que se lleve a cabo1​ y para determinar las partes críticas del código que no han sido comprobadas y las partes que ya lo fueron,2​ además se puede utilizar como técnica de optimización dentro de un compilador optimizador para llevar a cabo una eliminación de código muerto, más específicamente sirve para detectar código inalcanzable3
La cobertura de código fue uno de los primeros métodos inventados para las pruebas de software sistemáticas. La primera referencia fue publicada por Miller y Maloney en Communications of the ACM en 1963.4
La cobertura de código es una consideración en la certificación de seguridad de los equipos de aviación. Las pautas que indican que equipos de aviación están certificados por la Administración Federal de Aviación (FAA) se documentan en DO-178B5​ y DO-178C.6​ Es más, la cobertura máxima del código es un requisito en los estándares de calidad de software modernos como ISO 26262 o ICE 61508.3​v

Ejemplo personal  reporte de cobertura de un cliente.


🙋 Documentación

Para cualquier proyecto grande o pequeño es importante documentar al máximo nuestras funciones o métodos que usamos en nuestro código. Existen varias herramientas que nos pueden ayudar. Dependiendo si estamos realizando una API podemos hacer uso de Postman, Swagger entre otras.

De esta forma podemos ampliar la integración de nuestro sistema con nuevas herramientas o interfaces.

Para generar reportes de cobertura existen varias herramientas dependiendo del lenguaje de programación.


🙉 Listo!

Bueno pues ya estamos listo, de esta manera podemos realizar una entra profesional, estoy seguro que existirán muchas cosas más que se pueden agregar, dejen sus comentarios y recuerda compartir!