Rasmus Møller Selsmark

On software test and test automation

TechEd Europe 2012 – Wednesday

clock June 28, 2012 08:33 by author rasmus

Second day here at TechEd started with a keynote on Windows 8, where some interesting features was presented, like:

  • Touch. Had the opportunity later today at a workshop to work for two hours with Windows 8 and a touch screen, and I feel sure that when we all have touch screens in a couple of years, this will be a feature that will be hard to work without. More on this later in this post
  • Run legacy versions of Windows using Hyper-V installed with Windows 8. Started amazingly fast, but it for some reason always do that on Microsoft presentations Smile
  • Remote FX, i.e. 3D graphics in Remote Desktop connections. Microsoft expect more people to remotely log into their machines, and then it’s of course nice to have same user experience as logged directly into the machine. Touch also works through Remote Desktop.
  • Windows-to-go, i.e. running Windows 8 from a USB drive. Looks fine on demos…

 

Two images taken during the Windows 8 keynote showing Hyper-V running a Windows 7 VM inside Windows 8 (left) and the tablet emulator available in Visual Studio 2012, that allows you to see how your metro app behaves on different screen resolutions and vertical/horizontal alignment:

IMG_1002 IMG_1005

Several Windows 8 compatible tablets and laptops/netbooks were shown, but surprisingly enough we haven’t seen a Surface yet.

 

Next we went to DEV337 on Software Testing with Microsoft Test Manager 2012 and Lab Management presented by Brian Keller. The new features available in TFS 2012 are:

  • Improved support for Exploratory Testing using MTM, where the steps are recorded during the test, and when filing a bug you can see the steps you have been doing and edit in these. Also being able to take screenshots/videos of the bug found.
  • Rich text fields in TFS Work Items, e.g. the Description field for a bug. Not a big feature, but will certainly make it easier to include small screenshots when creating a bug work item.
  • Being able to execute tests remotely. In his demo he had a person from the audience testing remotely on a Windows 8 tablet. When a bug was found, the action recording steps, system information etc. from the remote machine was sent to TFS. This is something I’m going to take a closer look at, as it seems it’s not required to install MTM inside lab environments then.

 

Images of an “exploratory bug” (note the rich text capabilities including a screen dump) and the feature matrix for test environments, depending on if you’re using SCVMM or standard environments (physical, VMware etc):

IMG_1013 IMG_1015

 

Next session was DEV370 Automating Server-Based Build, QA & Test with Visual Studio 2012, which I found more to be a 200-level introduction to the build features of TFS 2010 and 2012. We went through:

  • “What is quality? A system that meets quality expectations in one context, might not be acceptable in another context. An example could be different targets for code coverage in different scenarios (usually depending on customer expectations in an Agile project)
  • Definition of done. Must be measurable and automated, and can help keeping a constant level of quality by not pushing test related tasks to the end of project.
  • A checklist of five steps to get higher quality using the built-in TFS features (see image below)

 

According to his checklist (left), I must say that we at ScanJour are in pretty good shape then. The image on the right shows how to use a Layer Diagram to verify that architectural guidelines are satisfied by the code, and is probably something to take a closer look at. Unfortunately it requires Visual Studio Ultimate to set up, but can then be validated on the build server (by applying “/p:ValidateArchitecture=true” as MSBuild Argument)

IMG_1019 IMG_1027

I find the checklist to be a good minimum baseline for anyone involved in software development, but mostly focusing on “building it right” and not necessarily “building the right it”.

 

Channel9 is streaming live from the conference. Quite a number of people involved in a Channel9 production:

 

The I went to workshop WCL02-WRK on Building Your First Windows 8 Metro Style App where I had the opportunity to work with the Release Candidates (or “Release Preview” it seems to be called for some products) of Windows 8 and Visual Studio 2012 Express (yes, there was Express installed on the PC’s). We made a fine little cookbook application with support for Search and Share in Windows 8. “Share” seems to be the new way to drag/drop in Metro apps, now you cannot drag a picture from your Explorer Window into your Mail window.

