Archive for the ‘Testing’ category

UserFly Usability Checking via Screen Recording

March 9th, 2010

UserFlyI recently found UserFly.com, a service which will record videos of the visitors to your site, allowing you to play them back and watch where users go (and how they move their mouse around on the screen).

I was flabbergasted at how easy this was to use – I tried the free version and had recordings going in 2 minutes. It was that easy. It has to be seen to be believed.

As a techie, I’d tried to build something similar 4 years ago. Owing to my own limitations, as well as the much more fractured browser landscape 4 years ago, I never got this working to the level that I liked. Having attempted just a small portion of what userfly is doing, I can truly appreciate the engineering that went in to this service.

If you’re interested in testing it out, please follow my referral link (yes, it’s an affiliate link). They offer a free version to get going, and paid versions start at $25/month $10/month. The $50/month plan would be what I’d recommend if you have any ecommerce or security, as it will handle SSL pages. But the free or $25/month packages might be fine for basic sites.

Lost art of simplicity

July 1st, 2009

I had the pleasure of seeing Josh Holmes keynote CodeStock Saturday morning.  His presentation, “The Lost Art of Simplicity,” was very well done.  Very broad topic, but very applicable to likely everyone in the room.  Certainly I took away many good points.  In some ways, it’s a lot of points that we *know* at an academic level, but not points that we’ve necessarily internalized and made part of the standard development process.  He brought up an example of corporate users copying Access databases around via email, and he asked “what is the *truth* at that point” – meaning which is the ‘master’ data?  This echoed my NADS post from some years ago – when you copy spreadsheets around, you end up with a Non-Authoritative Data Source problem. :)

The talk was aimed at getting developers to simplify, rather than write complex systems.  Occasionally I have the opposite problem, with clients wanting more complex systems than it seems they actually need.  There’s 20 processes in place when 8 would do, but simplifying the organization’s workflow to scale down to 8 processes would take more effort than just replicating the 20 processes in a computerized system.  I have to say this ends up being the most frustrating position to be in, and I tend to want to not get involved in those projects.  Sometimes I’ve been able to avoid those projects, but not always.

“Enterprise is a code word for complexity”.  He metioned Twitter getting 15k transactions per second before deciding to move to a second server.  I wish he’d also mentioned that it’s done in Ruby, just to drive home the point that dynamic languages *can* scale.  I think he was going in that direction, but then stopped. 

Josh’s talk seemed to get some good reactions from the attendees, and certainly gave us all a lot to think about.  Although this is primarily a MS-based conference, Josh’s avoidance of an MS-specific talk was a welcome gesture.  I suspect he’s given this talk to a variety of developer audiences regardless of background – it certainly fits.  If you’ve got a chance to go hear Josh speak, take it.  He’s a hugely knowledgeable person who’s also one of the friendliest guys I’ve had the chance of meeting at a conference in the past few years (we first met at the first CodeMash in 2007).

Service to record voice conversations from cell phone

June 17th, 2009

I’ve wanted a way to record cell phone conversations for *years*.  With the proliferation of smart phones, you’d think we’d have this by now, but it’s still not a feature widely available (and, reportedly, blocked by some device manufacturers).  So, to scratch my own initial itch, I’ve put together a service to allow me to record my own calls.  It’s not part of a handset, nor is it downloadable software for any particular phone.

The service is just that – a service.  Specifically, you just need to conference in the service to your existing phone conversation and everything during the conference will be recorded.  Within moments of hanging up, you’ll have an MP3 emailed to you.

Based on the number of posts I’ve found when searching for ways to record phone conversations, this seems like it’s something other people might need or want as well.

Pros
No extra hardware to buy
Works with any phone that can conference call
Easy to use – just dial and go
MP3 emailed on completion

Cons
Per-minute cost

This service would like be 5-8 cents per minute to use, or possibly just a monthly flat rate.  Is this something that people would be interested in using (or at least trying out)?  I’ve used it from my phone (older Ericsson) and plan to test recording a voice call on a BlackBerry Pearl soon.  I’ll also be testing an iPhone soon too, just to see how easy it is.  If you’re interested in giving this a trial, let me know and I’ll let you take a test spin to see what you think.

