Comprehensive Guide to Software Testing in Visual Studio ALM World

Slide Note
Embed
Share

Explore the world of software testing in Visual Studio 2013 & Team Foundation Server 2013 with Benjamin Day as your guide. Discover types of testing, testing features, and the importance of testing ROI for developers in this comprehensive overview.


Uploaded on Sep 20, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Software Testing with Visual Studio 2013 & Team Foundation Server 2013 Benjamin Day

  2. Benjamin Day Brookline, MA Consultant, Coach, & Trainer Microsoft MVP for Visual Studio ALM Team Foundation Server, Software Testing, Scrum, Software Architecture Scrum.org Classes Professional Scrum Developer (PSD) Professional Scrum Foundations (PSF) www.benday.com, benday@benday.com, @benday

  3. Online courses at Pluralsight.com

  4. On with the show.

  5. Overview of Visual Studio ALM.

  6. A comprehensive ALM offering Web Client Server Cloud SharePoint Java iOS Visual Studio Team Explorer Everywhere Server Server Continuous Deployment Feedback Management Planning SCM Work Item Tracking Build Automation Foundation Foundation Team Team Scrum I Agile

  7. Three types of testing in the VS ALM World. Developer Does the code work? Manual Testing / Quality Assurance (QA) Does the app work? Load Testing & Performance Testing Does the app work under load?

  8. Test types & features. Developer Unit Tests Manual / QA Coded UI tests Load & Performance Web Performance Tests (WPTs) Recorded or Coded Load Tests

  9. There are only so many minutes in the day.

  10. The real question is what to test?

  11. Testing ROI.

  12. Testing ROI for Developers. Write unit tests. Test First. Test-Driven. Test-Eventually. (Whatever.) Write something and try to be honest. Watch your code coverage. Why? Helps you refactor. Helps you modify feature functionality. Helps you to know if it s working a lot faster. Tends to push you into better/cleaner architecture.

  13. $1m for IT to support an application. That s looking grim. New Feature Budget vs. Maintenance Budget 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% Q1 2010 Q2 2010 Q3 2010 Q4 2010 Q1 2011 Q2 2011 Q3 2011 Q4 2011 Q1 2012 Q2 2012 Q3 2012 Q4 2012 Q1 2013 Q2 2013 Q3 2013 Q4 2013 Maintenance New Features

  14. Whats that feel like? Costs more to run the app than you actually have. App breaks if you breathe funny. Can t add new features. Changes take *FOR-EVER*. Competitors are catching up. You re hosed. It s hopeless.

  15. Whys it getting like that? Technical Debt. Excess inventory . Too much architecture. Brittle code. Too hard to refactor.

  16. Time to re-write the app.

  17. Use tests to keep it clean.

  18. Or start adding tests to change the ROI trajectory.

  19. $1m for IT to support an application. New Feature Budget vs. Maintenance Budget 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% Q1 2010 Q2 2010 Q3 2010 Q4 2010 Q1 2011 Q2 2011 Q3 2011 Q4 2011 Q1 2012 Q2 2012 Q3 2012 Q4 2012 Q1 2013 Q2 2013 Q3 2013 Q4 2013 Maintenance New Features

  20. Solid developer testing pays huge dividends.

  21. Better long-term ROI.

  22. Faster time to market on new features.

  23. More responsive to market with changes to existing features.

  24. Catch problems early in dev process.

  25. Vastly higher quality builds for QA testing.

  26. Testing ROI for QA / Manual Testing. Track your requirements with TFS. Track test plans, progress, and do defect tracking with TFS and/or Microsoft Test Manager (MTM). Use MTM Action Recordings to minimize tedium. Look for opportunities for test automation with MTM and Coded UI Tests.

  27. Rule of thumb: At least one Test Case per Scrum PBI.

  28. Coded UI Tests.

  29. Coded UI helps you test a running application s user interface.

  30. Unit Tests vs. Coded UI Tests Unit Tests Classes and methods at the API level If it tests a UI, it s testing an abstraction. (not quite testing the UI) UI testing has been hard Test stuff as you build it Coded UI Tests UI testing Test a running application Simulates a user s keyboard and mouse activities Test stuff that s pretty much done Integration testing

  31. The layers in your app. User Interface (ASP.NET, XAML, WinForms, etc.) Presentation (MVC / MVVM) Domain Model / Service Layer Repository / Data Access The Relational Database (Tables, FKs, Views, Stored Proc's)

  32. The layers in your app. Coded UI tests User Interface (ASP.NET, XAML, WinForms, etc.) Presentation (MVC / MVVM) Domain Model / Service Layer Unit tests Repository / Data Access The Relational Database (Tables, FKs, Views, Stored Proc's)

  33. Unit tests test your APIs. Coded UI Tests test your running user interfaces.

  34. I tend to think of QA identifying a case that needs automation and then requesting a Coded UI Test from developers.

  35. Action Recordings vs. Coded UI Tests Action Recordings Exist in Microsoft Test Manager It s there to help QA automate away tedious clicks and typing. Make QA testing go faster. The idea: created by non-technical users. Coded UI Tests Action Recordings on steroids. It really helps to be a programmer. You can do asserts . (aka. you can do actual checks) You can still associate them to MTM Test Cases as Associated Automations.

  36. Structure of a Coded UI Test The Test Fixture Class [CodedUI] attribute Editable like any other class (You can even make it data-driven!) UIMap.designer.cs Supporting information for the test Auto-generated by the recorder Partial class UIMap.uitest Auto-generated XML- based map of your UI Not editable UIMap.cs Partial class Customizations and extensions to the stuff in UIMap.designer.cs

  37. Avoiding hard-coded paths in Coded UIs. BrowserWindow class ApplicationUnderTest window

  38. Load & Performance Testing.

  39. You have an application.

  40. The Goal: Performance Test The Application

  41. The purpose of performance tests? Identify the capabilities of your application Possible goals Explore Verify Find the limits Crush

  42. Performance testing in a nutshell. 1. Throw traffic at the app. 2. Does it perform as expected? 3. Recreate any performance problems. 4. Fix the performance problems. 5. Repeat.

  43. What can you load test with Visual Studio 2012 Ultimate? ASP.NET with an HTML UI Web Forms or MVC (This is the sweet spot.) SharePoint Applications HTTP-based applications ASP.NET-based SOA apps Service-based apps with WebAPI or REST Coded UI Tests Pretty much anything you can call from a Visual Studio Unit Test

  44. Demos.

  45. Demos Unit Tests Code Coverage QA Testing Project Management Sprint Planning Test Case Management Test using MTM Test using web Test using web + test runner Test environment manager Web & Load Tests WPT Basics Load Test Basics Custom PerfMon Counters Load in the Cloud Load using Test Rigs

  46. Any last questions?

  47. Thanks. benday@benday.com | www.benday.com

Related