IMG_1034

As mentioned earlier, the screens in the room were all touch-screens, and I must say it feels really natural to start dragging thing around on the screen using your fingers. Having both mouse, keyboard and touch seems to complement each other really well, depending on the task you are working with. I can surely imagine situations where touch is the preferred way to interact with the PC, especially when several persons are looking at same PC. Then it’s a lot easier to simply touch the screen instead of having to pass the mouse around. We just have to remember to clean our screens more often Smile

 

Last session of the day was DEV390 on IntelliTrace. The speaker started to compare IntelliTrace to the “black box” of airplanes, which gives you the opportunity to find out what went wrong, after something has happened. The second slide here shows what types of code you can expect to get IntelliTrace for:

IMG_1035 IMG_1037

Most of the session used existing features of Visual Studio 2010, which seems to work fine when executed from a developer PC (we never had success running from lab in ScanJour). Visual Studio 2012 introduces “IntelliTrace In Production” (or IntelliTrace Everywhere), where you can download PowerShell scripts that will enable IntelliTrace on any environment, which I think will be a very useful feature in order to repro and fix customer-reported issues:

IMG_1044

 

Kim noticed that all light bulbs (even on slides) are now low-energy Smile

image

 

We ended the day at the Amsterdam ArenA (home field of Ajax Amsterdam) watching the EURO 2012 semifinal between Spain and Portugal. Probably because it’s my first time at TechEd, but I’m really impressed by the work Microsoft puts into this conference.

IMG_1049




TechEd Europe 2012 – Tuesday

clock June 27, 2012 08:33 by author rasmus

I’m participating at TechEd in Amsterdam these days. Nice sunny weather and a fine hotel. Amsterdam seems to be a nice city.

But on to the important stuff, namely what’s happening at TechEd. My first day here (didn’t participate in workshops Monday) started with the usual Keynote session, covering

  • Cloud computing (this is a big topic this year)
  • Scalability of Windows Server 2012 and SCVMM 2012, where number of VM’s per Hyper-V host has increased. Looking forward to this.
  • Automation. According to speakers, every new Microsoft Server application now has PowerShell support. If a UI exists, it leverages the PowerShell cmdlets. PowerShell is definitely something to look closer at as SDET, since this can help you automate many tasks related to configuring system.
  • ScottGu presented Visual Studio 2012, where he created a small mobile app using MVC 4 and an iPhone emulator (installed as part of VS12?). Of course it was a Microsoft keynote demo (which always looks very convincing), but it actually seemed quite easy to develop this app, so MVC 4 is yet another technology to look closer at.
  • OData support out of the box in VS12. Something that will be useful for our customers, now we have our own OData provider for Captia

 

The following figure shows how Microsoft sees the application lifecycle, where applications are continuously developed, improved and deployed based on feedback from customers (although it seems to require a fairly homogenous environment with Windows Server 2012, SCVMM 2012/Azure, Visual Studio 2012 etc. Not convinced yet that it will work behind firewalls, with older Windows versions etc.)

IMG_0965

An example of this was being able to replay a Web Test “recorded” in Visual Studio on a production environment, and using IntelliTrace for debugging any issues found. There certainly are some interesting ideas in this.

Finally the keynote touched the BYOD (bring-your-own-device) challenge that many IT departments are facing. The point here was that it’s not important who owns the device, but rather who is in control if the device. The speaker presented tools that e.g. only would allow a mobile device to connect to company resource, if the device had enabled encryption and password. Another feature was to be able to remotely wipe devices, e.g. in case it’s stolen.

All in all an interesting keynote, but not sure I will watch it again when video is ready.

 

Next session was by FDN02 on Application Lifecycle Management (ALM) by Brian Keller, where he gave an overview of the new features in TFS 2012 and Visual Studio 2012. It certainly seems that agile planning and estimation has become a lot easier in TFS 2012, e.g. by simply drag/dropping work items from backlog into an iteration, and with the following task board build into TFS (left image):

