{"id":20825,"date":"2017-10-30T16:24:06","date_gmt":"2017-10-30T15:24:06","guid":{"rendered":"https:\/\/www.teldat.com\/sin-categorizar\/20825\/la-cobertura-de-codigo-algo-a-tener-en-cuenta-cuando-usamos-aplicaciones-de-software\/"},"modified":"2026-03-25T19:35:38","modified_gmt":"2026-03-25T18:35:38","slug":"la-cobertura-de-codigo-algo-a-tener-en-cuenta-cuando-usamos-aplicaciones-de-software","status":"publish","type":"post","link":"https:\/\/www.teldat.com\/es\/blog\/la-cobertura-de-codigo-algo-a-tener-en-cuenta-cuando-usamos-aplicaciones-de-software\/","title":{"rendered":"La cobertura de c\u00f3digo, algo a tener en cuenta cuando usamos aplicaciones de software"},"content":{"rendered":"<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\"><img decoding=\"async\" class=\"alignleft wp-image-5035\" src=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/06\/Javier-Dargel-Post-2017-300x188.jpg\" alt=\"code coverage\" width=\"350\" height=\"219\" title=\"\">La <b>cobertura de c\u00f3digo<\/b> es un concepto que afecta a cualquier aplicaci\u00f3n de software existente, desde programas para PC, apps para m\u00f3viles, la \u00faltima aplicaci\u00f3n para tu SmartTV o el <i>firmware<\/i> de un router. No es un concepto que dependa de si el software en cuesti\u00f3n se conecta a Internet. Y s\u00ed, nos afecta a todos. Hoy veremos <b>qu\u00e9 es<\/b> y c\u00f3mo convivir con ella. <\/span><\/span><\/p>\n<p><!--more--><\/p>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">De forma gen\u00e9rica, podemos considerar que el <i>ciclo de vida<\/i> de un proyecto software se compone de las siguientes etapas:<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><\/p>\n<ol>\n<li><span style=\"color: #000000;\"><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"font-size: medium;\">An\u00e1lisis de requisitos<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"font-size: medium;\">Dise\u00f1o<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"> <span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"font-size: medium;\">Codificaci\u00f3n<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"font-size: medium;\">Pruebas<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"font-size: medium;\">Mantenimiento<\/span><\/span><\/span><\/li>\n<\/ol>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Cuando un nuevo programa sale al mercado, el producto se encuentra en la fase 5 del ciclo. Es decir, el producto ya ha sido probado. Y pese a que ya est\u00e1 a disposici\u00f3n de los clientes, muchas veces en productos complejos <b>el desarrollador lo sigue testando pro-activamente en diferentes escenarios de pruebas<\/b> en busca de errores a\u00fan no detectados.<\/span><\/span><\/p>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Estas diferentes pruebas realizadas por el desarrollador dan lugar a que las distintas porciones de c\u00f3digo de las que se compone el software se prueben continuamente. <\/span><\/span><\/p>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Sin embargo, hay zonas de c\u00f3digo que en proporci\u00f3n est\u00e1n m\u00e1s probadas que otras.\u00a0 La cobertura de c\u00f3digo mide esa proporci\u00f3n de la que hablamos en diferentes casos.<\/span><\/span><\/p>\n<h2><b><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: x-large;\">Mediciones de cobertura de c\u00f3digo<\/span><\/span><\/b><\/h2>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Algunas de las m\u00e1s habituales son<\/span><\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\"> <span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"font-size: medium;\">Qu\u00e9 porciones o l\u00edneas de c\u00f3digo son ejecutadas en las pruebas y cu\u00e1les no.<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"font-size: medium;\">El porcentaje de veces que una l\u00ednea de c\u00f3digo es ejecutada sobre el total de l\u00edneas.<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"font-size: medium;\">El tiempo de c\u00f3mputo empleado en una secci\u00f3n de c\u00f3digo respecto del tiempo total.<\/span><\/span><\/span><\/li>\n<\/ul>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #000000;\">El famoso proyecto <\/span>LibreOffice<span style=\"color: #000000;\"> es un ejemplo de uso de <\/span>LCOV<\/span><span style=\"color: #000000; font-size: medium;\"> como herramienta de medici\u00f3n.<\/span><\/span><\/p>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Como resultado de las pruebas, estas mediciones dan lugar a la existencia de zonas de c\u00f3digo cuya ejecuci\u00f3n es preferible frente al resto, ya que al haber sido probadas m\u00e1s veces, <b>son consideras m\u00e1s seguras<\/b> y con una menor probabilidad de encontrar errores inesperados: los denominados <i>bugs<\/i>.<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><\/p>\n<h2><b><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: x-large;\">C\u00f3mo evitar los bugs en zonas de poca cobertura de c\u00f3digo<\/span><\/span><\/b><\/h2>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Ahora que sabemos un poco m\u00e1s sobre la cobertura de c\u00f3digo, quiz\u00e1s llegue el momento de preguntarnos <b>qu\u00e9 podemos hacer como usuarios de software para sortear los bugs de esas porciones de c\u00f3digo menos probadas<\/b> y con menor cobertura.<\/span><\/span><\/p>\n<h3><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: x-large;\">1. Seguir la misma secuencia de acciones que han funcionado correctamente en el pasado<\/span><\/span><\/h3>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">La primera recomendaci\u00f3n es aprovechar la experiencia anterior con el software que estamos empleando y tratar de <b>no variar la manera en la que lo usamos.<\/b> Es decir, si, por ejemplo, llevamos tiempo utilizando una misma aplicaci\u00f3n en nuestra SmartTV para ver una serie, ser\u00eda recomendable seguir siempre la misma secuencia de pasos (men\u00fas, pantallas, botones&#8230;) para visualizarla, dado que hemos comprobado que de esa forma la aplicaci\u00f3n se comporta correctamente. <\/span><\/span><\/p>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Si decidimos un d\u00eda cambiar el procedimiento, nos podemos encontrar con la sorpresa de que la aplicaci\u00f3n se cuelgue y nos toque desenchufar la televisi\u00f3n para reiniciar el sistema, lo que supone una molestia.<\/span><\/span><\/p>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">\u00a0<\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: x-large;\">2. Empatizar con el desarrollador<\/span><\/span><\/p>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">La segunda recomendaci\u00f3n ser\u00eda la <i>empat\u00eda<\/i> hacia el desarrollador y no buscarle los tres pies al gato a la aplicaci\u00f3n. Si est\u00e1s explorando por primera vez una nueva aplicaci\u00f3n y necesitas que no d\u00e9 problemas al principio, intenta recorrer los men\u00fas y configurarla de la forma m\u00e1s intuitiva posible, a menos que quieres actuar como un <i>beta-tester<\/i> improvisado. <\/span><\/span><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Una buena pista para acercarnos al punto de vista del desarrollador es siempre echar una ojeada a su manual de uso.<\/span><\/span><\/p>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Extrapol\u00e1ndolo al entorno de un router en producci\u00f3n, lo ideal es definir las plantillas de uso (ya sea en CLI, SNMP o web) con un tiempo prudencial, lo que permite probarlo previamente en diferentes escenarios de manera homog\u00e9nea, y <b>asegurar la mayor cobertura de c\u00f3digo posible en las zonas cr\u00edticas<\/b> y reducir los errores potenciales.<\/span><\/span><\/p>\n<p><span style=\"margin: 0px; font-family: 'Calibri',sans-serif;\"><span style=\"color: #000000; font-size: medium;\">Hay que reconocer que es pr\u00e1cticamente imposible que un software est\u00e9 100% libre de errores. Por eso las empresas que desarrollo de software como Teldat, tambi\u00e9n invierten en tener un <b>equipo de soporte de calidad<\/b> que minimice estos problemas no detectados. Adem\u00e1s, el software de <b>Teldat<\/b> es un producto complejo el cual pasa exhaustivas pruebas, tanto de forma previa a su liberaci\u00f3n, como de forma pro-activa una vez liberadas.<\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La cobertura de c\u00f3digo es un concepto que afecta a cualquier aplicaci\u00f3n de software existente, desde programas para PC, apps para m\u00f3viles, la \u00faltima aplicaci\u00f3n para tu SmartTV o el firmware de un router. No es un concepto que dependa de si el software en cuesti\u00f3n se conecta a Internet. Y s\u00ed, nos afecta a [&hellip;]<\/p>\n","protected":false},"author":172,"featured_media":19118,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[1154],"tags":[1051],"class_list":["post-20825","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seguridad-tic-it","tag-tecnologia-de-routers"],"acf":[],"wpml_current_locale":"es_ES","wpml_translations":[{"locale":"en_US","id":19115,"slug":"software-code-coverage-router-firmware-router-production","post_title":"Code coverage: Another coverage to consider when using software applications","href":"https:\/\/www.teldat.com\/software-code-coverage-router-firmware-router-production\/"}],"_links":{"self":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts\/20825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/users\/172"}],"replies":[{"embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/comments?post=20825"}],"version-history":[{"count":2,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts\/20825\/revisions"}],"predecessor-version":[{"id":77010,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts\/20825\/revisions\/77010"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/media\/19118"}],"wp:attachment":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/media?parent=20825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/categories?post=20825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/tags?post=20825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}