I know Google Voice will have a feature to make this possible (recording just by pressing a button) but from what I’ve read, it will only work on incoming calls.  If you make an outgoing call, it won’t allow you to record.  Maybe that’ll change, but until Google Voice actually allows new people to come in and use the system, it’s of limited value to me and most people.  Additionally, as useful as it is, I don’t seen everyone switching to Google Voice any time soon.

My project checklist – what are yours?

April 23rd, 2008

I’ve been taking on a lot of small projects lately, and have been noticing the same problems over and over.  I’ve seen these for years, but I’ve dealt with far more projects in a short time than I ever did in the past.

The checklist below wouldn’t necessarily determine if I’d take a project or not, but would likely influence the rate and schedule.

  • Does the current project already have unit tests (or even just an integration test plan) in place?  (I don’t expect 100% from anyone, but having *some* in place tells me something)
  • Is there any continuous integration in place?  Will you (client) balk at me spending time to set it up?
  • Is the current codebase even *unit testable*?  Most codebases I’ve come across, at least in the PHP and Perl world – are not.
  • Is the code portable?  I would like to be able to recreate a development environment on a brand new machine in 30-60 minutes with minimal configuration (which should be documented).
  • Can I speak with previous team members?  Being able to send some emails to ask questions to someone who worked on the project before can save a lot of time.  I try to make myself available for code I’ve written in the past as well (to a point – I can’t remember everything!)
  • Where is the documentation?  Locally written is OK, or on some web-base project system is OK too.  On your office whiteboard may even be OK as a start.
  • Where are the specs?  I fully expect written specs to change, but you’ve got to have some semblance of written specs to start with.
  • What sort of project management / project tracking system do you use?
  • How available is someone to answer my questions via im/skype/phone/email?

This is likely not a full list, but some of the basics that I’ve seen over and over plague multiple projects.  What would be some qualifying questions you’d use in a checklist like this?

I’m setting up phpUnderControl right now, and configuring it with phpUnit, and will need to start a test plan process for a client in the next few days.

What I’ve been up to lately

February 28th, 2008

These deserves more than a twitter… :)

1. I just got my copy of Scott Davis’Groovy Recipes” book – I’ll be posting a review as soon as a I can. First impression is about a 8.5 out of 10.

2. Just came across this -> http://froth-and-java.blogspot.com/2007/06/html-screen-scraping-with-groovy.html <- didn’t know about tagsoup parser (seems very handy) and want to try some twitter scraping when it’s up for more than 5 minutes :)

3. Been doing a bit of flex/audio code for an idea I’m working on. I’m more impressed with it (flex) now than I was a year ago.

4. I have a collaborator for my book – hopefully we’ll have that wrapped up in the next few weeks and off to the publisher.

5. Doing some contract PHP dev work, adding new features to a poorly documented mish mash of PHP code. There were multiple attempts at abstracting business logic and presentation, but they’re not consistent and, imo, mostly wrong. Abstracting at a bad level is almost as bad as not abstracting at all. I’m throwing away about half the code, and have about half that thrown away functionality reimplemented in new objects with unit tests (about 50 so far). I should have another 20-30 tests written tomorrow which will round out the basic functionality, and I should be able to have most of the front-end redone to use the new classes before a Monday afternoon meeting. I couldn’t do this without getting to the point of saying ‘enough – I can not work with this code in its current state anymore’. After that it was easy. :) Mind you, I don’t have time to rebuild the entire thing (wish I did) but it’s coming along nicely.

Codemash free admission drawing giveaway

December 6th, 2007

The codemash organizers have graciously donated a free pass to the upcoming Codemash conference to be given away to one lucky webdevradio.com listener.  To enter in to the drawing, listen to the codemash episode interview podcast on webdevradio with Jim Holmes, follow the instructions, and hope your name is drawn.

Refresh The Triangle first meeting

October 25th, 2007

I just got back from our new Refresh* meeting (“Refresh The Triangle”) – http://refreshthetriangle.org/. This was held at Viget Labs, and they were the initial organizers. We had a stab at a Refresh group a year ago, but it didn’t get off the ground. There were something like 30 people at tonight’s meeting, which was great. The always insightful Jackson Fox presented “Building User-Centered Web Apps in a Crunch”, with some good ideas on how to do user testing without breaking the bank or the project deadlines. Thanks Jackson!

Also, I got a chance to demo my new MatchOrClash site to Peyton Crump, Viget’s Director of Interactive Design, and he had some great ideas and feedback. If any of you readers are interested in playing with the demo, email me and I’ll send you a full URL to take a look at the work in progress.