IMG_0967   IMG_0969

The second slide shown here is actually the same as the one from the keynote, but here “decorated” with more specific technologies to be used in the different application lifecycle states. What I found especially interesting here was:

  • Mockups using PowerPoint (new Ribbon tab in PowerPoint). I think this has always been done, but now it’s actually supported by Microsoft Smile
  • Code reviews directly in Visual Studio 2012
  • Code clone analysis for detecting similar code blocks throughout the application
  • IntelliTrace initiated on production environment using PowerShell cmdlets (another example that PowerShell usage is increasing)
  • PreEmptive Analysis which provides functionality similar to Microsoft's own “Dr. Watson” and “Customer Improvement Program” features
  • And finally the hosted TFS available at http://tfspreview.com. When they get Lab Management support here, this will certainly be interesting for us to take a closer look at.

Good session, which is worth looking at when the videos becomes available.

 

Moving on to session AAP305 on Cloud Patterns for Application Architects. Not my primary area, but nevertheless interesting to hear about considerations for developing cloud-based applications. Of course Azure was used in the examples, but the session generally covered patterns learned from existing large systems like Amadeus. The overall architectural pattern is to protect the database from unnecessary load, by implementing stateless servers, so that users can freely move to other servers, and servers can be taken out without problems.

IMG_0978

The “worker process servers” on the right side of the slide, are performing asynchronous jobs, e.g. processing the actual buy, but on different servers than the front-end. An actual “real-life” example of how to minimize database load is Amazon that displays a text like “This item is usually available within 48 hours”, instead of querying for exact number of books in stock. Again this can save database round-trips, which can have a big performance impact on a large scale site.

 

Then went into SIA301 on Techniques for Hiding and Detecting Traces, where the speaker both showed some “bad guy” tricks for getting binaries into a system. Required either physical access to the machine or using social engineering. Either way it was shown how to get admin access (by e.g. just waiting for another admin to log on to the machine), and I can certainly imagine that this is actually a real issue. Various SysInternals tools was used to show how you can detect if something suspicious is running on a machine and also how to hide a process from being displayed in Windows Task Manager.

 

Final session Tuesday was DEV414 - Realizing the LINQ to Everything Dream. Having implemented a LINQ provider for Captia using our “web-enabled query layer” (SOM.ASP for people who knows Captia), it was really interesting to hear how it should have been implemented more correctly Smile. The speaker talked about a toolbox that Microsoft is working on internally that will make it easier to implement custom LINQ providers.

The session started out by talking about Monads, which is a Haskell construct developed years before LINQ, and serves as the theoretical foundation for LINQ.

IMG_0983

An implementation of a LINQ provider for searching movies at IMDB was presented (although rather quickly) and also an example on getting tweets using LINQ (it seems I need to get a Twitter-capable phone soon…)

Another example shown here is how to query WMI for new notepad.exe processes:

IMG_0989

Note the use of AsObservable() that will return an IObservable<> collection, meaning you subscribe to results when they become available, instead of getting the full result-set at once. Especially useful when querying big datasources like Twitter.

In the last part of the presentation, we were shown how to solve simple mathematical/logical tasks and even a Sudoku using LINQ:

IMG_0995

This certainly was “LINQ for Everything” and a good 400-session, that I will recommend others to watch.

 

From my colleague Kim, I hear that the WCL309 – What’s new in Microsoft Deployment Toolkit 2012 session presented interesting new features of this tool, that we might be able to use for automating SCVMM template creation for our TFS Lab Management. From DEV316 – ALM Tools for C++ in VS2012 it sounds that a some really useful features like static code analysis, unit testing and code coverage is coming up with the new version of Visual Studio 2012.

That’s it for today. Tomorrow will be about testing using Lab Management, IntelliTrace and automation. Stay tuned…




DSTB Conference 2012 - “From theory to practice”

