<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2379587163067822460</id><updated>2012-01-05T15:24:13.137Z</updated><category term='picker'/><category term='firefox'/><category term='calendar'/><category term='control'/><category term='meetup'/><category term='websites'/><category term='internet explorer'/><category term='ie6'/><category term='browser'/><category term='cucumber'/><category term='selenium'/><category term='web sites'/><category term='automation'/><category term='bdd'/><category term='date'/><category term='widget'/><category term='talks'/><category term='ide'/><category term='gherkin'/><category term='presentations'/><title type='text'>Testing Times</title><subtitle type='html'>Testing the web, one page at a time.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-3252886208347216428</id><published>2012-01-04T15:44:00.000Z</published><updated>2012-01-05T15:24:13.143Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='control'/><category scheme='http://www.blogger.com/atom/ns#' term='web sites'/><category scheme='http://www.blogger.com/atom/ns#' term='calendar'/><category scheme='http://www.blogger.com/atom/ns#' term='widget'/><category scheme='http://www.blogger.com/atom/ns#' term='picker'/><category scheme='http://www.blogger.com/atom/ns#' term='date'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>Some advice on when, and when not, to use Date Pickers</title><content type='html'>Using a date picker (or calendar control) &lt;i&gt;as the only way&lt;/i&gt; to enter a date of birth (DoB) is a really unhelpful trend in online forms.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-5bpbMh3GM1w/TwXAIkDzT6I/AAAAAAAAAEw/LKByNtAw9cc/s1600/calendar_picker.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-5bpbMh3GM1w/TwXAIkDzT6I/AAAAAAAAAEw/LKByNtAw9cc/s1600/calendar_picker.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;jQuery's date picker&lt;/i&gt; &lt;i&gt;control&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;I urge UI/UX designers to stop and examine why they do this, and for testers to kick back on this issue.&lt;br /&gt;&lt;br /&gt;Here's why...&lt;br /&gt;&lt;br /&gt;Date pickers are great for &lt;i&gt;relative &lt;/i&gt;dates, such as when booking leave or travel: the exact date is not known and is actively being explored. This is why they've been in use for years on holiday websites, for example.&lt;br /&gt;&lt;br /&gt;However they are an obstruction when entering &lt;i&gt;absolute &lt;/i&gt;dates (known, fixed dates). The most egregious example of this is when entering one's DoB on a form. This is a value etched on our minds and we're so used to it that we type it as fast as we're able, without thought, in the date format appropriate to our locale as well. Attempting to select this from a date picker widget (which unhelpfully tends to default to the current date too) is a serious impediment to ease of use and should be shunned.&lt;br /&gt;&lt;br /&gt;A simple text field that accepts a date in the local format--clearly labelled as such, eg &lt;i&gt;dd/mm/yy&lt;/i&gt;--is all that's required. If you insist, add a date picker alongside the field as well, but don't offer it as the &lt;i&gt;only &lt;/i&gt;entry point. (I guarantee no-one will use it anyway.)&lt;br /&gt;&lt;br /&gt;If you use a date picker for anything other than a DoB, pay attention to the default date. This should be something sensible such as the current date, the date an event starts on, or whatever is appropriate in the context.&lt;br /&gt;&lt;br /&gt;Anything that gets in the way of free and flowing navigation and input by your users will irk them. Collectively a lot of small annoyances like these will add up to a poor user experience, even though any single one of them is only trivial matter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-3252886208347216428?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/3252886208347216428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=3252886208347216428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/3252886208347216428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/3252886208347216428'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2012/01/some-advice-on-when-and-when-not-to-use.html' title='Some advice on when, and when not, to use Date Pickers'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-5bpbMh3GM1w/TwXAIkDzT6I/AAAAAAAAAEw/LKByNtAw9cc/s72-c/calendar_picker.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-2218069230296157340</id><published>2011-11-17T12:48:00.005Z</published><updated>2011-12-01T16:49:04.834Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='gherkin'/><category scheme='http://www.blogger.com/atom/ns#' term='meetup'/><category scheme='http://www.blogger.com/atom/ns#' term='cucumber'/><category scheme='http://www.blogger.com/atom/ns#' term='bdd'/><title type='text'>Cucumber is inherently compromised</title><content type='html'>&lt;b&gt;Background&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I attended the &lt;a href="http://www.meetup.com/SoftwareTestingClub/events/37167892/"&gt;STC Meetup in Birmingham&lt;/a&gt; on Tuesday evening and was struck by a realisation towards the end of &lt;a href="http://uk.linkedin.com/in/simonjknight"&gt;Simon Knight&lt;/a&gt;'s lightning talk on the pros and cons (they were mostly cons) of &lt;a href="http://en.wikipedia.org/wiki/Cucumber_%28software%29"&gt;Cucumber&lt;/a&gt;. More on this epiphany later...&lt;br /&gt;&lt;br /&gt;By happy coincidence I had recently started to look into Cucumber as a concept because our development team on the &lt;a href="http://www.nottingham.ac.uk/is/itisnews/feb2011edition.aspx"&gt;SAMS Programme&lt;/a&gt; here at &lt;a href="http://www.nottingham.ac.uk/"&gt;Nottingham&lt;/a&gt; are trying to move towards embracing continuous integration as a methodology. I have read and digested the &lt;a href="http://cuke4ninja.com/"&gt;Cuke4Ninja&lt;/a&gt; how-to PDF and it seems, on the surface, to be addressing some of the failings of "traditional" software development. Its main thrust is the use of Gherkin, a form of &lt;a href="http://en.wikipedia.org/wiki/Structured_English"&gt;Structured English&lt;/a&gt;, to enable requirements specifications, or derivations thereof, to be put forth in much tighter and more precise terms than are commonly used. Bluntly the idea is that by aiming to reduce ambiguity, better software will result faster. Riding on the coat-tails of this are programming language libraries (Cucumber is by far the dominant one) to make Gherkin statements executable and thus testable in some limited sense.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Criticism&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;With good timing James Bach (also at the Meetup) had recently &lt;a href="http://www.satisfice.com/blog/archives/638"&gt;weighed in with some strident criticism&lt;/a&gt; of the Behaviour-Driven Development (BDD) methodology that Cucumber is a tool for.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Realisation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I realised during Simon's presentation that Cucumber tries to position itself at the intersection of Analysis, Development and Testing (visualise a Venn diagram of these roles) and is therefore essentially a compromise between all three.&lt;br /&gt;&lt;br /&gt;To quote from Cuke4Ninja (page 13 of the &lt;a href="http://cuke4ninja.com/download.html"&gt;PDF&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Cucumber is a functional test automation tool for lean and agile teams. It supports behaviour-driven development, specification by example and agile acceptance testing. You can use it to automate functional validation in a form that is easily readable and understandable to &lt;i&gt;business users, developers and testers.&lt;/i&gt; [my emphasis]&lt;/blockquote&gt;&lt;br /&gt;The point I raised during the Q&amp;A was that since each group already produces their own form of documentation particular to their viewpoint (Business Analysts write requirements specifications, Developers have their code, Testers produce test plans, etc) how can any documentation possibly sit between all three and not be compromised? Who would author such documentation? Who would own it? And who would realistically countenance adding what would be a fourth layer to the mix when documentation is hard enough to do anyway? It is yet another set of documents to be kept in synch with the true requirements, which are hard enough to ever nail down.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Caution&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;If&lt;/i&gt; BDD is half of what it's cracked up to be, such an investment might be worthwhile. There are some interesting concepts there and not all are without merit. But it is the nature of people to overstate the worth of something new so we need to exercise caution while at the same time being open to new ideas. I'm reminded once again of Fred Brooks' paper &lt;a href="http://en.wikipedia.org/wiki/No_Silver_Bullet"&gt;No Silver Bullet&lt;/a&gt; which still stands as an undefeated caveat to the entire software industry 25 years since it was published.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Futher Work&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I leave you with these notes I jotted down after the session. Despite the scepticism above, I still intend to do this, though I admit my enthusiasm has been somewhat tempered:&lt;br /&gt;Cucumber/Gherkin&lt;br /&gt;- learn it&lt;br /&gt;- apply it&lt;br /&gt;- report on your experiences&lt;br /&gt;- back in the warm glow/icy frost of your peers&lt;br /&gt;&lt;br /&gt;Watch this space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-2218069230296157340?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/2218069230296157340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=2218069230296157340' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2218069230296157340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2218069230296157340'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2011/11/cucumber-is-inherently-compromised.html' title='Cucumber is inherently compromised'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>6</thr:total><georss:featurename>Nottingham, UK</georss:featurename><georss:point>52.9551147 -1.1491718</georss:point><georss:box>52.8785882 -1.3071002999999999 53.0316412 -0.9912432999999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-2541017345603828622</id><published>2011-03-04T16:48:00.000Z</published><updated>2011-03-04T16:48:03.763Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='meetup'/><category scheme='http://www.blogger.com/atom/ns#' term='talks'/><title type='text'>Software Testing Alone</title><content type='html'>Last week I gave a quick standup talk on the subject of &lt;i&gt;Software Testing Alone&lt;/i&gt; at the &lt;a href="http://www.meetup.com/SoftwareTestingClub/events/16138970/"&gt;STC Meetup in Nottingham&lt;/a&gt;. Slides, which I did not use at the time, are &lt;a href="http://pberry.me.uk/testing/"&gt;here&lt;/a&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-2541017345603828622?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/2541017345603828622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=2541017345603828622' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2541017345603828622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2541017345603828622'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2011/03/software-testing-alone.html' title='Software Testing Alone'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-8764156954736938712</id><published>2011-01-07T14:49:00.004Z</published><updated>2011-01-10T15:12:53.150Z</updated><title type='text'>A rare beast: 414 Request-URI Too Long</title><content type='html'>Just encountered my first 414 error: "Request-URI Too Long". However I'm surprised it hasn't happened to me sooner given how many Web 2.0(TM) websites use api calls to other apps via urls. (In other words, daisy-chaining ever longer referring urls into the next url visited.) For example, this is the url even the mighty Google baulked at when I wanted to post a comment on a blog by logging in to one of the main social media services linked to from within the blog page itself (thanks, TypePad).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;https://www.blogger.com/openid-login.g?oidrp.identity=http%3A%2F%2Fthese-are-testing-times.blogspot.com%2F&amp;oidrp.return_to=https%3A%2F%2Fwww.typepad.com%2Fsecure%2Fservices%2Fsignin%2Fopenid%3Farchetype.to%3D%252Fsitelogin%253Ffp%253Dc635b981cc45b06c0d2fd7cb720da2c5%2526view_uri%253Dhttp%25253A%25252F%25252Fprofile.typepad.com%25252F%2526service%253Dopenid%2526uri%253Dhttp%25253A%25252F%25252Fmarkhadfield.typepad.com%25252Fthat_gormandizer_man%25252F2009%25252F02%25252Fthetrainlinecom-fail.html%26openid-check%3D1%26archetype.via%3Dblogside%26tos_locale%3Den_US%26portal%3Dtypepad%26archetype.signin_openid%3D1%26oic.time%3D1294411291-e889c028716a401f72b9&amp;oidrp.trust_root=https%3A%2F%2Fwww.typepad.com%2F&amp;oidrp.assoc_handle=&amp;oidrp.sreg.opt=timezone%2Cdob%2Cgender%2Clanguage%2Cpostcode%2Cfullname%2Ccountry&amp;oidrp.sreg.req=nickname%2Cemail&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;What do you mean you can't process this? It's only 844 characters long!&lt;br /&gt;&lt;br /&gt;[Edit: 10/01/11]&lt;br /&gt;Further discussion &lt;a href="http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-an-url"&gt;here&lt;/a&gt;; 255 characters seems to be the gentlemen's agreement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-8764156954736938712?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/8764156954736938712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=8764156954736938712' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8764156954736938712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8764156954736938712'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2011/01/rare-beast-414-request-uri-too-long.html' title='A rare beast: 414 Request-URI Too Long'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-8681294010821333466</id><published>2010-09-21T15:45:00.008+01:00</published><updated>2010-09-22T13:59:32.009+01:00</updated><title type='text'>If you can't unsubscribe from bulk emails, they become spam</title><content type='html'>Here's an example of how not to do bulk emails.&lt;br /&gt;&lt;br /&gt;Consumer Alerts &lt;info@consumer-alerts.co.uk&gt; send out marketing messages with the following standard text always included at the end of the message body, customised to the user:&lt;/info@consumer-alerts.co.uk&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;This email has been sent to the following email address: xx@xxxxxx.xx.xx&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;You are receiving this email because you have registered with creditcrunchfixsurvey.co.uk. creditcrunchfixsurvey.co.uk respects your privacy and only sends emails to registered members. Our emails are never sent unsolicited.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;If you wish to unsubscribe from our future special offers click here.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;http://consumer-alerts.co.uk/public/unsubscribe.jsp?gid=some_randomised_string&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Please note that unsubscribe requests must be made from the email account used to register with creditcrunchfixsurvey.co.uk: xx@xxxxxx.xx.xx&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;To find out more about us and our privacy policy.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;http://consumer-alerts.co.uk/re?l=&lt;/i&gt;&lt;i&gt;some_other_randomised_string&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;The unsubscribe link does nothing. The page visited appears to ask a question:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Confirm Unsubscription&lt;br /&gt;&lt;br /&gt;Are you sure you would like to unsubscribe from the Group(s):&lt;br /&gt;&lt;br /&gt;Consumer Alerts (mailto:info@consumer-alerts.co.uk)&lt;br /&gt;&lt;br /&gt;with the following email-address: xx@xxxxxx.xx.xx?&lt;br /&gt;&lt;br /&gt;We will send you a confirmation mail of this unsubscription. If you wish to re-subscribe, please reply to this email.&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;But there is still no mechanism by which you can actually confirm you wish to unsubscribe. Given the wording it looks like there should be a pair of [OK] and [Cancel] buttons but there aren't. And sure enough, no confirmation email ever appears either.&lt;br /&gt;&lt;br /&gt;OK, let's try visitng their privacy policy page:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;No such host.&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Thinking laterally and going straight to http://consumer-alerts.co.uk gives no clues about how to unsubscribe either.&lt;br /&gt;&lt;br /&gt;OK, a last-ditch attempt. This almost certainly won't work (if they don't care about letting people manage the emails they receive from them, how likely is it that they'll reply to a manual request?):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Please remove xx@xxxxxx.xx.xx from all mailing lists you operate. I have tried to unsubscribe by following the links in the emails but they do not work.&lt;br /&gt;&lt;br /&gt;After removing my email address, you should probably fix this problem.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Paul&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Update 22/09/10:&lt;br /&gt;&lt;br /&gt;There &lt;i&gt;is&lt;/i&gt; a submit button on the unsubscribe confirmation page, stuck out of sight at the extreme right of the page. I only noticed by looking at the source:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;div class="submit-row"&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;button name="unsubscribe" type="Submit"&amp;gt;- YES -&amp;lt;/button&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Moral:&lt;/b&gt; If you do not provide an unsubscribe facility, or make it hard to find/use, then previously-solicited email that you no longer want very quickly becomes unsolicited. &lt;strike&gt;Thus, consumer-alerts.co.uk are spammers.&lt;/strike&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-8681294010821333466?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/8681294010821333466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=8681294010821333466' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8681294010821333466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8681294010821333466'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2010/09/if-you-cant-unsubscribe-from-bulk.html' title='If you can&apos;t unsubscribe from bulk emails, they become spam'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-8425708952972436458</id><published>2009-12-30T09:46:00.007Z</published><updated>2010-03-03T20:52:11.929Z</updated><title type='text'>Fun with Sky</title><content type='html'>I have decided to sign up with Sky for their TV, broadband and phone package. This is mostly because I'm paying about as much for broadband and calls (mostly line rental actually) as Sky's whole package. The Sky+ box really seals the deal though: no more trying to catch up with TV on BBC's iPlayer (buffering..........) or having to muck about with DVD recorders, etc.&lt;br /&gt;&lt;br /&gt;I wanted to enquire about what happened with line rental. The website seemed to handwave this detail, but you can't just not explain an £11-£12/month charge or assume it's a given. There appeared to be no contact number for them either, so I eventually got through to their sales dept via their SkyTalk (telephony services) number. Having said that their Dunfermline call centre handled the entire signup process very efficiently and courteously so full marks there.&lt;br /&gt;&lt;br /&gt;I even have an installation appointment on a &lt;i&gt;Sunday morning&lt;/i&gt;. That's service.&lt;br /&gt;&lt;br /&gt;So the automated signup/transfer process has now kicked in. This is where they fall down on detail.&lt;br /&gt;&lt;br /&gt;Received a text this morning: "Your Sky Broadband will be activated on 13/01/2010." &lt;strike&gt;Sorry, that's impossible without me giving you the MAC key from my current broadband provider. There seems to be no mechanism by which I can send them this essential information.&lt;/strike&gt; Maybe there'll be a way via the member's area on the website (MySky)? I got a confirmation email from them after signing up over the phone. Yep, the email has my username &lt;i&gt;but no mention of a password!&lt;/i&gt; Maybe I gave them a password over the phone? Maybe it's a randomised one you get when an account is created? No idea and they don't hint at what's going on.&lt;br /&gt;&lt;br /&gt;Let's try signing up without a password (you never know). Nope, can't do that. OK, I'll click the "Forgot password?" link even though I've not forgotten it; I've just never been told.&lt;br /&gt;&lt;br /&gt;Email received with password which I can sign in with. Right, we're moving again...&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;&lt;br /&gt;&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;There's no indication from the broadband setup progress page about what to do when migrating. Users this applies to who aren't aware of this (assuming they've got this far) will get delayed because what they should be doing is contacting their current provider for their MAC key. A search through their help system does reveal the right page which does explain things clearly, but you have to know to look for it.&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Moral:&lt;/b&gt; Join up your customer journeys so they are seamless. It's no use having helpful staff on the phone if you then fall at the first few hurdles on the website.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Extra Moral:&lt;/b&gt; If you're stopping your line, there's no migration process (hence the redactions above). It magically works from the changeover point, which is a vast improvement on the old 7-10 day lead time for broadband activation. &lt;br /&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-8425708952972436458?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/8425708952972436458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=8425708952972436458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8425708952972436458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8425708952972436458'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/12/fun-with-sky.html' title='Fun with Sky'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-8698716550974901786</id><published>2009-12-18T11:51:00.002Z</published><updated>2009-12-21T13:20:25.394Z</updated><title type='text'>Hardcore Test Automation</title><content type='html'>&lt;a href="http://www.sqlite.org/testing.html"&gt;How SQLite Is Tested&lt;/a&gt; is an extremely detailed account of how the team behind the world's most popular embedded database verify its robustness.&lt;br /&gt;&lt;br /&gt;It's worth at least a skim read to see what they do. Some things jump out:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Code required to comprehensively check other code is necessarily significantly larger and more complex than that which it's testing. We already know that, but in SQLite's case the testing code is &lt;b&gt;690 times larger&lt;/b&gt; than the source code.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Regression testing must include specific checks for every bug ever reported, which are then used to show that the fixes hold for each release. Again, no surprises there, but the consequence is that this effort quickly snowballs into a lot of extra work and new releases take longer and longer to deliver. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Static analysis has never proved useful (for them): &lt;b&gt;not a single bug&lt;/b&gt; has been detected using this method. Even though this is mostly because their automated testing does such a thorough job it's worth investigating how that might apply to &lt;i&gt;your&lt;/i&gt; testing. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;They only achieved 100% branch coverage in August of this year. Clearly a high watermark for them but also a goal that takes a very long time to realise.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-8698716550974901786?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/8698716550974901786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=8698716550974901786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8698716550974901786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8698716550974901786'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/12/hardcore-test-automation.html' title='Hardcore Test Automation'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-5535684388456134196</id><published>2009-08-24T10:19:00.008+01:00</published><updated>2011-08-05T10:04:35.971+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='web sites'/><category scheme='http://www.blogger.com/atom/ns#' term='ie6'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Testing in IE6</title><content type='html'>Ask about the &lt;a href="http://2wtx.com/itsbroken/archives/21-If-you-are-still-using-IE6,-why.html"&gt;20% or so of users who still use IE6&lt;/a&gt; in a development environment and there'll be a lot of rolling of eyes and general muttering.&lt;br /&gt;&lt;br /&gt;The point is, until usage figures drop low enough to justify ignoring them, your dev team will still need to code, and you will still need to test, web sites in IE6. We'd all like them to upgrade but wishing it won't make it true. Unless you're in the privileged position where a client comes to you and states "make my site work only in IE7 and above", you can't afford to lose a fifth of your audience. But that's exactly why no-one will ever come to you with those requirements!&lt;br /&gt;&lt;br /&gt;It's here for another couple of years yet. Grin and bear it.&lt;br /&gt;&lt;br /&gt;[Edit: 02/02/10]&lt;br /&gt;&lt;a href="http://news.bbc.co.uk/1/hi/technology/8492862.stm%20"&gt;Pressure mounts to phase out Internet Explorer 6&lt;/a&gt; (BBC News)&lt;br /&gt;&lt;br /&gt;[Edit: 15/09/10]&lt;br /&gt;&lt;a href="http://2wtx.com/itsbroken/archives/21-If-you-are-still-using-IE6,-why.html"&gt;If you are still using IE6, why?&lt;/a&gt; (It's Broken)&lt;br /&gt;&lt;br /&gt;[Edit: 07/12/10]&lt;br /&gt;&lt;a href="http://qahatesyou.com/wordpress/2010/12/want-an-international-audience-remember-ie6/"&gt;Want An International Audience? Remember IE6&lt;/a&gt; (QA Hates You)&lt;br /&gt;&lt;br /&gt;[Edit: 05/08/11]&lt;br /&gt;&lt;a href="http://www.netmagazine.com/news/dev-says-stop-banging-about-ie6/"&gt;Dev says: Stop banging on about IE6&lt;/a&gt; (.net Magazine)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-5535684388456134196?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/5535684388456134196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=5535684388456134196' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/5535684388456134196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/5535684388456134196'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/08/testing-in-ie6.html' title='Testing in IE6'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-314845233174648693</id><published>2009-08-20T10:49:00.004+01:00</published><updated>2009-08-20T11:22:04.691+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ide'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='selenium'/><title type='text'>Selenium /is/ Compatible with Firefox 3.5</title><content type='html'>One of the great things about Firefox's &lt;span style="font-style: italic;"&gt;Check for Updates&lt;/span&gt; function is that it will check the next release is compatible with all of your add-ons and extensions (and warn you if not). Trouble is it claims that Selenium IDE only works up to FF 3.0, which put me off upgrading to 3.5 for some months.&lt;br /&gt;&lt;br /&gt;However, &lt;span style="font-weight: bold;"&gt;Selenium &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;is &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Compatible with Firefox 3.5&lt;/span&gt;, it's just &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2079"&gt;not marked&lt;/a&gt; &lt;a href="http://clearspace.openqa.org/community/selenium/blog/2009/06/20/selenium-10-released"&gt;as such&lt;/a&gt;. Download it from the &lt;a href="http://seleniumhq.org/download/"&gt;official site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you're a Selenium user and haven't upgraded Firefox yet, you can do so.&lt;br /&gt;&lt;br /&gt;If you're not a Selenium user, it could be just what you need to start automating tests.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Caveat: Having said all that, Test Automation is not the be-all and end-all it's sometimes claimed to be. &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.satisfice.com/blog/archives/128#comment-143080"&gt;Proceed with caution&lt;/a&gt;&lt;span style="font-style: italic;"&gt;!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-314845233174648693?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/314845233174648693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=314845233174648693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/314845233174648693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/314845233174648693'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/08/selenium-is-compatible-with-firefox-35.html' title='Selenium /is/ Compatible with Firefox 3.5'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-6908326638253427001</id><published>2009-05-29T11:29:00.007+01:00</published><updated>2009-05-29T11:33:51.572+01:00</updated><title type='text'>XKCD Touches on Tester Humour</title><content type='html'>&lt;a href="http://xkcd.com/583/"&gt;CNR&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It could so easily have used cloning as a theme to arrive at "could not replicate" instead :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-6908326638253427001?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/6908326638253427001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=6908326638253427001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/6908326638253427001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/6908326638253427001'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/05/xkcd-touches-on-tester-humour.html' title='XKCD Touches on Tester Humour'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-8755442928614693320</id><published>2009-03-24T10:37:00.001Z</published><updated>2009-03-24T10:41:25.358Z</updated><title type='text'>Perfect Software</title><content type='html'>&lt;span style="font-family: verdana;"&gt;I'm aware it's been some time since I posted. However, in lieu of a "proper" blog post, I can tell you I've started reading Jerry Weinberg's &lt;/span&gt;&lt;span style="font-style: italic; font-family: verdana;"&gt;&lt;a href="http://www.amazon.co.uk/Perfect-Software-Other-Illusions-Testing/dp/0932633692/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1237890926&amp;amp;sr=8-1"&gt;Perfect Software&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: verdana;"&gt; and will likely discuss it in a later post. I've heard good things about Jerry so it should be an informative read...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-8755442928614693320?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/8755442928614693320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=8755442928614693320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8755442928614693320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8755442928614693320'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/03/perfect-software.html' title='Perfect Software'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-6218834761116750206</id><published>2009-02-06T19:00:00.004Z</published><updated>2009-05-29T11:46:18.492+01:00</updated><title type='text'>MyVoucherCodes does not Like Sex</title><content type='html'>One of the side effects of testing is you develop a distrust of most software products, especially web sites. It's a bit like the critic who can never really enjoy a show because he can never snap out of "review mode". So it's with some trepidation that I ever enter any punctuation marks into search fields, especially that most-abused of marks the apostrophe. Combine that with the fact that conscientious developers &lt;span style="font-style: italic;"&gt;should &lt;/span&gt;always escape/strip quotation marks when passing user input to a query and you get this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.myvouchercodes.co.uk/code-store-search/domino%27s"&gt;http://www.myvouchercodes.co.uk/code-store-search/domino's&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-style: italic;font-family:'times new roman';" class="Apple-style-span" &gt;You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's') AND c.title NOT LIKE '%sex%' AND c.is_archived='0' AND c.is_expired='0' at line 4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The gem is unintentionally revealing how puritan your search facility is :)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;Update: they've fixed this one now.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-6218834761116750206?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/6218834761116750206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=6218834761116750206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/6218834761116750206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/6218834761116750206'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/02/myvouchercodes-does-not-like-sex.html' title='MyVoucherCodes does not Like Sex'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-7751803777883162881</id><published>2009-01-16T09:37:00.007Z</published><updated>2009-08-19T20:22:02.284+01:00</updated><title type='text'>The Next Train to Depart from Platform 1 will be the 0.76875 Service to London St Pancras</title><content type='html'>&lt;a href="http://www.thetrainline.com/"&gt;TheTrainLine.com&lt;/a&gt; deserves praise as it will let you check if two single fares are cheaper than the equivalent return fare when you search for a journey. They almost always are and this fantastic feature saves you a packet for just about every return trip you make. (Such are the vagaries of the &lt;a href="http://www.davros.org/rail/routeing-guide.html"&gt;ATOC/National Rail fares system&lt;/a&gt;, but there we are.)&lt;br /&gt;&lt;br /&gt;Anyway I wanted to remind myself what time my train goes tonight, so checked the booking/journey confirmation email. However it has a bit of a flaw in presenting a critical piece of information (which I have highlighted):&lt;br /&gt;&lt;blockquote&gt;Dear MR PAUL BERRY,&lt;br /&gt;&lt;br /&gt;With your journey approaching we wanted to remind you of your travel details.&lt;br /&gt;&lt;br /&gt;Collection Reference: 352CHH7W&lt;br /&gt;&lt;br /&gt;Be Sure to bring this reference with you along with the payment card used to make the booking as both will be required to collect your ticket from the Self Service Ticket Machine.&lt;br /&gt;&lt;br /&gt;From: SHEFFIELD&lt;br /&gt;&lt;br /&gt;To: LONDON ST PANCRAS INTL&lt;br /&gt;&lt;br /&gt;Date: 16/01/2009&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Departure time: 0.76875&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All your journey details are available in the my account section of our website.&lt;br /&gt;&lt;br /&gt;If you need help with your booking, please visit our help section or call us on 0871 244 1545*&lt;br /&gt;&lt;br /&gt;We hope you have a safe and enjoyable journey,&lt;br /&gt;&lt;br /&gt;thetrainline team&lt;br /&gt;&lt;br /&gt;*Please note that calls to this number cost 10p per minute plus network extras&lt;/blockquote&gt;Now this looks like a classic "time stored as decimal" formatting issue, as you sometimes see on raw spreadsheet data. The mystery is solved if you consider the time as a fraction of a day. 24 hrs * 0.76875 = 18.45 hrs or &lt;span style="FONT-WEIGHT: bold"&gt;18:27&lt;/span&gt; in &lt;a href="http://en.wikipedia.org/wiki/Sexagesimal#Modern_usage"&gt;sexagesimal&lt;/a&gt;. Double-checking the times (since I'd already lost trust in the accuracy of the data) on &lt;a href="http://nationalrail.co.uk/"&gt;National Rail Enquiries&lt;/a&gt; does indeed show a train departing Sheffield for London at 18:27 tonight.&lt;br /&gt;&lt;br /&gt;I'm just thinking a bit further here of the person who goes through the trouble of doing the maths to work out the time but doesn't do the final step so they get 18.45, which looks reasonable enough, and turn up for their quarter-to-seven train having missed it by 15 or so minutes! (Of course if the decimal hours come out at, say, 18.67 then that's clearly not a time and in itself would be a prompt to complete the conversion but the above scenario still stands.)&lt;br /&gt;&lt;br /&gt;What was &lt;a href="http://www.sensible.com/"&gt;Steve Krug&lt;/a&gt;'s mantra again?&lt;br /&gt;&lt;br /&gt;I wonder how many phone calls they get because of this? Could be a nice little earner! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-7751803777883162881?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/7751803777883162881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=7751803777883162881' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/7751803777883162881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/7751803777883162881'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/01/next-train-to-depart-from-platform-1.html' title='The Next Train to Depart from Platform 1 will be the 0.76875 Service to London St Pancras'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-3235753841676723165</id><published>2009-01-14T10:44:00.009Z</published><updated>2009-01-14T14:51:39.932Z</updated><title type='text'>Testing Gone Stale? Try This...</title><content type='html'>Sometimes you just grind to a halt when testing: you've exhausted the test plan, tried most reasonable combinations of inputs, even thought of and exploited the most devious set of circumstances to trip up the application, all that stuff. Now your eyes are starting to glaze over. It happens, especially if there are no opportunities to pair test or hand over to a colleague.&lt;br /&gt;&lt;br /&gt;Well the following technique worked for me and I didn't even know that it was anything special or realise it would yield a fresh batch of bugs. So here's what you do...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;List stuff!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yep, look at the whole screen and list things in the order they appear. I mean actually type the headings, titles, etc, into a spreadsheet or whatever your favourite note-taking method is. Then compare these views with the functional and technical specs, if available. Your mileage may vary, but you might find some subtle bugs.&lt;br /&gt;&lt;br /&gt;It's really that simple. And it can work: after a while you become blind to the design, layout and behaviour of the software under test. Force yourself to read everything. You may feel you're going over things you've already seen a million times but truth is you may never have looked at them that closely to begin with.&lt;br /&gt;&lt;br /&gt;As an example, I was testing an application which stored the names, addresses, etc of a list of clients the customer dealt with regularly. The list was rendered as a datasheet: column headings across the top, draggable, clickable to sort up/down. Nothing special at all. Then I noticed one of the columns was called "Country". Did the customer have any international clients? Was there a field on the input form to specify a country? In any case, were these even requirements? No to all three. So there was a completely useless column sat there (copy-and-paste code?) and neither I nor anyone else had noticed after testing for over a month. There's the rub: after seeing the same old screens day in day out I had become as good as blind to them, until I adopted a fresh way of looking at things...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-3235753841676723165?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/3235753841676723165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=3235753841676723165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/3235753841676723165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/3235753841676723165'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/01/testing-gone-stale-try-this.html' title='Testing Gone Stale? Try This...'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-8751984422483452173</id><published>2009-01-09T13:56:00.009Z</published><updated>2009-08-20T11:12:12.392+01:00</updated><title type='text'>How do I Cancel Thee? Let Me Count the Ways</title><content type='html'>&lt;span style="font-family:verdana;"&gt;What's wrong with just stating "when prompted, cancel request" in your test case? Well, just think about the ways in which a dialogue box can be dismissed:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* click the close box (if present)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* click the [Cancel] button&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* press escape&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* press tab until the [Cancel] button is highlighted then press space&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* press tab until the [Cancel] button is highlighted then press enter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* press tab until the [Cancel] button is highlighted then press return&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* press alt-c or whatever letter in "Cancel" is underlined when alt is held down (if present)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Do you test each of the seven ways with each dialogue box you see? Why not? Because they all do the same thing? Well, one of the methods might trigger something the others do not (and yes, it has happened to me). Then again, even if I did adhere to these strict methods there might be &lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;yet another legitimate way of hitting [Cancel] that I've never thought of.&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;But a man can become paranoid. Clearly you have to be realistic in how you test and that will only come with experience. Don't sweat the small stuff and don't get bogged down in detail. Let's take another look at these seven methods of invoking [Cancel]. They can be split into two groups: those triggered by mouse action and those triggered by the keyboard. Suddenly not so daunting.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-8751984422483452173?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/8751984422483452173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=8751984422483452173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8751984422483452173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8751984422483452173'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/01/how-do-i-cancel-thee-let-me-count-ways.html' title='How do I Cancel Thee? Let Me Count the Ways'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-7871421624658238020</id><published>2009-01-08T16:55:00.004Z</published><updated>2009-01-08T23:07:03.998Z</updated><title type='text'>Proofreading</title><content type='html'>Part of a tester's workload is the proofreading of text, more or less. So, here are three pairs of terms that every web and application content writer must know when to use and when not to.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Signup &lt;/span&gt;vs &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;sign up&lt;br /&gt;Setup&lt;/span&gt; vs &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;set up&lt;br /&gt;Login&lt;/span&gt; vs &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;log in&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are others, but in my experience these are the most commonly abused. So frequently, in fact, that I do a double-take when I see the &lt;span class="Apple-style-span" style="font-style: italic;"&gt;correct &lt;/span&gt;term used! You will notice the left term is the noun, the right the verb. Wait, you knew that? I thought you might. Well, stop getting it wrong then.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Worked example:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;When you &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;sign up&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; for an account you go through the &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;signup &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;process. This &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;sets up&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; your account when the &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;setup &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;routine has finished. You can then &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;log in&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; to your account with your &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;login &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;details.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Simple!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-7871421624658238020?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/7871421624658238020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=7871421624658238020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/7871421624658238020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/7871421624658238020'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2009/01/proofreading.html' title='Proofreading'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-7104507959108525849</id><published>2008-12-11T20:22:00.005Z</published><updated>2008-12-27T18:20:47.779Z</updated><title type='text'>BBC Launches New Radio Station</title><content type='html'>Introducing &lt;a href="http://pberry.me.uk/pix/bbc_null.png"&gt;&lt;span style="font-weight: bold;"&gt;BBC Null&lt;/span&gt;&lt;/a&gt;. I wonder if anyone else has noticed this new station? Just me then.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I don't know how or why the station number could not be read when getting the content for the iPlayer page, but "null" never looks good where a number should be.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-7104507959108525849?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/7104507959108525849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=7104507959108525849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/7104507959108525849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/7104507959108525849'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/12/bbc-launches-new-radio-station.html' title='BBC Launches New Radio Station'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-2949915177215317157</id><published>2008-12-08T17:24:00.004Z</published><updated>2008-12-09T09:11:53.829Z</updated><title type='text'>Nearest Book Phrase</title><content type='html'>Latest meme going round. I'm not sure what the point is other than to make your Facebook Status Updates feed look completely random...&lt;br /&gt;&lt;blockquote&gt;Grab the nearest book.&lt;br /&gt;Open it to page 56.&lt;br /&gt;Find the fifth sentence.&lt;br /&gt;Post the text of the sentence in your journal along with these instructions.&lt;br /&gt;Don’t dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.&lt;br /&gt;&lt;/blockquote&gt;&lt;a href="http://expectedresults.blogspot.com/2008/11/nearest-book-phrase.html"&gt;Just as happened here&lt;/a&gt;, there is no page 56 in my book. Well, there is but it's completely blank. So I'll use page 57*, where there are five &lt;span style="font-style: italic;"&gt;headings &lt;/span&gt;which will have to suffice as sentences.&lt;br /&gt;&lt;br /&gt;Anyway, this is mine:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Applying Formatting to Controls&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;*I'm making an assumption here. Really, the set of instructions is incomplete. It has gaps: What if there is no page 56? What if there is no 5th sentence?&lt;br /&gt;&lt;br /&gt;Can you tell testers sometimes can't help testing things? :)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-2949915177215317157?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/2949915177215317157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=2949915177215317157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2949915177215317157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2949915177215317157'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/12/nearest-book-phrase.html' title='Nearest Book Phrase'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-5331251007324072205</id><published>2008-12-01T23:54:00.006Z</published><updated>2008-12-04T16:47:06.919Z</updated><title type='text'>Risks of Changing the VAT Rate</title><content type='html'>In case you've been under a rock, the rate of VAT in the UK changed today from 17.5% to 15%. It will remain in place for 13 months, until the 1st January 2010.&lt;br /&gt;&lt;br /&gt;In an odd coincidence, the 17.5% rate has been in place for &lt;a href="http://uk.answers.yahoo.com/question/index?qid=20081119052754AASrYIv"&gt;17.5 years&lt;/a&gt;. However it's left as an excercise for the reader (to say nothing of the developer and the tester) to wonder how many modules, applications, web sites, point-of-sales code, and other items of software in Britain have this value hard-coded?&lt;br /&gt;&lt;br /&gt;Although the Chancellor only gave one week's notice of the change, this would not have posed a problem to those savvy enough to have written software that determined the rate of VAT from a config file, global variable, or some other kind of lookup. Easy-peasy fix. Minutes.&lt;br /&gt;&lt;br /&gt;For those who hard-coded it however, there's going to be a lot of cleaning up to do. Of course, that doesn't just apply to code. What of static text and images on web sites? Banners that mention the end-user price? Have fun!&lt;br /&gt;&lt;br /&gt;Take the opportunity not just to do a quick search-and-replace fix but to make VAT a variable because you'll be doing this again in 13 months.&lt;br /&gt;&lt;br /&gt;Anyway, that's just the digital world. Now you realise why people put "+VAT" on signs and in catalogues. Future-proofed!&lt;br /&gt;&lt;br /&gt;Bonus points for anyone who can find old prices still online (must be a live site: do not use &lt;a href="http://www.googleguide.com/cached_pages.html"&gt;this&lt;/a&gt; or &lt;a href="http://www.archive.org/web/web.php"&gt;this&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;As a final note, beware of stating the saving the customer sees as 2.5% -- the difference is actually 2.13%&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-5331251007324072205?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/5331251007324072205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=5331251007324072205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/5331251007324072205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/5331251007324072205'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/12/risks-of-changing-vat-rate.html' title='Risks of Changing the VAT Rate'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-1956270292521531626</id><published>2008-11-25T13:41:00.003Z</published><updated>2008-11-25T13:46:28.489Z</updated><title type='text'>Ensure Old Content Still Works</title><content type='html'>Maybe &lt;a href="http://www.baselinemag.com/c/a/Projects-Processes/Why-Software-Quality-Matters/"&gt;this page&lt;/a&gt; didn't look so bad in 2004, but it certainly does now. I'm sure buried under all the syndicated ads there's actually a half-decent article trying to get out, but all you get is this:&lt;br /&gt;&lt;br /&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;As &lt;a itxtdid="7142849" target="_blank" href="http://www.baselinemag.com/#" style="border-bottom: 0.075em solid darkgreen ! important; font-weight: normal ! important; font-size: 100% ! important; text-decoration: underline ! important; padding-bottom: 1px ! important; color: darkgreen ! important; background-color: transparent ! important;" classname="iAs" class="iAs"&gt;software&lt;/a&gt; spreads from &lt;a itxtdid="7385451" target="_blank" href="http://www.baselinemag.com/#" style="border-bottom: 0.075em solid darkgreen ! important; font-weight: normal ! important; font-size: 100% ! important; text-decoration: underline ! important; padding-bottom: 1px ! important; color: darkgreen ! important; background-color: transparent ! important;" classname="iAs" class="iAs"&gt;computers&lt;/a&gt; into auto engines, factory  robots, hospital X-ray machines and elsewhere, defects are no longer  a problem to be managed. They must be predicted and excised or  else unanticipated uses will lead to unintended consequ&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well there's nothing like leading by example!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-1956270292521531626?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/1956270292521531626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=1956270292521531626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/1956270292521531626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/1956270292521531626'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/11/ensure-old-content-still-works.html' title='Ensure Old Content Still Works'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-4944902556174193564</id><published>2008-11-14T17:18:00.003Z</published><updated>2008-11-14T17:27:06.168Z</updated><title type='text'>FogBugz Winz!</title><content type='html'>&lt;a href="http://www.fogcreek.com/FogBugz/"&gt;&lt;/a&gt;&lt;a href="http://www.fogcreek.com/FogBugz/"&gt;FogBugz&lt;/a&gt; is an amazing piece of sofware. &lt;a href="http://www.joelonsoftware.com/index.html"&gt;Joel Spolsky&lt;/a&gt;'s company appear to have come up with the impossible: software that not only helps you to keep track of your software projects, but is also functionally beautiful and beautifully functional.&lt;br /&gt;&lt;br /&gt;That's something pretty rare in software. One of my mantras when testing is...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;First, make it work. Then worry about making it pretty.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(The latter hardly ever happens of course.) FogBugz embodies both, and &lt;a href="http://www.ncbr.com/article.asp?id=96759"&gt;others agree&lt;/a&gt;. Now I'm waiting for a 45-day project to come up so I can try it out, &lt;a href="http://www.fogcreek.com/FogBugz/#try"&gt;for free&lt;/a&gt;, in anger.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-4944902556174193564?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/4944902556174193564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=4944902556174193564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/4944902556174193564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/4944902556174193564'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/11/fogbugz-winz.html' title='FogBugz Winz!'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-3448055664564995669</id><published>2008-10-04T00:02:00.006+01:00</published><updated>2008-10-21T14:48:55.400+01:00</updated><title type='text'>Richard's Bus Timetable</title><content type='html'>I usually drive to work but on Monday I had the car in the garage for a service, so I had to take the #43 bus to make up the rest of the journey. Considering it was a Monday morning commute, the journey was pleasant. Pity the same can't be said about navigating round their website.&lt;br /&gt;&lt;br /&gt;I had looked up the timetable the day before, only to find &lt;a href="http://www.tmtravel.co.uk/"&gt;the bus company's site broken&lt;/a&gt;. It's not often Google Cache comes to the rescue but it did here. Apart from it being obvious that their webmaster works from a local copy of the site then uploads changes, he's somehow set all links to absolute but failed to make his C: Drive publicly accessible. That's a bit mean. At least we know his name is Richard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-3448055664564995669?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/3448055664564995669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=3448055664564995669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/3448055664564995669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/3448055664564995669'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/10/richards-bus-timetable.html' title='Richard&apos;s Bus Timetable'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-4756211579859982181</id><published>2008-10-03T23:52:00.002+01:00</published><updated>2008-10-03T23:55:46.778+01:00</updated><title type='text'>Further Comment would be Superfluous</title><content type='html'>Many of you will be familar with &lt;a href="http://www.stickyminds.com/"&gt;stickyminds.com&lt;/a&gt;, publishers of Better Software magazine among other things. This is what their site looked like a moment ago:&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Active Server Pages&lt;/span&gt; &lt;span style="font-family:Arial;font-size:85%;"&gt;error 'ASP 0240'&lt;/span&gt; &lt;/p&gt;&lt;p&gt; &lt;span style="font-family:Arial;font-size:85%;"&gt;Script Engine Exception&lt;/span&gt; &lt;/p&gt;&lt;p&gt; &lt;span style="font-family:Arial;font-size:85%;"&gt;/index.asp&lt;/span&gt; &lt;/p&gt;&lt;p&gt; &lt;span style="font-family:Arial;font-size:85%;"&gt;A ScriptEngine threw exception 'C0000005' in 'IActiveScript::SetScriptSite()' from 'CActiveScriptEngine::Init()'.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Physician, heal thyself.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-4756211579859982181?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/4756211579859982181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=4756211579859982181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/4756211579859982181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/4756211579859982181'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/10/further-comment-would-be-superfluous.html' title='Further Comment would be Superfluous'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-2774840347030642340</id><published>2008-09-30T14:58:00.000+01:00</published><updated>2008-09-30T14:59:26.435+01:00</updated><title type='text'>How not to Test</title><content type='html'>Or, a &lt;a href="http://thedailywtf.com/Articles/The_Bug_is_in_the_Details.aspx"&gt;lesson in overkill&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-2774840347030642340?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/2774840347030642340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=2774840347030642340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2774840347030642340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2774840347030642340'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/09/how-not-to-test.html' title='How not to Test'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-8677535339784159079</id><published>2008-09-16T23:58:00.004+01:00</published><updated>2008-10-31T12:49:23.626Z</updated><title type='text'>In Defence of Certification</title><content type='html'>I'm sitting the &lt;a href="http://www.bcs.org/server.php?show=nav.6942"&gt;ISEB Foundation Certificate in Software Testing&lt;/a&gt; exam in November. Now, there's quite a lot of controversy in the testing community about whether such things are worthwhile, what do they really test, does it devalue or enhance the field of Software Testing, etc.&lt;br /&gt;&lt;br /&gt;I have read and &lt;span style="font-style: italic;"&gt;agree with&lt;/span&gt; some of the more prominent bloggers who like to shout down certification in general. So why sit the exam? For one, I'll be better placed to comment on the exam and course, having actually experienced it and sat it, rather than booing from the sidelines. Most of all though, and why I suspect a great many people decide to sit this themselves, it's to enhance my CV.&lt;br /&gt;&lt;br /&gt;It's all very well putting an argument together about why test certification is or isn't this or that, but think about this very real scenario: an employer advertises the position of Software Tester and mentions ISEB/ISTQB or equivalent body certification as a requirement for applying. Sure, you &lt;span style="font-style: italic;"&gt;could&lt;/span&gt; get an interview without the "right" qualification, if your career experience is good enough, say, but is a prospective employer really going to want to hear your ten reasons why you didn't think the exam proves anything? Some will, perhaps, but most won't. They will simply wonder why you're not up to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-8677535339784159079?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/8677535339784159079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=8677535339784159079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8677535339784159079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/8677535339784159079'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/09/in-defence-of-certification.html' title='In Defence of Certification'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2379587163067822460.post-2737526146145237344</id><published>2008-09-15T15:34:00.001+01:00</published><updated>2008-09-15T17:17:28.233+01:00</updated><title type='text'>Blogs don't start with a bang but with a whimper</title><content type='html'>&lt;span style=";font-family:verdana;font-size:85%;"  &gt;I was inspired to start this blog partly by James Bach's provocation that "&lt;a href="http://www.satisfice.com/blog/archives/128"&gt;we need better testing bloggers&lt;/a&gt;". Well I hope I can live up to that. Please tell me if I don't.&lt;br /&gt;&lt;br /&gt;On a side note I was quite impressed with just how quickly you can be up and running with a new blogging account. In fact I've spent longer editing these few lines than setting up the account...&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2379587163067822460-2737526146145237344?l=these-are-testing-times.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://these-are-testing-times.blogspot.com/feeds/2737526146145237344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2379587163067822460&amp;postID=2737526146145237344' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2737526146145237344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2379587163067822460/posts/default/2737526146145237344'/><link rel='alternate' type='text/html' href='http://these-are-testing-times.blogspot.com/2008/09/blogs-dont-start-with-bang-but-with.html' title='Blogs don&apos;t start with a bang but with a whimper'/><author><name>Paul</name><uri>http://www.blogger.com/profile/02022807203597497097</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-Py7L0TZaur0/Ttdks9VlOYI/AAAAAAAAAD8/rCNtJ1wuEUE/s220/n555463082_8630.jpg'/></author><thr:total>2</thr:total></entry></feed>
