in

Utah .NET User Group

Home of Utah's professional .NET developers.

Matthew M. Osborn's Blog

April 2009 - Posts

  • ASP.NET QA Podcast – Episode 4

    Download : Episode 4

    In the fourth installment of the ASP.NET QA Podcast Federico and Matthew discuss “The Good,” “The Bad,” and “The Ugly” of the history of the ASP.NET QA Team. Discussion ranges from the dark ages, to the renaissance, to the industrial revolution, to the “21st and half century”.  Join them as they discuss the lessons learned and how the team has improved over time.

    • The team released the April update to the Lightweight Test Automation Framework.
    • The Dark Ages” ASP.NET 1.0/2.0
      • During this time the team was very focused on automating everything.
      • (disadvantage) This approach is not good with a changing Spec.
      • (disadvantage) Bugs were being found to late in the process.
      • (advantage) Excellent automation coverage.
    • The Renaissance” Atlas/Microsoft Ajax
      • The division moved to a feature crew model for development and QA.
      • (advantage) The team adopted a heavy unit testing practice. Increase in code coverage.
      • (disadvantage) The QA team still worked has it had before. It would automate everything is less time.
    • The Industrial Revolution” ASP.NET 3.5
      • The QA team began to adopt the Feature crew model and started the process of agile testing with exploratory testing.
      • (advantage) Bugs were being found at the beginning of the process.
      • (disadvantage) The team still wrote a large amount of automation.
    • 21st and half century” ASP.NET 3.5 SP1/ASP.NET 4.0/vNext
      • The team has really started moving away from automating everything and is spending more time investigating user scenarios.
      • The team has formed its own unique blend of agile, scrum, and any other buzz word project management theory.
      • (advantage) Creating and automating sample applications provides feedback for real world customer scenarios.
      • (disadvantage) The team is young and is still learning the best practices.
      • (Struggle) Costing has become less of a clear cut process.
      • (Struggle) The is still a barrier between the QA and Dev teams.
      • (Struggle) No one wants the blame when a bug is found.

    Links from the show :

  • Lightweight Test Automation Framework April Release

    The April release of the Lightweight Test Automation Framework for ASP.NET has just been posted and you can download it here. For this release, the team has worked hard to include the following bug fixes and new features. Please continue to give us your feedback as many of the fixes and features are based what we have heard from the community.

    Improvements to the user interface

    • A new look has been given to the test name when it passes or fails.  There is both color and visual queues that indicate weather a test has passed or failed.  Failed test names also appear slightly larger to help them stand out.
    • There is now a “Run Failed Tests” button. This button will open a new browser window that will select and run only the failed tests, for easy verification of fixes.
    NewUI2

     

    The ability to automate popup windows

    In previous versions of the framework there was no way to verify the contents of a popup window.  With this release we have far better support for opening and verifying the contents of popup windows.

    HtmlPage page = new HtmlPage("MyPage.aspx");
    page.Elements.Find("OpenPopup").Click();
    // get popup window
    HtmlPage popup = page.GetPopupWindow(1);
    // verify title of popup
    Assert.AreEqual("This is the Popup Page", popup.Elements.Find("h1", 0).GetInnerText());

    The GetPopupWindow method returns a HtmlPage object that is representative of the window at that index.  This is pulled from the collection that is maintained by the framework with index zero being the main, or starting, window. In this example index zero is MyPage.aspx, while index one is the popup window. 

    The ability to find elements by partial attribute values

    In previous versions of the framework when finding elements on a page you could only use the ID attribute to match against.  So if you wanted to match all the elements that had a CSS class applied to them, as is common in jQuery, you had to supply that whole value for the class attribute.  So, in previous versions of the framework if you wanted to find elements that had a CSS class applied to them you had to specify the whole value for the class attribute.  Meaning that if the element has more than only class and you search based on only one class that element would not be returned.  Now you have the ability to match based on any part of the value for the attribute. Below is an example of how to find elements that have the CSS Class “blue” applied to them.

    HtmlElementFindParams find = new HtmlElementFindParams();
    find.Attributes.Add("class", "blue", MatchMethod.Contains);
    ReadOnlyCollection<HtmlElement> elements = page.Elements.FindAll(find);

    Assembly name change

    • The assembly name has been changed from “Microsoft.Web.Testing.Light” to “Microsoft.Web.Testing.Lightweight.” The namespaces have not changed.
  • Podcast Playlist

    Each day my commute takes anywhere from 45 minutes to 1 hour depending on the traffic and if I ride the bus.  About a year ago, I decided to make the most of the stop and go traffic and start listening to podcasts in hopes that I might learn a thing or two. Most people at work know that I am an avid podcast listener and always ask me for my favorites, so I figured I would compile a list of my top tech/geek podcasts.

    Rating Name Type
    star star star star subscribe .NET Rocks Code/Interview
    star star subscribe Alt.NET Code
    star star subscribe Behind the Code Code/Interview
    star starstarstarstar subscribe StackOverFlow Code
    starstar star subscribe Boagworld Web Design
    starstar star subscribe Channel 9 Code/Interview
    starstar star subscribe Channel 10 Interview/Misc
    starstar star subscribe Elegant Code Code
    star star subscribe Google Developer Podcast Code
    starstarstar star subscribe Hanselminutes Code/Interview
    starstarstar star subscribe Herding Code Code
    starstar star subscribe Pixel8 Code/Interview
    star star subscribe Ruby on Rails Podcast Code
    starstarstarstar star subscribe System Hardware/Geek
    star star subscribe The Rissington Podcast Web Design
    starstarstarstar star subscribe This Week in Tech (twit) Geek
    star star subscribe Pixel Perfect Photoshop
    starstarstarstar star subscribe ASP.NET QA Podcast Code/QA
Copyright © 2000-2007, Utah .NET User Group
Powered by Community Server (Commercial Edition), by Telligent Systems