Showing posts with label software testing. Show all posts
Showing posts with label software testing. Show all posts

Thursday, December 9, 2010

5 Key Trends in Mobile Usage and Development

Eileen Boerger
President, Agilis Solutions

Recently I participated on a panel at the SIIA “All About Mobile” conference. The conference covered topics such as the explosion of mobile devices in the Enterprise, developing mobile applications, marketing and monetizing mobile applications, and the debate over mobile native apps vs mobile web apps.


The panel I was on discussed the state of the technology and benefits of developing mobile web apps. I’ll just state that I could argue (and have fun arguing) either side of the native apps vs web apps debate, but I was happy to talk about mobile web apps. I truly believe that the technology (mainly HTML5) for developing robust and highly-functional mobile web apps using multi-media has finally arrived. If you don’t believe me, go check out the You Tube mobile web app on your smartphone or iPad.

I found the information shared at this conference quite informative so I thought I would share the key trends that I noted.
  1. The use of mobile devices in the Enterprise this year has exploded. One company surveyed Enterprises in January, 2010 and September, 2010 asking the number of mobile OS’s they officially supported. I was surprised to see that in January a small percentage of the Enterprises supported no mobile OS’s, but by September, the Enterprises all supported at least 1 mobile OS. More astonishing was the number of Enterprises surveyed that supported 4 or more mobile OS’s in September – a whopping 44%. I believe that % at least doubled from the January survey.
  2. Enterprises are not only allowing but encouraging their employees to use their personal mobile devices for work tasks. In fact, it was reported that a Fortune 100 company recently returned 18,000 corporate Blackberry devices and substituted them with employee-owned mobile devices.
  3. Independent Software Vendors (ISVs) are scrambling to add a mobile interface to the Enterprise software they sell. A panel of ISV representatives talked about their experiences adding a mobile interface. Interestingly enough, they all chose to implement mobile web apps.
  4. Mobile devices are not limited to smartphones and tablets (such as the iPad). Included in this are machine-to-machine (M2M) mobile devices in healthcare, automotive, etc. I was surprised to see how much development that Sprint/Nextel was doing in M2M development.
  5. Microsoft has finally entered the mobile device game in a major way with Windows Mobile 7. Microsoft had several models of newly-introduced smartphones for conference attendees to play with. Time will tell if this platform will catch on in a big way. I certainly am not one to rule out Microsoft’s ability to play in this market.
There are many more observations that I could make, but I'll stop here for now.

Tuesday, August 31, 2010

No Time for Testing!

Not too long ago I met someone who was developing a new software product for release later this year. I casually asked about their test plans and test results to date. The response I got was underwhelming, and, unfortunately, a response that I’ve heard from other development teams. Basically, my paraphrase of their response was: “We’re too busy developing to test right now.”

Immediately, red flags popped into my head. In my opinion, software testing is an integral part of the software development process and must not be left until the end of the development period. The purpose of testing is to not only find defects in the software product but also to ensure that the product requirements are understood well and that the product is designed to be testable. And, what better way to ensure that product requirements are understood well and testable than by developing tests in the early part of a development cycle or iteration (if developing using an agile methodology).

This means that test planning occurs at the start of a project or iteration. I recommend that developers follow a test-driven development (TDD) methodology that mandates that an automated test is written for each feature/function before any code is written. When the test passes, the code is complete. TDD is especially helpful for development organizations using an agile methodology. For each development iteration, TDD requires the developer to understand the requirements of the feature/function they are implementing and ensures that the feature/function is designed and coded to be testable. TDD also ensures that the features/functions of the iteration work at the end of an iteration.

However, test-driven development does not represent the only testing that should occur and does not mean that a product has no defects. A product development team must consider all the different types of testing that can and should be done, such as unit testing (using TDD), functional testing, system testing, integration testing, and regression testing. Full test design and implementation should be done in parallel with software design and implementation. This ensures that product requirements are written clearly and are testable. Full testing throughout the product development cycle also ensures that defects are identified as early in the development cycle as possible.

Eileen Boerger
President
Agilis Solutions

http://agilissolutions.blogspot.com
http://twitter.com/Agilis_EileenB
http://www.linkedin.com/in/eileenboerger