clock May 9, 2012 21:59 by author rasmus

Along with other testers from ScanJour, I participated in todays Danish test conference held by the Danish Software Testing Board. My “30 seconds commercial” from the conference would contain the following:

First presentation was on the subject “What defines an excellent test manager”, presenting a survey made among European and US companies. Nothing much really to say from that presentation…

From John Fodehs presentation/workshop on metrics:

  • Seen as a production process, the testing activity doesn’t bring any value/features to the software product itself, since we’re not as such modifying the software itself. John used a figure similar to the following, to describe this situation:
     image
  • So what value does the testing activity bring into the process? Luckily there was an answer to this, and it’s “Information”:
    image
  • Back to metrics (which the workshop was about); metrics can help us to understand, assess, predict, improve and finally communicate the progress of our software development project.
  • The ISTQB syllabus says “In order to control testing, it should be monitored throughout the project”, meaning that monitoring metrics should be an ongoing activity and metrics must be SMART (Specific, Measurable, Acceptable, Relevant and Timely)
  • In order to identify metrics, we were shown a technique called GQM (Goal-Question-Metric), where you start to define your goals, then the questions you would like answered and finally identify your metrics. This is shown in the following figure:

    image

    An example could be to have a goal of “Get release overview” and the question could be “Are we ready to release?” and then identify the metrics needed to answer this question.

    Looking forward to use this technique, which I actually think I can find use for in many situations, not only within my professional worklife.
  • Then we had a discussion about “what is software quality”. Of the presented statements I like “Conformance to requirements” [Crosby] and “Fitness for use” [Juran]. I find it important to be able to measure the quality somehow (although it’s not always easy).

In the remaining part of the workshop John presented a “Dashboard” from a real project. Interesting to see, and all in all a good presentation on use of metrics.

Saxo Bank had a presentation about “Agile release test in practice”, where they presented how they have one team that fulltime perform the integration tests, being able to release every second week. I like this concept of having somewhere where an integration test can be applied to all your products, and this certainly an idea that I will bring home. And then this presentation mentioned “There is no testing best practices – only good practices that can be used in a given context” (see http://context-driven-testing.com/)

Nykredit talked about their way to TMMi level 4. Interesting to hear about TMMi and their central test excellence center. But they live in a world of long waterfall-ish projects, so not easy to use their experiences on the agile projects we’re running.

Then finally Dorothy Graham had a presentation on her latest book Experiences of Test Automation (which I’m currently reading – will write a blog post when I’m done with it). I had the pleasure of attending a workshop by Dorothy Graham a couple of years ago on EuroSTAR in Copenhagen; a session I still remember as being really useful. Her book contains 28 case studies on test automation projects throughout the world. Some of her main points (at least how I see them) are:

  • Test Automation is development. You have to consider a test automation project like any other software development project, i.e. have clear requirements, an architecture, sufficient resources etc.
  • Define an architecture for your test automation, otherwise you end up with automated tests that cannot be maintained and then probably will be dropped sooner or later.
  • Build “Keywords” (or actions) that can be reused in different test cases. Again simply a good development practice.
  • Of course pay attention to your failed tests, but remember to review your green tests regularly to ensure they are still correct (also see my previous post)

And from her summary slide:

  • Test automation will become more critical for everyone
  • Management support and understanding is essential for long-term success
  • The right testware architecture is essential for minimizing maintenance and maximizing use of automation
  • Learn from others’ mistakes – life’s too short to make them all yourself!

It’s a little bit surprising at first, that Dorothy Graham is able to talk about test automation without showing any tools, but she certainly does a good job on viewing it from a theoretical level, and my impression is that my colleague domain testers also got a good idea about test automation possibilities and challenges from this presentation.

Actually it was from Dorothy Graham I first learned the concept of preparing a “30 seconds commercial”, so you are prepared when people back at the office asks you how the conference went. Although I’m probably not able to tell all this in 30 seconds…