Saturday, January 4, 2014

The Revolution and Evolution of Software Testing - Computers - Software

What it means for Businesses and Software Test Professionals

Exponential growth is nothing new in the Information Technology industry. The relatively short history of IT is rife with revolution. Think the microchip, super computers, power PC chips, the personal computer, the World Wide Web, Artificial Intelligence and so on. All have had transformative effects on people and businesses.

And over the last decade the Software Testing service, is evolving into a critical component for businesses to succeed and an opportunity for the best and the brightest to carve out exciting and rewarding careers.

The Old Paradigm.It was not that many years ago that the software tester was a minor player in the software development process. In fact, 20 or so years ago, it was not even considered a discipline in its own right. The essential role of software testing and software testers was to capture bugs in developers' code, a process predominantly performed manually.

The process itself was routine and repetitive, nothing more than following and repeating a set of written directions formulated out of the application's requirements. With an emphasis on metrics and templates, it was a non-intellectual approach to the business process. In IT's infancy, it was often the developer himself who took responsibility for debugging his own code. To avoid this obvious conflict of interest, it later became a common practice to separate the testing phase from the development phase. This often meant assigning this task to junior members of the IT staff, an effort to cut expense and allocate the bulk of the system budget to development.

In a multi-phased system development life cycle, testing was relegated a time slot just before software product launch. Considered less essential than the design and development phases of the project, the testing phase was often prone to scheduling squeezes towards the end of the project. As a result, testers were often answerable for the quality issues that surfaced after product release.

The New Paradigm.The tremendous growth of the internet has and is increasingly transforming the face of business. And its emergence has created exciting new avenues and potential for business growth and profit. In this internet age, web-based applications have become the way customers, both within and outside an organization, interact with the business.

At the same time, this 'consumerization' of enterprise software applications exposes the competency and competitive advantages of your business. No longer predominantly internal to running the business, enterprise software applications are increasingly becoming consumer driven with dramatic effect for businesses across diverse industries such as finance, healthcare, education, media and retail.

However, this rapid evolution is not without its pitfalls. For companies slow to embrace these changes and address these complexities, the consequences of being left behind this software revolution may prove dire.

The Role of Software Testing in the New Paradigm.With today's emphasis on consumer driven applications, and direct interaction between consumer and business, it has become essential that such applications perform flawlessly. To assure optimum application behavior, the role of software testing services has been significantly elevated in importance as a most critical component of the software development process. No longer an afterthought, software quality testing has become a vital integrated part of the system development lifecycle.

As such, the main objective of software testing companies in today's software environment is much broader. No longer a limited, repetitive task, software testing has become a comprehensive discipline requiring an understanding that encompasses the entire software system; a comprehensive process of uncovering defects, designed to improve the quality of the code, and provide a supportive feedback device to the developer. Beyond merely assuring your application is doing what it is supposed to do, software testing must also assure the application is NOT doing what it is not supposed to do.

It's a process that goes well beyond the traditional single and separate SDLC phase, charged with debugging code, and gets integrated into every phase of the development life cycle. In other words, we should test the analysis, we should test the design, we should test the development.

Challenges of the New Paradigm.With such an expanded role and elevated importance assigned to the software development process, come significant challenges. As stated above, more than a mere 'debugging' activity, software testing service has become a quality assurance and risk management activity. The traditional bug finding tester is rapidly turning obsolete. In its place has emerged the need for software test engineers equipped to take on these expanded responsibilities. Today's software tester requires broad knowledge and skills. They must acquire the capability to plan, design and execute effective tests to uncover issues related to data quality and inconsistency, security, end user business flow expectations and application performance.

Another consequence of the consumer-driven application evolution is the increasing complexity and proliferation of technology and software for product development which poses its own challenges for software testing.

For example, consider today's mobile application evolution One can imagine the complexity involved in effectively testing such applications that cross a myriad of user technical environments and locations. Think about a testing matrix that spans multiple operating systems, mobile browsers, location and carriers, proprietary makes and models. It's just one of an increasing number of IT applications involving more complex business processes with additional intricacies and inter-connectiveness. You can imagine the quality assurance challenges that exist for organizations that are tasked with testing such voluminous scenarios.

