Your SlideShare is downloading. ×
Haciendo de las pruebas tus mejores aliadas
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Haciendo de las pruebas tus mejores aliadas

981
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
981
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. HACIENDO DE LASPRUEBASTus mejores aliadasJohanna Mantilla Duque@senekis
  • 2. ¿Y QUÉ SE ENTIENDE POR PRUEBAS?Mecanismo de detección de: Errores Regresiones
  • 3. ¿Y QUÉ SE ENTIENDE POR PRUEBAS? Partes del código Facilita la que no se utiliza refactorización
  • 4. ¿POR QUÉ UTILIZAR PRUEBAS?Arreglar problemas pequeños cada pocas horas toma menos tiempo que arreglar problemas enormes justo antes de la fecha limite.
  • 5. ¿POR QUÉ UTILIZAR PRUEBAS? Permiten descubrir errores cometidos sin darse cuenta tanto en el diseño como en la construcción del software.
  • 6. ¿POR QUÉ UTILIZAR PRUEBAS?Verificación: ¿Estamos construyendo elproducto correctamente? Validación: ¿Estamos construyendo el producto correcto?
  • 7. ¿CÓMO UTILIZAR LAS PRUEBAS?
  • 8. AGRUPACIÓN DE PRUEBAS1. Pruebas unitarias ○ Unidades de software: Clases, Modelos, Helpers2. Pruebas de integración ○ Módulos del sistema3. Pruebas del sistema ○ El sistema en su integridad, interacción del usuario
  • 9. TECNOLOGÍA Te ec Selenium stu Rsp ni t s o nj nt P ha Fabricator b kit a- we r y baFaker C ap Cucumber
  • 10. PRUEBAS UNITARIASEj. Guardar la dirección a partir de georefenciaciónclass Report field :address, :type => String ... def localize(lat, long) self.address = GeoDataService.address(lat, long) self.save endend
  • 11. PRUEBAS UNITARIASdescribe "Report Model" do let(:report) { Report.new } class GeoDataService def address(lat, long) Faker::Address.street_address end end...end
  • 12. Pruebas unitarias UNITARIAS PRUEBASit "Should save the address field" do GeoDataService.should_receive(:address). with(4.630024, -74.094973). and_return(Carrera 42 # 22BIS-2) report.localize(4.630024, -74.094973) report.address.should == "Carrera 42 # 22BIS-2" end
  • 13. Pruebas unitarias UNITARIAS PRUEBASTest Unit class TestDeMates < Test::Unit::TestCcase def test_suma assert_equal 4, Mates.run("2+2") assert_equal 4, Mates.run("1+3") assert_equal 5, Mates.run("5+0") assert_equal 0, Mates.run("-5 + 5") endend
  • 14. PRUEBAS DE INTEGRACIÓNdescribe ReportsController do let(:report) { Fabricate(:report) } describe "GET index" do it "Should render the reports index" do get :index assigns[:reports].should == [report] response.should render_template(index) end end
  • 15. PRUEBAS DEL SISTEMAdescribe "the signup process", :type => :request do let(:user) { Fabricate(:user, :email => user@example.com, :password => caplin)} it "signs me in" do within("#session") do fill_in Login, :with => user@example.com fill_in Password, :with => password end click_link Sign in endend
  • 16. ¿QUÉ SE DEBE TENER EN CUENTA?Eliminar comportamientos aleatorios
  • 17. ¿QUÉ SE DEBE TENER EN CUENTA?No depender de la anterior ni de la siguiente
  • 18. ¿QUÉ SE DEBE TENER EN CUENTA?Funcionar sin conexión a red
  • 19. ¿QUÉ SE DEBE TENER EN CUENTA?Deben ser independientes del momento en quese ejecutan
  • 20. ¿QUÉ SE DEBE TENER EN CUENTA?No detallar cada uno de los pasos de tumetodo no decir cómo, sino qué hace
  • 21. FILOSOFÍAS DE DESARROLLO
  • 22. Test Driven Development (TDD)Escribir las pruebas primero, luegoimplementación y refactorización.
  • 23. Test Driven Development (TDD)"El propósito del desarrollo guiado por pruebas eslograr un código limpio que funcione. La idea es quelos requisitos sean traducidos a pruebas, de estemodo, cuando las pruebas pasen se garantizará elsoftware cumple con los requisitos que se hanestablecido." Wikipedia
  • 24. VENTAJAS TDD● Evita escribir código innecesario● Aplicación de mejor calidad en menos tiempo● Permite al programador centrarse en la tarea actual
  • 25. BEHAVIOR DRIVEN DEVELOPMENT (BDD)Versión mejorada de TDD que responde lasinquietudes, tales como: ● Cuando iniciar el proceso ● Que probar y qué no probar
  • 26. BDD BDDScenario: Create a post under a category Given a category exists And I am signed in as an admin When I go to create a new post And I select "Category 1" from "Categories" And I press "Create" And I go to view all posts Then I should see a post with the category"Category 1"
  • 27. COVERAGERcovSimplecovCoverage Imagen: https://github.com/colszowka/simplecov
  • 28. Gracias@senekis @nounproject