* The Refresh idea is explained in more detail at their main site, which is also a directory of other Refresh meetings around the world.

Generate random test data

August 16th, 2007

I put together a small utility to generate random user data several months back. I realized yesterday that I hadn’t released the source code – I thought I had. This generates plausible names, addresses, phone numbers and social security numbers. The phone number area codes don’t generally match up with the address, but the addresses are accurate in that the city/state/zip all match. The addresses are currently US-based only. The code will also generate SQL statements for you to insert directly in to your database if selected.

Have a look at the code in action over at http://www.fosterburgess.com/v2/random.php and click the ‘download source code’ link at the bottom to grab you a copy. If you have any enhancements to share, feel free to send them back and I’ll add them in.

OSCON – catch up

July 27th, 2007

Wow – the connection to my server from the convention center just died yesterday.  I could traceroute all the way to something internal to the data center, but it just stopped.  I need to determine if some iptables crap triggered to block me out (why would that have happened?)

So, yesterday afternoon was great.  I had a brainwave (why so late in the game?) to record people directly from the board.   I got Mark Pruett talking about AJAX tradeoffs (learned something new about the proxypass trick).  I got the head developer from Zimbra talking about the Zimbra desktop (can’t find his name right now).  I got Robert Treat from OmniTI talking about running PHP in PostgreSQL.  Who else…?  I got the windmill guys (Mikeal Rogers and Adam Christian) one-on-one about the project and what’s upcoming.  Also, I got Clinton Nixon, ex-lulu, doing his talk on ‘untangling legacy PHP code’.  I’ve invited him to come talk to our PHP group in 2 weeks – I need to ping David @ tripug about this, but it shouldn’t be a problem.

I was going to do a BOF on SOLR specifically, but there was a BOF on ‘open source search’ run by Peter Zaitsev, from the mysqlperformanceblog.com, a blog I catch up with on a regular basis.  I believe Peter is involved in the sphinx project, a fulltext project for MySQL.  The BOF brought some questions for me about SOLR, though I don’t have all the experience to answer the in depth questions.  I think I was seen as a representative of the SOLR project, and as such, I should know all the nooks and crannies.  In a way, I probably *am* a rep, but not in an official capacity.  Peter wants to get in touch to work on some benchmark comparisons between SOLR and MySQL (sphinx?).  Not sure what that’ll actually demonstrate, and if I’m in over my head I’ll pass this off to Yonik Seeley, Erik Hatcher or someone else from the SOLR project with more experience.  :)   (BTW, Monty was there with more black vodka!)

I got to  meet Luke Welling and Laura Thomson, huge names in the PHP world.  I’ve known them through their reputation (as good authors and nice people) for several years, and it was great to finally meet them in person, however briefly.  Hopefully we’ll be able to meet up again today or at a future conference.

Watching Jimmy Wales’ presentation right now.  (He looks like Chuck Norris, at least from certain angles.)  Interesting talk about upcoming wikia directions, and a bit of the history of wikipedia.  Not anything I didn’t know already, but interesting to listen to.

Side note: One of the things I’ve noticed listening to all the speakers the past few days is how many ‘crutch words/phrases’ people use – “ya know”, “ummm”, “uhhh”, “like”, etc.  I recorded myself and will be listening for my own violations.   Having gone to Toastmasters for awhile now it’s ingrained in me to listen for those words, and it’s hard to break that habit when listening for ‘content’ only.

Not too many tracks of pressing interest today – not that they’re bad, just nothing that jumps out as a pressing need for my day to day work.  I’ll see what strikes my fancy in a bit, and we’ll take it from there.

Anyone reading this that wants to meet up this afternoon for drinks, a chat, or more in depth web/search chat, email me (mgkimsal@gmail.com) or cell (919-455-8488).

OSCON 07 – windmill testing

July 26th, 2007

This is one I wish I’d just recorded straight from the board.  This testing framework looks pretty awesome, and one that may have a big impact on how people do AJAX/web testing in the coming months.  While it’s been ‘out’ for awhile, this was basically a public launch here at OSCON.  I’m going to see if these guys will do a webdevradio interview with me sometime today.  Great looking system, with apparently a lot of power under the hood.  http://windmill.osafoundation.org is where you can learn more about it.  Have a look!