Articles

Software Testing in the Cloud

By Scott Tilley

Today’s software is so important to our society that it’s essential that testing be performed professionally and effectively. Without proper software testing, bad things can happen – things that can affect every our daily lives. For example, many of the transactions made on the stock exchange are done using automated trading systems that buy and sell shares many times a second – far faster than a human trader. One such system malfunctioned in February 2010, causing oil futures to fluctuate wildly. According to The Economist, the cause was eventually determined to be a new program that had been turned on the day before, but was only tested for one hour. The usual testing period for these programs is six to eight weeks. Bugs in the code went undetected until the program malfunctioned, causing hundreds of thousands of dollars of losses and fines.

There are many hard problems in software testing. Some are people issues (e.g., education and training), some are process issues (e.g., how testing is conducted within an organization), and some are technology issues (e.g., which tools are used). For example, security testing is particularly critical for corporate safety and national infrastructure. Irrespective of the program, all testing focuses on finding bugs. A “bug” is some part of the program that is not working properly. The word “bug” actually harkens back to a simpler time in computing, when a literal bug – a moth – was stuck between the contact plates of a relay of an early computer, causing it to malfunction.

The skills needed by a good software tester are increasingly broad and deep. Fortunately, software testing is an attractive career. A recent article in Forbes magazine ranked software testing as “the happiest job in the US.” With a typical salary of $85,000, who can blame them?

A challenge facing the computing industry worldwide is a lack of skilled software testers. Very few universities have dedicated software testing classes as part of their computer science or software engineering curricula. Most testers come from other disciplines and learn on the job. Fortunately, there are organizations that offer specialized courses that cover the testing spectrum. Some of these courses adhere to the standards set by the International Software Testing Qualifications Board (ISTQB), so that professionals who pass an accredited course have portable and recognized skills to further their career.

Taking such courses has become an essential part of a software tester’s career path. This is due in part to the rapid change in technology and the increasingly complex software applications that are built and deployed everyday.

Consider the example of cloud computing, an area of IT that has gained much attention lately. Cloud computing includes virtualized hardware and software resources that are hosted remotely and made available on-demand using a services model (e.g., SOA). Instead of running or storing applications locally, users can host their applications in the cloud and access them from anywhere using a thin client application such as a Web browser. Cloud computing promises efficiency, flexibility, and scalability.

Cloud computing also presents tremendous new challenges – and opportunities – to software testers. Software testing in the cloud (STITC) lies at the intersection of three key areas: software testing, cloud computing, and system migration. STITC is an emerging discipline with the potential to significantly change the way software testing is done. It is an important area that deserves the attention of researchers, practitioners, and managers alike.

For software testers to become proficient in cloud computing, they need specialized training. As part of my own consulting and training activities, I partner with experts to lead corporate classes on topics such as software testing, cloud computing, and business analysis.

About the author

Scott Riley

Scott Tilley is a Professor of Software Engineering in the Department of Computer Sciences at the Florida Institute of Technology, a Professor of Information Systems in the College of Business, and an Associate Member of the Harris Institute for Assured Information. He is a Visiting Scientist at Carnegie Mellon University’s Software Engineering Institute. He is Chair of the Steering Committee for the IEEE Web Systems Evolution (WSE) series of events and a Past Chair of the ACM’s Special Interest Group on Design of Communication (SIGDOC). He is an ACM Distinguished Lecturer. He writes the weekly “Technology Today” column for the Florida Today newspaper. His most recent book is Software Testing in the Cloud: Migration and Execution (Springer, 2012).

If you want to learn more, feel free to contact Scott by e-mail: scott[at]srtilley.com

International Strategies for Tech SMEs

In a context of declining domestic demand, European technology based companies from peripheral countries find themselves without an easy testing and demonstration ground. For these start-ups, bootstrapping will require them to bypass the traditional growth cycle of creating a domestic showcase, before venturing into external markets. This is a far more challenging context than that faced by start-ups in economies with significant local markets.

One pattern is that companies try to get a foothold in the market without clearly identifying their overarching goals for their presence in that market space. As part of a growth strategy companies will need to research the market, adjust their pitch and sell, either through channel partnerships, if their margins are high enough, or directly with very limited upfront investment. However, this process has to be significantly tailored to ensure efficiency of sales growth strategies.

If the product or service isn’t differentiated enough in highly competitive economies, selling and conquering market share is extremely expensive and risky. This is usually the case for economies such as Britain, central Europe or the US. These markets can become a good ground for understanding market trends and requirements, benchmarking, building reputation, case studies, or expanding capability or capacity if qualified human resources within the domestic market ever becomes scarce.

In growth markets you may also want to have a more robust presence. An incorporated company and a bank account will simplify local partnerships, as agreements and commercial transactions will be crafted under the same legal framework. Calls should he handled in local language by natives. Furthermore, you must keep a finger on the market’s pulse at all times. Track your customers’ behaviours, keep an eye on competition and act very quickly.

Regardless of your strategy for a given market, in these times of crisis and austerity, when everyone seems to be avoiding the costs of flying, you can make a real difference by being there, meeting your partners and customers face to face instead of giving them a call. Business is all about people, regardless of how much effort you put into defining sales strategies, meeting customers and showing that you care, is bound to create a great impression.

By Nuno Almeida
Managing Partner at Almeida Consulting