Addressing the Software Testing ChallengeThe problem is there are not enough qualified engineers to satisfy the growing demand. According to research by Gartner, Inc., there exists today a high ratio of testers to developers within non-software companies, at between 1:3 in the best case scenario, to 1:5. Considering that allocations for total application development cost devoted to testing are projected to increase significantly, the result is a large discrepancy between supply and demand for software testers, with subsequent bottlenecks in the software development process.

According to a report from the MicroFocus group, test-as-a-service is projected to grow by more than 33% per year through 2013. Indeed, this group has termed this massive shift in the growth of software testing as 'IT's Invisible Giant'.

So, what's the solution for your business? Basically, you have three options. One, you can continue using the old testing paradigm. Certainly this is your least costly solution in dollars. However, as we have detailed previously the true cost of failing to realize the importance of and embrace the sea changes taking place in the software industry may result in devastating long term consequences to your business.

A second option entails retraining your current testing staff and/or recruiting test engineers trained in the new testing discipline. The learning curve here may be moderate to steep depending on your business needs and the experience of your staff. At the very least it empowers you to recognize the changes and begin the process of integrating your testers with the development community. Get them invited to the key meetings, promote cross group collaboration and get executive buy in for the test team's efforts. From design through implementation your testers should become true partners, contributing knowledge, suggestions and expertise throughout the application development life cycle.

The Third Party Solution.For companies whose businesses rely heavily on web-based systems to meet customer needs and grow profits, however, opportunities lost catching up to the new testing paradigm cannot be sustained long enough.

The good news is that the growing importance and complexity of our software testing landscape has spawned the several new companies specializing in quality assurance and software test engineering.

The best of these organizations recruit and train highly motivated and educated students and professionals across the testing spectrum. Within these organizations are specialists in one or more of the various software testing disciplines. So called horizontal specialists are experts in using automated tools, processes and methodologies needed to perform effective and efficient functional testing, performance testing, security testing, usability testing, globalization and internalization testing. Vertical specialists possess specific knowledge of products and protocols used within the various and popular specialized domains, such as mobile/wireless testing, network/data communication testing, VOIP testing, and others. Many of these specialists also possess in-depth knowledge of specific industries, such as banking and finance, education, retail and healthcare.

The professional software engineer is also current on the trends and technologies driving the growing and constantly evolving requirements of the modern IT landscape. Trends such as the following are recognized and embraced in companies that specialize in providing independent testing services:

Agile Development - An increasing popular and relatively new program development methodology, Agile Development emphasizes consistent testing across the entire system development life cycle. A complimentary system, Test Driven Development (TDD) is a software development process specifically constructed around the testing process. It's a methodology that involves more rapid and frequent testing, an iterative testing process and creating test scenarios upfront that become the basis of product development. Agile brings the software tester closer to the application and is designed to capture defects, and inject product quality early and consistently throughout the development life cycle.

Testing in the Cloud- Another trend, growing in popularity, the Cloud provides on demand testing with the capability to quickly replicate application test environments offsite. This option to 'rent' the proper test infrastructure and automated test tools, provides even smaller companies the capacity to perform complex and sophisticated testing without the burdensome cost and investment in infrastructure and tool purchases. Indeed, Cloud computing promises an exponential increase in the demand for performance and load testing services, which can otherwise be a very expensive line item for product companies.

Equipped with the resources and ability to take a myriad of quality assurance and testing projects from start to finish, such QA organizations have become vital arms for many businesses looking to improve their product quality efficiently, on-time and cost effectively.

New Opportunities for the IT Professional.With large challenges come large opportunities. For today's IT professional and for those who aspire a career in Information Technology, software test engineering offers the promise of an exciting, challenging, and rewarding livelihood in the test design and engineering field.

The growth and expansion of the internet, the advances in technology it has spawned, and its demand from and value for today's businesses, require bright, savvy, adaptable, confident, motivated and enthusiastic personnel to meet these new challenges and keep pace with the change. Those able to meet these challenges will have ample and rewarding opportunities for progressive career growth, with a multitude of potential roles and responsibilities.

No longer less prestigious to the Software Developer's role, the increased responsibility and skill set requirements of the Software Test Engineer have made them equal partners in the IT development process both in rewards and recognition.





No comments:

Post a Comment