We think you should test your code for not only function but performance. We’re not alone, and we loved this article we came across recently by Thiago Duarte. Called “7 Things I Learned That Made Me a Better Programmer,” Duarte tells some great stories and shares great tips.
Performance testing is often mistaken for performance tuning. The two are related, but they are certainly not the same thing. To see what these differences are, let’s look at a quick analogy.
Most governments mandate that you bring your vehicles to the workshop for an inspection once a year. This is to ensure that your car meets the minimum safety standards that have been set to ensure it is safe for road use.
A website performance test can be likened to a yearly inspection — It ensures that your website isn’t performing terribly and should perform reasonably well under most circumstances.
We use our blog to talk about all things technology, and back in August we took a look at the rapidly growing drone industry and it's technology drivers. As we've seen with many other industries, the key driver for innovation is software. Now, let's take a closer look at the popular software technologies used in the drone industry today.
— Load Impact is constantly on the hunt for the best meetups and conferences around New York City. In this new blog series, NYC Tech Events, we talk about some of the tech-focused events around the city that feature great speakers and promote the sharing of ideas from professionals and hobbyists of all skill levels.
Sometimes it’s nice to step away from the office, your computer and your development environment to get a little fresh air and enjoy humanity.
What better way to do that than to fly an awesome drone and take photos, video or collect mapping and weather info?
For drone enthusiasts in the New York/New Jersey area, the DUG Meetup Group is a great place to meet fellow hobbyists and professionals who are interested in these flying robots.
The group’s event Saturday on Governor’s Island is another awesome opportunity for drone hobbyists and pros to show their skills, meet people with similar interests and just have a fun time while enjoying the views of lower Manhattan.
The meetup’s sponsor, the Drone User Group Network, is a national organization that promotes safely and responsibly flying drones while furthering the technology for the benefit of humanity.
Steve Cohen, the president of the Drone User Group Network and the NYC/NJ chapter, referred to the group as a kind of “drone chamber of commerce” because of its promotion of educational opportunities and fairly wide reach.
“[The group] is diverse, and there are a lot of young, tech startup people who understand it’s an emerging market,” Steve said. “There are people on both sides — the hobby side and the commercial side.”
Don’t Fear These Drones
Like many other technological advances over the past century, the onset of drone culture came with major skepticism from mainstream media, politicians and law enforcement.
But Steve says the members of DUG look forward to opportunities like Saturday’s event because they can show off these majestic devices while adhering to local rules and FAA regulations.
“This meetup is a perfect example that we want to get positive media coverage,” Steve said. “People can see we’re doing it smart and we have a code of conduct.”
Never too Late to Jump on the Bandwagon
An accomplished commercial and artistic photographer for more than 30 years, Steve became interested in drones only a few years ago when he started to take advantage of their capabilities for scenic photos and video.
As he worked with drones more and more, Steve understood their massive potential. Before long, he was making what some people may have thought was an unorthodox professional transition.
“I’ve made a pivot in my career, and now I do more with drones than I do with photography,” Steve said. “Now, I’m more of a consultant and teacher — and sometimes pilot-operator.”
A Developer’s Dream
Like most developers, Load Impact is intrigued by the nearly limitless possibilities of drones.
Whether it’s for extensive 3D mapping, live event coverage, precise weather reports, etc., there’s no telling where these machines can take us over the next few months and following years.
Maybe part of our excitement is that no matter what information drones are collecting around the world, if there is a big audience that wants to access it, developers will need to load test their public-facing software and APIs — and we’re always up for that.
In the age of agile, DevOps and Continuous Delivery, people often laud faster development and the ability to release updated software builds more quickly.
— Our friends at Cloudbees are moving the needle forward when it comes to mainstream acceptance of continuous delivery and continuous integration. The latest example is their work with travel-giant Orbitz.
— This great article from DevOps.com talks about test automation, continuous delivery and a whole bunch of great tidbits from Gary Gruver, the author of "A Practical Approach to Large-Scale Agile Development."
Ushahidi used Load Impact to greatly improve the performance of its software. Through comparing “before” and “after” test results it was possible to see the performance impact of optimization efforts - like the use of a CDN.
When was the last time you looked at your website's browser statistics? If you have, you've likely noticed a trend that's pretty hard to ignore - your users are browsing from a mobile device more than ever before. What was once a small sub-segment of your audience is now growing and representing the majority of your traffic. This may not be so surprising since today mobile usage makes up about 15 percent of all Internet traffic. Basically, if you don't already have a mobile development strategy, you may already be loosing sales/users due to poor mobile performance.
Responsive design takes care of your website's layout and interface, but performance testing for mobile devices makes sure your app can handle hundreds (even thousands) of concurrent users. A small delay in load-time might seem like a minor issue, but slow mobile apps kill sales and user retention. Users expect your apps to perform at the same speed as a desktop app. It seems like a ridiculous expectation, but here are some statistics:
- If your mobile app fails, 48% of users are less likely to ever use the app again. 34% of users will just switch to a competitor's app, and 31% of users will tell friends about their poor experience, which eliminates those friends as potential customers. 
- Mobile app development is expected to outpace PC projects by 400% in the next several years. 
- By 2017, over 20,000 petabytes (that's over 20 million gigabytes!) will be sent using mobile devices. Streaming is the expected primary driver for growth.
- 60% of mobile failures are due to performance issues and not functional errors. 
- 70% of the performance of a mobile app is dependent on the network. 
- A change in latency from 2ms (broadband) to 400ms (3G network) can cause a page load to go from 1 second to 30 seconds. 
These statistics indicate that jumping into the mobile market is not an option but a necessity for any business that plans to thrive in the digital age. You need more than just a fancy site, though. You need a fast fancy site. And the surefire way to guarantee your mobile site/app can scale and deliver a great performance regardless of the level of stress on the system is to load test early and continuously throughout the development process.
Most developers use some kind of performance testing tools during the development process. However, mobile users are different than broadband users and therefore require a different set of testing tools to make sure they are represented realistically in the test environment. Mobile connections are less reliable; each geographic area has different speeds; latency is higher for mobile clients; and older phones won't load newer website code. Therefore, you need real-world mobile network emulation and traffic simulation.
Prior to the availability of good cloud performance testing tools, most people thought the solution to performance problems was "more bandwidth" or "more server hardware". But those days are long over. If you are to stay competitive today, you need to know how to optimize your mobile code. Good performance testing and traffic simulations take more than just bandwidth into account. Network delays, packet loss, jitter, device hardware and browser behavior are also factors that affect your mobile website’s or app’s performance. To properly test your app or site, you need to simulate all of these various situations - simultaneously and from different geographic locations (i.e. not only is traffic more mobile, its also more global).
You not only want to simulate thousands of calls to your system, you also want to simulate realistic traffic behavior. And, in reality, the same browser, device and location aren't used when accessing your site or app. That's why you need to simulate traffic from all over the globe with several different browsers and devices to identify real performance issues. For instance, it's not unlikely to have a situation where an iPhone 5 on the 4G network will run your software fine, but drop down to 3G and the software fails. Only realistic network emulation covers this type of testing environment.
Finally, simulating real user scenarios is probably the most important testing requirement. Your platform's user experience affects how many people will continue using your service and how many will pass on their positive experience to others. Real network emulation performs the same clicks and page views as real users. It will help find any hidden bugs that your testing team didn't find earlier and will help you guarantee that the user experience delivered to the person sitting on a bus using a 3G network is the same as the individual accessing your service seated at their desktop connected through DSL.
Several years ago, mobile traffic was negligible, but it's now too prominent to ignore. Simple put, don't deploy without testing your mobile code!
Check out Load Impact's new mobile testing functionality. We can simulate traffic generated from a variety of mobile operating systems, popular browsers, and mobile networks - including 3G, GSM and LTE. Test your mobile code now!