En el 2014 publicamos un libro de testing en español, al que le llamamos “Introducción a las Pruebas de Sistemas de Información”. En este cubrimos diferentes áreas como automatización, performance, técnicas de generación de casos de prueba, etc., todo con un enfoque bien práctico y basado en experiencias tomadas de distintos proyectos en los que hemos trabajado. De hecho, creo que es el único libro de testing en español gratis, y de enfoque práctico que existe.
Está disponible en distintas formas:
Si querés tener la versión para su Kindle, lo pueden obtener en Amazon.
Si lo leíste, ¿me dejarías una valoración y comentarios en GoodReads?
Como verás, el objetivo de esto es compartir conocimiento y experiencias. Esperamos con esto aportar a que la comunidad de testing crezca, tenga más fuentes de referencias para estudiar y de ahí interesarse para buscar más información y material.
Podés dejar tus comentarios y opiniones sobre el libro en GoodReads.
Te dejo la reseña que está en la tapa, y espero te animes a dar cualquier feedback al respecto, estoy trabajando en actualizarlo y sacar una nueva versión, contemplando temas que no cubrí y actualizando contenidos y errores (sí, me reportaron errores que quiero corregir 🙂 ).
Reseña del libro “Introducción a las Pruebas de Sistemas de Información”
“Introducción a las Pruebas de Sistemas de Información” es una de las primeras publicaciones en español sobre aspectos prácticos de testing. En el mismo se abordan todas las dimensiones del testing, mostrando su propósito y beneficio. Integrando técnicas modernas de forma dinámica y práctica le permite al lector realizar una recorrida nutrida y clara sobre el diseño de pruebas, pruebas automatizadas, pruebas de performance y aspectos humanos que debe desarrollar un buen tester.
Su autor, el ingeniero Federico Toledo, PHD en Informática en la Universidad de Castilla-La Mancha, es un especialista en testing y cuenta con una destacada trayectoria privada, institucional y académica en Uruguay –su país de nacimiento– y Europa. Es socio fundador e integrante permanente del directorio de ABSTRACTA, empresa que provee productos y servicios de testing a compañías en Estados Unidos y América Latina, y es un blogger frecuente de artículos especializados en testing en lengua castellana. Federico, destaca el carácter integral de su obra, en cuanto a conceptos y metodología y rescata la invalorable contribución que realizaron todos los integrantes de Abstracta, en especial Andrés Curcio y Giulliana Scuoteguazza, quienes colaboraron fervientemente para que el libro esté hoy en sus manos.
El público objetivo de “Introducción a las Pruebas de Sistemas de Información” son las personas que trabajan cotidianamente haciendo testing y se enfrentan a un sinnúmero de desafíos y dificultades. Ellos contarán a partir de hoy con una guía de apoyo para enfrentar distintas actividades que realizan, especialmente las relativas a técnicas de diseño de testing, testing automatizado y de performance.
“Introducción a las Pruebas de Sistemas de Información” está escrito en un lenguaje llano y ameno, y fue pensado y redactado para que su lectura permita la rápida incorporación de conceptos, técnicas y nuevas habilidades para sus lectores. El aprender y disfrutar aprendiendo fue uno de los intereses mayores que sostuvo Federico a la hora de estructurar y dar contenido a su obra.
Temas
Introducción a las Pruebas Funcionales
Comenzando por conceptos básicos e introductorios para seguir luego mostrando su utilidad, profundizando en un posible método básico para abordar la tarea de diseñar pruebas. Entre otras cosas veremos las técnicas que incluso se termina utilizando casi en forma inconsciente, tales como: partición en clases de equivalencia, valores límites, etc.
Técnicas de Diseño de Pruebas Funcionales
Habiendo visto las básicas de las pruebas funcionales podremos seguir luego describiendo algunas técnicas a las que llamaremos “avanzadas”, siempre pensando en particular en sistemas de información. Entre ellas veremos cómo derivar casos de prueba a partir de casos de uso, tablas de decisión, máquinas de estado, etc.
Pruebas Exploratorias
Es una técnica bastante avanzada que consiste en diseñar y ejecutar al mismo tiempo. Veremos que existen escenarios especiales en las que nos va a resultar principalmente útil, y también cómo podríamos aplicar la técnica en forma práctica.
Pruebas Automatizadas
Veremos cómo el testing automático nos puede aportar beneficios para bajar costos y aumentar la cantidad de pruebas que logramos ejecutar. Luego veremos qué tener en cuenta para no fracasar en el intento.
Pruebas de Performance
En este caso veremos cómo automatizar pruebas con el fin de simular múltiples usuarios concurrentes y así poder analizar el rendimiento de la aplicación bajo pruebas, sus tiempos de respuesta y el consumo de recursos.
Habilidades de un Tester
Porque no todo en la vida son solo técnicas y tecnologías, también abordaremos algunos puntos más relacionados a los aspectos humanos que todo tester también debe preocuparse por desarrollar, especialmente relacionados a la capacidad de comunicar.
Síntesis final
Auguramos que “Introducción a las Pruebas de Sistemas de Información” sea una excelente experiencia de lectura y aprendizaje que efectivamente eleven al lector a un mayor nivel de conocimiento conceptual y práctico. ¡Ahora, a disfrutarlo!
Referencias en las notas al pie
- Blog de Abstracta en español: <https://es.abstracta.us/blog>
- Sitio web personal: <www.federico-toledo.com>
- Blog de Abstracta en inglés: <www.abstracta.us/blog>
- Abstracta Academy: <https://abstracta.academy>
- Nota del diario El País: <http://blogs.elpais.com/turing/2012/07/es-posible-construir-software-que-no-falle.html>
- Metro de París n. 14: <http://es.wikipedia.org/wiki/Línea_14_del_Metro_de_París>
- Lenguaje de programación ADA: <https://es.wikipedia.org/wiki/Ada_(lenguaje_de_programación)>
- Con hello world, nos referimos al primer programa básico que generalmente se implementa cuando alguien experimenta con una nueva tecnología o lenguaje de programación.
- Asegurar la calidad se escribió entre comillas a propósito. ¿Alguien puede asegurar la calidad? Hay un artículo de Michael Bolton muy interesante al respecto, en el que indica que quizá pueda hacer eso es quien ocupe el rol de CEO de la compañía, responsable de manejar todos los recursos y asignaciones, tomar las grandes decisiones. Como testers, lo máximo que podemos hacer es asegurar la información oportuna para que esas decisiones se tomen en mejores condiciones. Estamos de acuerdo con su visión: <http://www.developsense.com/blog/2010/05/testers-get-out-of-the-quality-assurance-business>
- Edsger Dijkstra: <https://es.wikipedia.org/wiki/Edsger_Dijkstra>
- Falacia del Nirvana: <http://es.wikipedia.org/wiki/Falacia_del_Nirvana>
- Cuando hablamos de fallos o bugs nos referimos en un sentido muy amplio que puede incluir desde errores, diferencias con la especificación, oportunidades de mejora desde distintos puntos de vista de la calidad: funcional, performance, usabilidad, estética, seguridad, etc.
- Norma ISO 25000: <https://iso25000.com>
- Basado principalmente en nuestra experiencia en la Universidad de la República en Uruguay, pero ya hemos conversado con distintos colegas en otros países —como en Argentina y España—– y comprobamos que la realidad no se diferencia mucho de este esquema. Por suerte, ha estado mejorando en los últimos años.
- RUP: <http://es.wikipedia.org/wiki/RUP>
- Perfect software: And other illusions about testing <https://www.goodreads.com/book/show/4060560-perfect-software>
- Basado en un fragmento de Ingeniería de software, un enfoque práctico, de Roger Pressman. <https://www.goodreads.com/book/show/142783.Software_Engineering>
- Ad-hoc: <https://es.wikipedia.org/wiki/Ad_hoc>
- Institute of Electrical & Electronics Engineers, Standard 610 (1990-Standard glossary of software engineering terminology: <https://ieeexplore.ieee.org/document/182763>
- Test idea, Brian Marick: <http://www.exampler.com/testing-com/tools.html>
- What is a good test case? Cem Kaner: <https://kaner.com/?page_id=7>
- Overflow (desbordamiento): Situación en la que un cálculo o una operación produce un resultado que excede la capacidad del sistema para manejarlo. Puede ocurrir en la aritmética de los computadores o en la gestión de memoria, y lleva a resultados incorrectos o errores en el programa.
- Pairwise testing, sitio donde se puede encontrar un listado de herramientas para aplicar esta técnica: <http://www.pairwise.org/tools.html>
- PICT Online: <https://pairwise.yuuniworks.com>
- PICT de Microsoft: <https://github.com/microsoft/pict>
- UML (Unified Modeling Language): <https://www.uml.org>
- Puede consultarse esta técnica con mayor detalle en el libro de Myers The art of software testing. <https://www.goodreads.com/book/show/877789.The_Art_of_Software_Testing>
- Harry Robinson: <http://www.harryrobinson.net>
- GraphWalker: <https://github.com/GraphWalker>
- JSON: <https://www.json.org>
- Documentación GraphWalker: <https://github.com/GraphWalker/graphwalker-project/wiki/Offline>
- Exploratory Testing After 23 Years, Cem Kaner, 2006 <https://kaner.com/?page_id=7>
- Exploratory Testing Explained, James Bach, 2003 <http://satisfice.us/articles/et-article.pdf>
- Explore it!, Elisabeth Hendrickson, 2012 <https://www.goodreads.com/book/show/15980494-explore-it>
- Exploratory testing, Maaret Pyhäjärvi, 2017 <https://www.goodreads.com/book/show/34120133-exploratory-testing>
- “The Permanent Book of Exploration”, John Keay <https://www.goodreads.com/book/show/1714290.The_Permanent_Book_Of_Exploration>
- Exploratory Software Testing de James Whittaker <https://www.goodreads.com/book/show/6828590-exploratory-software-testing>
- Inyección SQL: Técnica de ataque cibernético donde se manipulan consultas de bases de datos a través de entradas de usuario para acceder o modificar información no autorizada.
- “SBTM Session Report Checklist”, James Bach, <https://www.satisfice.com/download/sbtm-session-report-checklist>
- Acceso a CLR-Sessions: <https://github.com/aquaman/clr-sessions/archive/master.zip>
- Testing vs Checking, James Bach <http://www.developsense.com/blog/2009/08/testing-vs-checking>
- Testing and Checking Refined, Michael Bolton <http://www.satisfice.com/blog/archives/856>
- Selenium: herramienta de pruebas web automatizadas. <http://seleniumhq.org>
- JUnit: herramienta de pruebas unitarias automatizadas. <http://junit.org>
- Surviving the top ten challenges of software test automation: <https://www.semanticscholar.org/paper/Surviving-the-Top-Ten-Challenges-of-Software-Test-Rice/8fe022ef115fd69cfb7d1c79f7f9a058a29f5d50>
- Lessons learned in software testing (Cem Kaner, James Bach, Bret Pettichord): <https://www.goodreads.com/book/show/599997.Lessons_Learned_in_Software_Testing>
- “La utopía está en el horizonte. Camino dos pasos, ella se aleja dos pasos y el horizonte se corre diez pasos más allá. ¿Entonces para qué sirve la utopía? Para eso, sirve para caminar.” El libro de los abrazos, Eduardo Galeano.
- Applied Software Measurement: Assuring Productivity and Quality de Capers Jones, 1996 <https://www.goodreads.com/book/show/2110359.Applied_Software_Measurement>
- Practical Experience in Automated Software Testing: <http://www.methodsandtools.com/archive/archive.php?id=33>
- Basada en algo que se plantea en el libro Software test automation: effective use of test execution tools, de Mark Fewster y Dorothy Graham, página 494. <https://www.goodreads.com/book/show/637584.Software_Test_Automation>
- Succeeding with agile, Mike Cohn, 2009 <https://www.goodreads.com/book/show/6707987-succeeding-with-agile>
- Practical test pyramid. Martin Fowler <https://martinfowler.com/articles/practical-test-pyramid.html>
- Java es un lenguaje muy popular, uno de los tres más usados a la fecha
- HttpUnit: <http://httpunit.sourceforge.net>
- Http: protocolo de comunicación sobre el cual funcionan los sitios web, por ejemplo.
- GeneXus: <http://www.genexus.com>
- Low code for test automation: <https://abstracta.us/blog/software-testing/low-code-for-test-automation>
- Jidoka: <http://en.wikipedia.org/wiki/Autonomation>
- SoapUI: <http://soapui.org>
- Cucumber: <https://cucumber.io>
- La deuda técnica es una analogía en el desarrollo de software que describe el costo acumulado de elegir soluciones rápidas y simples en el presente, que pueden resultar en problemas o complicaciones en el futuro. Similar a la deuda financiera, la deuda técnica requiere ser “pagada” eventualmente mediante la corrección y mejora del código o cambios de decisiones de diseño, con el fin de mantener la integridad y eficiencia del sistema a largo plazo.
- Recomendamos leer Continuous delivery, Jez Humble and David Farley <https://www.goodreads.com/book/show/8686650-continuous-delivery>
- Post de Steve Rowe: <http://blogs.msdn.com/steverowe/archive/2007/12/19/what-is-test-automation.aspx>
- Respuesta de James Bach: <http://www.satisfice.com/blog/archives/118>
- Meier, J., Farre, C., Bansode, P., Barber, S., Rea, D.: Performance testing guidance for web applications: patterns & practices. Microsoft Press (2007). <https://www.goodreads.com/book/show/35129632-performance-testing-guidance-for-web-applications>
- JMeter: <http://jmeter.apache.org>
- OpenSTA: <http://opensta.org>
- User Experience, not Metrics, Scott Barber, 2001: <http://www.perftestplus.com/pubs.htm>
- Chaos Monkey: <https://netflix.github.io/chaosmonkey>
- Ramp-up: Velocidad y cadencia con la que ingresan los usuarios simulados durante una prueba.
- Taurus: <https://gettaurus.org>
- Gatling: <https://gatling.io>
- Blazemeter: <www.blazemeter.com>
- K6: <k6.io>
- Octoperf: <www.octoperf.com>
- Obsevabilidad <https://en.wikipedia.org/wiki/Observability_(*software*)>
- Estudio de Google sobre importancia de la velocidad en webs desde dispositivos móviles <https://blog.google/products/admanager/the-need-for-mobile-speed>
- Continuous Integration, Continuous Delivery y Continuous Deployment: <https://www.federico-toledo.com/diferencia-entre-continuous-integration-delivery-y-deployment>
- Pruebas de performance en integración continua <https://www.federico-toledo.com/pruebas-de-performance-en-integracion-continua>
- Profiler para Java <http://java-source.net/open-source/profilers>
- Doctor House (2004-2012), famosa serie televisiva: <http://www.imdb.com/title/tt0412142>
- RAE: Real Academia Española: <http://www.rae.es>
- El peer review es un proceso de revisión por pares en el que el trabajo de una persona es evaluado por un par, o sea, con conocimientos y habilidades similares. El objetivo es mejorar la calidad al permitir que colegas revisen y proporcionen comentarios constructivos antes de su publicación.
- Karma del tester <https://www.federico-toledo.com/el-karma-del-tester>
- Karma <https://es.wikipedia.org/wiki/Karma>
- James Whittaker’s STARwest Keynote <http://www.testthisblog.com/2011/10/james-whittakers-starwest-keynote.html>
- Brené Brown <https://daretolead.brenebrown.com>
Felicitaciones por este primer año del blog, Federico. Es un gusto saber de tus logros. Nuestro amigo en común, Mauricio, me ha comentado sobre tu actualidad profesional y personal. Te envío mis mejores deseos.
Martín Acuña (San Jacinto).
Martín, cómo va?
Gracias che!! saludos a la barra por allá! que estén todos bien!
Gracias por compartir este aporte, leeré el libro.
Todo feedback es bien recibido 🙂
Hola, buenos dias!
Los felicito por este blog. estoy comenzando a estudiar sobre Testing, si <dios quiere llegaremos muy lejos con su soporte en todo este camino largo por recorrer.
desde ya muchas gracias
saludos Federico
Excelente Hugo!! éxitos en ese camino! a la orden para lo que pueda contribuir, te recomiendo por ejemplo bajarte el pdf del libro y leerlo, y cualquier comentario que tengas será bien recibido 🙂
Hola,
El libro me parece muy chevere, pero recientemente me surgio una duda respecto a los conceptos que presenta de Falso positivo y negativo en pruebas automatizadas. He buscado en otras partes y encuentro que los conceptos son al contrario.
Falso positivo. Dice que hay un error, cuando en realidad no lo hay. Y falso negativo, Dice que no hay un error, cuando en realidad si lo hay .
Agradeceria mucho si puede aclararme este tema.
Hola!!
Exacto Katherine!! hay un bug 🙂 Lo correcto es como vos decís.
Hace tiempo que estoy avanzando en una nueva versión, corrigiendo eso y algún otro detalle. Espero liberarlo para fin de año.
Gracias Federico.
Sigo con tu libro y me orienta muy comodamente ya que tengo experienvia en en área de tecnología y busco reinsertarme en Testing en Montevideo.
Estaré pendiente a la próxima versión
Felices fiestas
Me acaban de asignar como Tester, esta será mi primera vez, así que espero este libro pueda ayudarme. Agradecería puedan orientarme qué camino y herramientas seguir para poder ir de manera correcta en este mundo del testing o QA. Muchas gracias.
Hola y bienvenido Gherard!!
Comenzá por el libro y de ahí seguro van a ir surgiendo puntas para seguir explorando. También te recomiendo veas los artículos acá http://federico-toledo.com/category/introduccion-al-testing/ y los que te vayan gustando 🙂
Cualquier cosa a la orden.
Éxitos!!
Maestro. tu libro lo compro no lo bajo gratis, mereces tener una recompensa
el material en nuestro idioma e spoco, no tengo problema de leerlo en ingles, pero se agradece muchisimo ternetlo en nuestro idioma, espero sigas actualizando ete blog esta buenisimo
Gracias por el comentario Sam
De todos modos, la decisión desde el primer día fue que el libro sea gratuito para todos. Ahora no me quedan más, pero cuando teníamos libros impresos sólo cobrábamos para cubrir el costo de impresión. Espero antes de fin de año tener la versión actualizada e imprimir otras cuantas copias.
Abrazo
Genial que existan este tipo de materiales para las personas que estamos empezando en el mundo IT.
Gracias, saludos!
De los mejores materiales que encontré en la web, muy útil
Hola Federico:
Encontré tu libro y me parece muy práctico y directo. Tengo un grupo de pruebas de Sistemas y todos los tópicos me caen como muy bien. Tengo un reto de establecer Casos prueba para Sistemas mu grandes y normalmente probamos manualmente, Me interesó la herramienta CTweb y estoy leyendo algo de Pairwise.
Agradeceré tu ayuda.
Andrés Rios.
Hola Andrés,
CTweb ya no está disponible, te recomiendo mires este post http://federico-toledo.com/pairwise-testing/
Saludos
Hola Federico tengo tu libro lo leí y está genial..aún no leí automatización porque no creo estar preparado. Estoy comenzando en el testing y está muy interesante. Ahora la pregunta es…el curso de testing de Abstracta por lo que vi es más completo no? Porque tengo muchas ganas de hacerlo. Quería tu opinión como para guiarme en esto que es muy nuevo para mi. Muchísimas gracias
Hola!
El curso de testing que ofrecemos de 4 meses, es más profundo e incluye acompañamiento por testers con experiencia, como para profundizar en testing funcional.
Luego tenemos cursos aparte en automatización y performance, pero esos serían a mi ver para una segunda etapa. Creo que lo mejor es empezar por profundizar en entender más el papel del tester en el desarrollo de software, y las técnicas y prácticas importantes para poder trabajar como tester en un equipo. Ese es el foco del curso.
Abrazo
Todo el libro esta perfecto, felicidades. Estaría interesante que en la próxima versión se mencione la un poco sobre TDD, BDD, CI/CD.
Saludos!
Muchas gracias Federico por el aporte, ya que me estoy queriendo insertar en el mundo del Tester. El libro tiene una lectura dinámica y entendible, para alguien que no es experto en IT (como mi caso que mi campo es la metalurgia). Saludos desde Buenos Aires
Hola Federico, gracias por permitirnos la descarga de tu libro. Estoy por cambiar de carrera y realmente me está gustando esto de ser Tester.
Mi pregunta es: en la página 34 de tu libro, dice “… En cambio, “Federico” y “Andrés” son ambas válidas no son “significativamente diferentes”, por lo que no corresponden a la misma clase de equivalencia, ambas deberían generar el mismo comportamiento en el sistema”.
Si estoy entendiendo bien el concepto de clases de equivalencia, en el párrafo anterior la palabra “no” está de más, y debería decir: “… En cambio, “Federico” y “Andrés” son ambas válidas no son “significativamente diferentes”, por lo que corresponden a la misma clase de equivalencia, ambas deberían generar el mismo comportamiento en el sistema”.
¿Es así?
Saludos
Buenas Federico!! Me parece muy interesante tú libro y me gustaría comprarlo en físico, sabés de alguna tienda en dónde pueda estar disponible?. Desde ya muchas gracias!!
Hola Fede estoy muy interesado en leer tu libro, hay forma de subirlo a Play store Books?
Muchas gracias por compartir tu conocimiento
Your writing style is cool and I have learned several just right stuff here. I can see how much effort you’ve poured in to come up with such informative posts. If you need more input about Entrepreneurs, feel free to check out my website at YH9
Hey there, I love all the points you made on that topic. There is definitely a great deal to know about this subject, and with that said, feel free to visit my blog YW9 to learn more about Thai-Massage.