Friday, 22 November 2013

How to use Jira to subjectively track and report daily on your testing?

A long time ago I coded a now defunct modelling tool to help me with my testing. Half the battle with managing and reporting testing involves deciding how you will model it for the project you work on.

Generic Modelling

The generic set of formal modelling techniques I use, I often map on to:
  • Entities
  • Lists
  • Hierarchies
  • Graphs
When using Jira, I have access to Entities and Lists.

Lightweight Subjective Status Reporting

On a recent project we wanted a lightweight way of tracking progress/thoughts/notes over time. I really wanted a subjective 'daily' summary  report which provided interested viewers insight into the testing without having to ask.

As part of my normal routine I have become used to creating a daily log and updating it throughout the day. Ofttimes creating a summary section that I can offer to anyone who asks.

How to do this using Jira?

We created a custom entity called something similar to "Status Tracking Summary".

Every day, someone on the team would create this, and title it with the date "20 November 2013".

We only really cared about the title and the description attributes on the entity.

The description took the form of a set of bullets that we maintained over the day to document the status e.g.

- waiting for db schema to configure environment
- release 23.45 received - not deployed yet
- ... etc.

Over the day we would maintain this, so at the end of the day it might look like

- db schema and release 23.45 deployed to environment
- initial sanity testing started see Jira-2567
- ... etc.

I initially thought that the title would change at the end of the day to represent a summary of the summary e.g. "Environment setup and sanity testing", "Defect retesting after new release". But this never felt natural and added no real value so the title normally reflected the date.

Typically, as a team of 3-4, we had 5 - 15 bullets on the list.

Use Dashboards to make things visible

To make it visible, we added a "Filter" on this entity, and added Filter display gadget to the testing dashboard which displayed the last 2 status updates.

This meant that anyone viewing the testing dashboard could see subjective statements of progress throughout the day, and historical end of day summaries throughout the project.

But people don't like writing reports

I have grown used to tracking my day through bullets and actions that I take it for granted that everyone can do this. Still, I had initial concerns that not everyone on the team would add to the status and I might have to chase.

Fortunately that didn't happen.

The team used the Dashboard throughout the day to see what defects they had allocated to them, and to work on tasks and defects in the appropriate state. Therefore they always saw the subjective daily status report when they visited the Dashboard and updating it became a natural task during the day. 

You can report Daily, with mininal overhead

Very often stakeholders ask us to prepare daily reports. I find that creating, and updating, a summary log throughout the day often satisfies that requirement. 

As a team, building it into our documentation process throughout the day added very little overhead and made a big difference to the stakeholders had to our testing.

Friday, 1 November 2013

iOS Screen Capture, Streaming and ScreenRecording tools for Mobile Testing

I listed the results of my investigation into Android Screen Capture, Streaming and ScreenRecording tools for Mobile Testing, now time to turn to iOS.

Note that I'm not really covering static screen capture here, since short cuts are built into each operating system for static capture.

iOS is pretty locked down. And without jail breaking, your options are limited.

However, iOS has a built in screen sharing capability called AirPlay, designed to be used for streaming to your Apple TV. But that hasn't stopped some enterprising developers building AirPlay servers for both Windows and Mac OS computers.
Both applications are easy to use and offer much the same capability, so which you choose will depend on your evaluation on the machines you use.

Both are insanely affordable. And both have a version for Windows and Mac OS.

AirServer offers more configuration options, although it worked fine out of the box for me. AirServer offers a 7 day trial.

Reflector offers a trial where you can star as many sessions as you want. But each session only lasts for 10 minutes.

To capture your on-iOS-testing, 'airplay' the iOS screen to your desktop or laptop computer, and then use a screen recording tool like Camtasia, BB Flashback (or its big brother BB Test Assistant) and capture the screen movies there.

This doesn't let you interact with the actual iOS device from your computer, but goes some way to making your testing recordable and reportable.

FAQ: How do your books "integrate" with your courses?

Dear Alan
I'd like to embark on learning from your books and online course but should I do one before the other? Or does one set of materials supersede another?
A Correspondent 
I receive this question often enough that I'm going to try and answer it fully on the blog.

On a timeline, I created the following products:
If you still want to learn Selenium-RC using Java then the Selenium Simplified Book is the one to get. I walk you through learning the basics of Java, setting up the environments and Selenium-RC in a single book. In my mind the WebDriver courses and Java For Testers, supersede  the Selenium Simplified Book, but if you want to use Selenium-RC then the book remains valid, but remember Selenium-RC has been deprecated in favour of WebDriver.

Feedback I received on the Selenium Simplified book suggested that it was overly oriented to the beginner. Many people already knew how to code and setup the tools, and they just wanted to learn the API.
So, for Selenium WebDriver I created 3 products:
If you don't know how to code, but are a self starter and can learn from online resources when you get started, I recommend:
If you know you're going to need help working through the API then

And since it seemed top heavy on Automation, when that only represents part of what I do in my daily work life, I created the Technical Web Testing 101 online course to introduce people to the tools and thought processes I use when testing Web Applications.

I created  Java For Testers independently of Selenium 2 WebDriver Basics online Course. I use much of the Java in Java For Testers, on the WebDriver course, but don't explain the use of the Java constructs in detail.
I think they complement each other rather than directly overlap or supersede each other. Java For Testers is designed as a stand alone introduction to Java Programming and the WebDriver course doesn't spend a lot of time explaining the Java used.

Hope that helps. And "Thank You" to the most recent set of correspondents that asked the question.

How to connect your iOS device to an HTTP proxy on your desktop or laptop

Connecting an iOS device to an HTTP Proxy is much the same as we demonstrated on Android devices.

On your iOS settings:
  1. In Wifi
  2. Select the (i) information icon next to your wifi network
  3. On the bottom of the screen is the HTTP Proxy settings
  4. Set this to Manual
  5. Type in the Server IP address and port of your proxy

Now your HTTP traffic should flow through the desktop proxy.

iOS does a pretty good job of caching so I either clear the cache before I start testing use the Safari Settings and "Clear Cookies and Data" or use the "Private" link at the bottom of Safari to start a new session.

I found iOS doesn't like connecting to some networks, and so I setup a local hotspot with and that made my life a little easier.

Remember to switch off the proxy when you are done.