Posts tagged: FriendRunner development

Partnership Opportunities

For those of you who follow this blog, it may seem like we haven’t been too active for a while. Let me assure you that this is very far from the truth – in fact we’ve been very busy lately. We’re now ready to give you a small peek behind the curtain to let you know what we’ve been up to.

When we originally conceived of FriendRunner we imagined that it would be an all-in-one tool that customers could use to load test their Facebook applications. That’s what we built, and so far it’s worked out fairly well. However, we’re beginning to realize that there are some things we could be doing better:

  • FriendRunner duplicates functionality that exists in other tools

FriendRunner needs to do things like record and edit test scripts, graph timing results, and lots of other things that standard load testing tools already do (and frankly do very well). Duplicating this effort in FriendRunner takes our attention away from providing more features on the Facebook-centric aspects that really add value.

  • FriendRunner customers need to learn yet another tool

People who want to load test Facebook applications don’t spontaneously appear – they typically have experience load testing other web applications and have experience with other load testing tools. Forcing these people to read new documentation and learn how to use a new user interface seems like a waste of their time. Since they’re already experts in other tools, it would be better if we allowed them to use FriendRunner through them.

  • People are very clever and come up with usage scenarios for FriendRunner that we never imagined

We occasionally come across potential customers who want to do things with FriendRunner that it was never really designed to do. Instead of saying “No, No, No, you’re using it wrong!!” we’d much rather embrace those people’s resourcefulness and provide them with a great solution.

All of this points to the fact that we’d be much better off by modularizing FriendRunner, and allowing other tools to do part of the work where appropriate. And that’s what we’ve been working on,  so now FriendRunner can be easily integrated with other load testing tools to allow them to test Facebook applications. This opens up a world of possibilities for others to partner with us to provide load testing services for Facebook applications.

Load Testing Tool Vendors

This one’s pretty obvious. Standard load testing tools can’t really deal with Facebook applications, but they can now thanks to FriendRunner. There are several ways of integrating FriendRunner with another tool ranging from the really simple to the highly integrated (which is still pretty easy to do). Vendors of these tools that would like to learn more about how to do this should look here.

Load Testing QA Consultants

Consultants that perform QA services for other companies can expand their offerings by using FriendRunner. Since FriendRunner can work with existing load testing tools, the learning curve is very small and they can be offering services in no time. QA consultants that would like to learn more about this should look here.

Digital Media Agencies

Agencies and contractors who build Facebook applications for brands and companies can use Friendrunner as an additional premium service to offer to their customers. To learn more about how you can benefit while offering your customers more services, have a look here.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine

Load testing Facebook applications with random user databases

When we run load tests with FriendRunner, we’re doing it outside the realm of Facebook, so our users are not only virtual, they’re also fictional. They’re cooked up by a program we wrote to populate the user database we use when running tests.

We randomly threw together early versions of this database  since we were mostly concerned with sheer numbers of users. It wasn’t uncommon to have a 17 year old guy with 3 university degrees and a 58 year old wife. It was pretty random. But we found that some applications we’re testing query this kind of information, and they actually act on it enough to make a difference during a load test. This can cause problems, so we’ve had to go back and make the random generation process a little less random. And it’s made us feel, well, a little…

Omnipotent

That’s right – there’s a feeling of power associated with deciding the social rules of your little virtual and fictious world. For us, deciding on rules was easy – support what Facebook supports, and have fictional people reflect everyday society. Gay marriage? There’s no debate here, Facebook allows this and we do too. You won’t find many married same-sex couples in our database, but you’ll find some. Fourteen year old kids? In our world they can have girlfriends, but they can’t get married. Married people in the database live in the same city, are roughly the same age, and both partners have their Relationship status set to Married. In contrast to the real world, our fictional people don’t fight over things like this.

We do this so that any applications we test can query this information and act on it as realistically as possible. Which doesn’t mean there aren’t anomalies in the database. It’s possible to generate a user named Ahmed Goldstein who was born in Mississippi, and happens to be Catholic. But it’s hard to imagine how this would affect a load test.

Our improved algorithms for generating virtual users make it much easier for us to create custom user databases for you when necessary. If your app targets seniors, we’ll make all of your test users seniors. Writing an app for online dating? We can ensure that all of the users during the test are single.

Let us know how a custom user database could help you test your Facebook application.

FriendRunner – Now more scalable!

As software developers, we’re constantly reminded to “eat our own dog food”.  Of course, this means that we need to force ourselves to actually use the products we build (in the same way that our customers will) so we can see how difficult they are to use, and that hopefully we’ll improve them for the better. Some people call this “drinking your own champagne”, but they’re just delusional.

With this in mind, we’re happy to report that FriendRunner is now more scalable than ever. Our own testing showed that at higher levels of virtual users, one of our internal components that processes Profiler data would get swamped and could start to fail. That’s right, we humbly and ironically report that the tool you use to test the scalability of your Facebook apps was itself susceptible to scalability problems. We’ve spent the last few days rearchitecting this component so that we can run several copies of it on concurrent machines which can be duplicated as much as the load requires, just like the rest of the FriendRunner infrastructure. The end result is a much more robust and scalable tool that handles large loads easily.

Okay, but why blog about it? Well, we have several reasons:

  • We come from a computer security background, so we believe that it’s important to be open and honest about the capabilities of our products. If that includes limitations and problems, so be it.
  • To remind ourselves about the importance of testing software products
  • Fixing problems like this means that we’re constantly trying to make FriendRunner a better tool
  • We found this cool dog food picture, and needed a reason to share it.

So how about your products? Are they really as scalable as you think? Do they have the virtual cojones to stand up to load testing from FriendRunner? Let us know when you’re ready to try it out.

What’s coming up in FriendRunner

FriendRunner was conceived less than a year ago in response to the question: “How can I load test my Facebook app?”. We discussed this issue with several other developers who’s responses tended to be “Yeah, that would be really cool to do if we only had a tool to do it with”.  We began prototyping and produced the first version of FriendRunner which focussed on Canvas FBML applications and sported an embarrassingly Web 1.0-style user interface.

Since then, we’ve made many improvements, as well as begin work on some new features such as:

  • Support for Canvas IFrame applications
  • Full support for Facebook Connect applications
  • Facebook Connect for iPhone mode
  • Testing support for Flash/Flex components
  • Facebook Profiler, which allows you to see the interaction between your application and the Facebook server
  • Facebook Anomoly Generator, which allows you to see how your application responds to edge cases
  • Interactive mode, which allows you to test and analyze interactively instead of as part of a large load test
  • Customized virtual user demographics
  • Stronger integration with Selenium
  • REST-based API so you can build extensions onto FriendRunner
  • A slick Web 2.0-styled user interface

Are we missing some functionality that you need? Want to know more about some functions we’ve listed? Let us know, and we’ll be happy to discuss it.

…and stay tuned here where we plan to discuss more about these issues when the time is right.

Welcome to FriendRunner Development Zone

FriendRunner is the Cloud-Based Service for Optimizing Facebook Applications. It allows Facebook application developers to test their apps in ways that are not otherwise possible.

This blog is the place for the developers of FriendRunner to discuss the new features that they’re working on, as well as tips for how to get the most out of using FriendRuner. Please feel free to join into our conversation, and suggest ways that we can make FriendRunner more useful to you.

WordPress Themes