1 / 63

Testing med Visual Studio Team System for Software Testers

Testing med Visual Studio Team System for Software Testers. Martin Pamdeth martinpa@microsoft.com Developer & Platform Strategy Microsoft Danmark blog: http://blogs.msdn.com/martinpa. TechTalk. Agenda. Mål for VSTS og TFS Tests: Hvorfor, Hvornår og Hvad? Testning med VSTS Test Typer

jolie
Télécharger la présentation

Testing med Visual Studio Team System for Software Testers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Testing medVisual Studio Team System for Software Testers Martin Pamdeth martinpa@microsoft.com Developer & Platform Strategy Microsoft Danmark blog: http://blogs.msdn.com/martinpa TechTalk

  2. Agenda • Mål for VSTS og TFS • Tests: Hvorfor, Hvornår og Hvad? • Testning med VSTS • Test Typer • Administration og Kørsel af Tests i VSTS • Load Testing • Build management med Team Build • Et par gode råd • Afrunding inkl. spørgsmål og svar

  3. Visual Studio Team SystemUdvidelseaf Visual Studio påtværsafApplikationsLivsforløbet (ALM) Developer Database Professional Designer Architect Tester Business Analyst IT / ProjectManager Projekt Gennemsigtighed Team Samarbejde Software Kvalitet

  4. Visual Studio Team SystemApplication Life Cycle Management (ALM) Løsning Business Analyst Web Clients and XML Web Services Operations, QA and Help Desk Third-Party IDEs

  5. Visual Studio Team System Team Build Server Visual Studio Team Suite SoftwareArchitects SoftwareDevelopers DatabaseProfessionals SoftwareTesters VisualStudioTeamExplorer VisualStudioIndustryPartners Application Modeling Code Analysis Performance Testing Database Deployment Infrastructure and Deployment Modeling Performance Tuning Manual Testing DatabaseChange Mgmt. Test Case Management Database Testing Security Analysis Unit Testing Code Coverage MSF Process and Guidance Class Modeling Visio and UML Modeling Visual Studio Professional Edition Load Test Agent Visual Studio Team Foundation Server Change Management Reporting Integration Services Work Item Tracking Project Site Project Management

  6. Agenda Mål for VSTS og TFS Tests: Hvorfor, Hvornår og Hvad? Testning med VSTS Test Typer Administration og Kørsel af Tests i VSTS Load Testing Build management med Team Build Et par gode råd Afrunding inkl. spørgsmål og svar

  7. Hvorfor teste? • Øget kvalitet • Find og ret design fejl • Lavere TCO og vedligeholdelses omkostninger

  8. Hvornår skal man teste? • Så ofte som muligt • Så tidligt som muligt • Automatiserede tests vil være til hjælp

  9. Hvad skal man teste? • Kritisk forretningslogik • Alt andet • Jo tydligere kravene til performance og skalerbarhed er beskrevet, desto lettere er det at vide, hvad der skal testes • Projektledelsen bør skaffe disse data så tidligt som muligt i forløbet • Bør helst være defineret fra start af

  10. Test af applikationer • Funktionel test • Performance test • Sikkerheds test • Robustheds test • Usability test • …

  11. Funktionelle test • Validerer brugerkrav • Test data skal defineres • Store applikationer/web sites kan være svære at teste • Fejl skal gøres reproducerbare • Test repetitioner er nødevendige • regressions/integrations tests

  12. Performance tests • En af de mest kritiske og ofte oversete tests for web løsninger • Bør køres for hver iteration i projektet • Vigtigt at definere mål og holde testene op imod disse mål • Optimer applikationen om nødvendigt

  13. Projekter og Tests • Ofte dyrt at vente til sidst • Strategier for at minimere indvirkningen 30 25 20 Relative omkostninger for at rette bugs... 15 10 5 Kodning Integration Post-Release Beta Test Krav

  14. Udfordringer... • Det er dyrt at finde og rette fejl, der undslipper ifm. den daglige udviklings praksis • Det er svært at diagnostisere fejl ved runtime • Hvorfor kører en given applikation langsomt? • De enklete udviklere og testere har brug for at vide om de følger tidsplanen • Test og udvikling er ofte ude af synk • Den endelige test fase ifm idriftsættelse er ofte for ad-hoc • Hvornår har man testet tilstrækkeligt?

  15. “Defence In Depth” • Microsoft bruger en 'defence in depth' strategi • Unit testing • Kode reviews • Jævnlige builds • Fang fejlene tidligt • Statiske checks • Runtime checks

  16. Agenda Mål for VSTS og TFS Tests: Hvorfor, Hvornår og Hvad? Testning med VSTS Test Typer Administration og Kørsel af Tests i VSTS Load Testing Build management med Team Build Et par gode råd Afrunding inkl. spørgsmål og svar

  17. Fokus på kvalitet tidligt i processen Visual Studio Team System klient Team Foundation Server Unit Testing og Code Coverage Versions-styring Statisk og Dynamisk Analyse Bug Tracking Checkin regler Build Server Web og Load Testing Reporter m. Kvalitets metrikker

  18. VSTS Developer &TesterEksempel på forløb Udv. skriver kode Udv. skriver & kører Unit Tests Udv. laver kode review Udv. kører Kode Analyse Udv. definerer Load Tests Udv. checker arbejde ind Tester undersøger Build Status Tester kører Load Test Tester rapporterer fejl Udv. diagnosticerer og retter fejl Udv. checker arbejde ind

  19. Integration af Udv. og Test • Tests er bare endnu en form for kildekode: • Er under versionskontrol • Versioneres sammen med produktet • “Test Komplet” • Test kodningen planlægges sammen med udviklings arbejdet • Spores vha. work items • Testere notificeres når fejl bliver rettet

  20. Visual Studio Team SystemTeam Edition for Software Testers Manuelle test Ikke eller svært automatiserbare tests Unit testing Gerne kombineret med Code Coverage, måler effektivitet af ens tests Web test Automatisk afspilning af optagede web scenarier (HTTP/S),samt kode generering Web services tests via protocol-baseret script Load test Parallelt distribuerede unit og funktionelle test Præ-konfigurerede samt skrædersyede load mønstre Foruddefineret metrik opsamling samt overvågning af tærskler Generiske test Integration af anden test kode (Pass/Fail) Skrædersyede test typer 3. parts test integration Test administration samt kobling til Build services

  21. Web Tests • Ikke kun til ASP.NET • HTTP-baseret • En vilkårlig web side • Kan benyttes til test af Web Services

  22. Test Typer • Optagede tests (deklarative) • XML format • Liste af URL’er og parametre • Validerings- samt ekstraktions-regler • Kodede tests • Udvides via programlogik • Konverteres fra optagne tests

  23. Smarte Features • Forberedt for Forms Authentication • Viewstate Tracking • Cookie Tracking

  24. Validerings- og ekstraktions regler • Valider webside tilgang • Check indhold eller respons • Definer skræddersyede regler • Validering kan være data-styret • Extraher attributter / parametre • Til brug i efterfølgende requests

  25. Kodede Web Tests • Komplet skræddersyet test løsning // Create a test WebTestRequest request1 = new WebTestRequest("http://localhost/StoreCSVS"); request1.ThinkTime = 8; // Add a rule ValidationRuleFindText rule1 = new ValidationRuleFindText(); rule1.FailIfTextFound = false; rule1.TextToFind = "IBuySpy"; request1.ValidateResponse += new ValidateResponseEventHandler(rule1.Validate);

  26. Implementering af Tests

  27. Test Typer – kan udvides • Vi understøtter 5 test typer “out of the box”: • Manuelle • Unit (C#, C++ and VB .NET) • Web • Load/Stress/Smoke • 3. parts leverandører kan tilføje deres egne -- fuldt integrerede -- test typer

  28. VSIP Partners

  29. Andre Test Typer • Ordnet • Afvikler en gruppe af tests i foruddefineret rækkefølge • Generisk • En indkapsling af eksisterende tests (Pass/Fail)

  30. Tests: kerne element i VSTT • Understøtter forskellige roller • Test implementatør (udviklere & testere) • Test afvikler & organisator • Build miljø understøttelse • Nye brugergrænseflade elementer • Test View – implementering, kørsel • Test Manager – gruppering, kørsel • Test Results – kørsels resultater • Test Runs – status og historik • Code Coverage Results – test effektivitet

  31. Administation & kørsel af tests • Tests kan gruppperes i kategorier • Kørsel af tests: • Lokalt & remote • Via IDE’et • Fra kommandolinen: MSTest.exe • Via MS Build Task • Integration i en større sammenhæng: • Kildekode kontrol • Issue / Work item tracking • Microsoft Solutions Framework

  32. Admin & Kørsel af Tests

  33. ASP.NET Performance Problemer • Hvordan opfører jeres applikationer sig under load? • Hvilken funktionalitet har størst performanceimpact? • Processor / disk forbrug? • Er i nødt til at deploye til en produktions server for at kunne teste?

  34. Login script - 10% Browse script - 60% Search script - 30% ASP.NET Load Testing • Integreret i VSTS for SW Testers • Anvender test scripts til scenarierne • Browser / bruger load / server kontrol (?) • Visualisering af resultater Grafer Web Site Tabeller XML

  35. Work Load Modellering • Modeller brugadfærd, load, browsertyper og netværksforbrug vha. scenarier Web tests Load Pattern Unit tests

  36. Definer Counter Sets Foruddefinerede counters til de forskellige teknologier

  37. Tærskel definitioner

  38. Load Test Profiler • Constant • Step • Goal Seeking • Øg load indtil et mål er nået • F.eks. øg loadet indtil load agentens CPU er på 90%, og hold derefter loadet stabilt

  39. Load Test Monitor

  40. Load Test Monitor Sort by response time Goal-based Performance Reporting

  41. Load Test Monitor • Lav skræddersyede grafer til at sammenholde responstider med server aktivitet • Tærskel alarmer • Bor ind for at gennemgå fejl detajlerne • Sorter data kolonnerne for nemt at finde langsomme web sider • Automatisk rapportering af “Page Times” • Se hvilker web sider, der ikke står mål med performance kravene

  42. Threshold Violations Drag counters From machines under test onto graph

  43. Load Test Analyzer • Al data opsamles i SQL Server til analyse • Lav skræddersyede grafer til at sammenligne maskinaktivitet med performance • Zoom ind for at grave dybere i analysen

  44. Click and drag to zoom

  45. Zoom Control

  46. VSTS Team Test Load Agents

  47. Fordele – Load Testing Scale out load generering Effektiv load generering (1000 virtuelle brugere på en typisk maskine med en typisk web test) IP Switching til test af web farme Per CPU licensiering (ingen virtuel bruger lic.) Performance counters opsamles på Load Agents og maskiner under test Data (stats og logs) gemmes i central TFS SQL Server til analyse Load Test Monitor giver mulighed for monitorering af igangværende load test

  48. Agenda Mål for VSTS og TFS Tests: Hvorfor, Hvornår og Hvad? Testning med VSTS Test Typer Administration og Kørsel af Tests i VSTS Load Testing Build management med Team Build Et par gode råd Afrunding inkl. spørgsmål og svar

  49. Team FoundationBuildOut-of-the-box daglige builds • En god build proceskanværesvær at opnå • Mange udviklingsprojekterudnytterikkemuligheden • Mål: Gørdettrivielt • Builds gøresreproducerbare • VS Projekterbyggesdirekte • Builds udføresautomatiskt via scheduler eller on-demand • Build rapporterpubliserescentralt • Mål: Tæt integration med VS Team System værktøjerne, heriblandt: • Kodeanalyse, unit tests, web test mv.

  50. Build initiated from server Create a build ID Document build environment Sync sources and tools Calculate code churn Produce build report Publish build Updatework items Calculate code coverage Executetests Compile and analyze Build Automatisering

More Related