Software Testing 2020
eBook - ePub

Software Testing 2020

Preparing for New Roles

  1. 141 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Software Testing 2020

Preparing for New Roles

About this book

Considers the ambiguity today in the industry with developer-tester role mergers
Discusses the identity crisis for testers
Examines the testers' role in software today and how it's changing
Looks at future of software testing and what testers need to do to prepare for success

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Software Testing 2020 by Mukesh Sharma in PDF and/or ePUB format, as well as other popular books in Computer Science & Computer Engineering. We have over one million books available in our catalogue for you to explore.
1
PRODUCT DEVELOPMENT LANDSCAPE TODAY
Everyone has their own calling, but not everyone is looking for the phone, or either they missed the call, or just not answered it.
—Anthony Liccione1
This quote applies not just to individuals but also to organizations and industries at large. Software has become omnipresent. Companies are branching into untested territories to take on new challenges and bring in unforeseen solutions. Google, for example, has multiple such projects including Google X, Fiber, and Calico all focusing on diverse portfolios from Google’s flagship products around online search, advertising, and mobile operating system. The parent company, Alphabet, was formed in August 2015 to bring together the multiple brands it encapsulates into this umbrella (Figure 1.1). Google has been traditionally known to support an open culture to innovate. Twenty percent of every employee’s time is set aside to innovate. Such innovations help individual employees and the organization remain nimble and dynamic that have become their imperative characteristics for staying competitive in today’s marketplace.
Organizations are beginning to understand that such dynamism does not mean randomization and overwhelm, which were some of the core reasons they have often resisted big changes in the past. They are increasingly able to bring in the right focus needed for their core businesses yet focus on futuristic trends. This is a very positive outlook for the software industry at large.
Besides understanding how product development landscape today is, the other key trend to note is how global it has gotten to be. A few years ago, globalization largely meant only one of the following three aims—for product companies from the West (especially North America):
Image
Figure 1.1 Google’s organizational structure as of 2015. (From Kelly, H., Meet Google Alphabet—Google’s new parent company, http://money.cnn.com/2015/08/10/technology/alphabet-google/index.html?iid=EL, 2015; CNNMoney; Company filings.)
1. Making their solutions available for global consumption.
2. Outsourcing one or more of their development needs (such as development, testing, support) as service requirements to developing countries that had the talent and less cost. This would include reaching out to countries such as India and China to get the work done offshore.
3. Setting up global development centers, again to leverage the global talent and low costs.
While this is not untrue even today, the welcoming trend is that the growth of local product companies is on the rise. Alibaba, for instance, is an e-commerce giant in China today. Flipkart and Snapdeal are making the market competitive for global leaders like Amazon in India. InMobi is competing with the Googles of the world. A number of product start-ups are being funded and homegrown, including people returning to their home countries to be a part of such revolutionary changes.
How have all of these impacted the traditional product development cycle and landscape that we have gotten used to? As a “fraternity” in the software development world, we have all come to accept the downsides of the traditional waterfall life cycle, especially its alignment with today’s requirements. While there were a lot of “teething” and acceptance issues for the agile life cycle in the early 2000s, the industry has learned to implement agile in varied shapes and forms to meet specific needs. Organizations have gone agile, teams have learned to practice it to promote better collaboration with focus on result and end product, and users have started increasingly involving themselves in the software they consume even when it is still under development.
However, the question we now need to answer is, “Are these changes sufficient to meet the current needs of dynamic and global development?” The industry as a whole is attempting to answer this at this time and simultaneously take on newer practices to keep pace with the latest and greatest in the development landscape. The following are some noteworthy evolutions:
1. Develop a user-centric and service-oriented development model: Products and applications are no longer being built with a one-sided approach of handing a deliverable to the end user. Organizations are increasingly adopting a user-centric approach in looking for value-added opportunities to exceed end-user expectations. The whole focus of the product development effort is now on user satisfaction, thereby taking in a service-oriented approach. Thus, even a product company now brings in a service focus that further makes them more nimble and amenable to end-user wants. Users are closely involved in the development cycle, be it to review designs, evaluate the product implementation before market release, and provide inputs for future implementations, making it all a very tightly coupled development effort despite how geographically far reaching the market may be.
2. Adopt a hybrid development methodology: When teams started moving into the agile life cycle in the early 2000s, one of the main troubles they had was the rigidness and lack of complete alignment to any one given model. While certain aspects of a scrum implementation may work for them, they may not be able to embrace it fully. Similarly, they may better align to specific characteristics of other models such as Kanban and XP. Over time, teams have started understanding the value of hybrid development methodologies, where they take the best of varied life cycles and create a custom model that works the best for them. Such a hybrid implementation has become an inevitable need of the day to focus on the deliverable that they are building as opposed to the rigidity of implementing a specific development methodology.
3. Build cross-functional teams: These are teams that run horizontal across product groups. Building and maintaining cross-functional teams continue to be a chicken and egg issue over time. In the days of the waterfall model, special functions such as performance, localization, and security, especially in software testing, were cross functional, since people with such skills were not very easy to hire, demanded high pay, and were not needed throughout the development life cycle. With the advent of agile, they had enough tasks to take on throughout a release that they were seen as resident experts in specific teams. However, cross functional has a new meaning in recent times. These experts are again being leveraged across teams given the know-how they bring to the table. Additionally, there is so much cross functionality between product teams that needs to be leveraged over the course of development—whether this is cross functionality from a product, process, or resource standpoint, organizations are looking at collaboration at all possible places and encouraging teams to become cross functional. This also helps them develop a strong sense of appreciation for the larger product context instead of looking at the specifics of a module or application they may be working on.
4. Increased use of APIs: This is seen as an upcoming trend. In the software world, we are not new to APIs. But what is becoming increasingly popular in the cross sharing of APIs? There is so much public knowledge and implementation available such that software systems are becoming increasingly API centric, leveraging such existing knowledge sources. Researching for such existing reusable snippets of code will become more valuable, given how time and cost constrained teams are. Despite the value it holds, most teams often fail to leverage such common resources, even within the same organization—this is often due to lack of due diligence from their end. The ones that will differentiate themselves in delivery and implementation will be the ones that increasingly use APIs both developed at their end and also leveraged from external sources.
5. Embrace open source: A long-standing debate in the software world continues to be “proprietary or open-source.” While this question will continue to prevail, the answer to which is very specific to an organization’s individual requirements, the debate is easing out in favor of the open-source world. In addition to the cost-effectiveness and vast community knowledge open source brings in, it is also becoming increasingly sophisticated in its feature set and quality, in recent times, giving proprietary software a good run for money. In a recent panel discussion we moderated at the Next Generation World Testing Conference, this debate was taken up. Interestingly, more than each group taking its own side, they were seen touting the benefits of the other side. For example, the commercial tool vendors, such as the ones from IBM, were talking about their contributions to the open-source world, whereas the open-source proponents were talking about using commercial tools to develop open-source software to ensure robust quality. The panel was moderated in favor of a collaborative existence, although at a large level, most teams are using open source in possible places. Open source builds on their agility and productivity, without any bureaucracy around approvals. Given that open source is also soon catching up on its quality, comprehensive feature set, and the range of functions it offers, it is certainly a time to embrace it, in development efforts.
6. Integrate individual modules into a wholesome ecosystem: The industry as a whole is moving to an ecosystem mode. While individual modules have their own relevance, the industry has started acknowledging the benefits of an ecosystem. To take a simple example, we need no introduction to the social, mobile, data analytics, and the cloud computing environments. However, a new technology around an integrated system called SMAC combining the four to bring in better business and user value is on the rise. Synchronizations between modules and individual systems such as these will only continue to grow, forcing development teams to think at a wholesome scale.
7. Understand DevOps end to end: In the integrated work that has become necessary in the development landscape, teams have come to appreciate the need for DevOps. However, they have only partly understood what DevOps stands for. While they see the piece of integrating development and operations, they still do not fully see the cultural shift that is needed to embrace DevOps comprehensively. How software quality fits into DevOps, the kind of tools that support this implementation, the team level collaboration that is needed to practice this concept in its entirety are all still loose ends that the industry will tie up together in the coming years.
8. Secure systems: While cross collaboration and integration has a lot of benefits to offer, it certainly opens up a whole new problem around application security. A number of touch points between systems directly translate to the number of vulnerabilities the system is exposed to. Hackers are smart in leveraging newer vulnerabilities by the day that the software development team has to increasingly focus on hardening the system and closing varied threat entry points. In the coming years, securing systems will be an important element of the development landscape.
9. Focus on improving application performance: Global user base for products and applications is on the rise. Obviously, this means more users are using the product round the clock. Digital consumption across the world has gone up significantly, where development efforts need to specially focus on application performance. This also includes the scalability of the underlying system that supports the application, server side performance, client side performance, and greater focus on capacity planning to ensure seamless availability all around. Thanks to advancements in technology and infrastructure, especially in the space of cloud computing, performance is improving and keeping pace with the growing user base. However, this level of focus should continue to rise in the coming years for organizations to have a competitive edge in the marketplace.
10. Strengthen online identification: A great application may miss market presence because it is not able to connect with its relevant and target users. Similarly, a substandard application may pass off with a decent acceptance given its right reach with end users. Herein, the importance of search engine optimization needs to be emphasized where development efforts need to account for the right presence and optimization even as the product is being engineered.
11. Develop collective ownership for quality: Although the tester is still responsible for overall product quality, product teams are taking on responsibility for quality in possible ways. For instance, developers are taking on unit testing, build engineers are leveraging automated sanity tests, and everyone is interested in defects reported from the field. These are all good signs allowing testers to focus on bigger and newer tasks related to quality, enabling the team to achieve the required test coverage within the short release cycles they have to work with.
Development landscape, although agile in its implementation, will have to accommodate these evolutions into its fold, at this time. You may have already been using one or more of these evolutions, but these put together form an important set for constructively shaping your development landscape in the coming years. When teams are able to bring these into their scaffold, they are able to reap a shortened development cycle, cost-effective development approach, global reach, user connect, and a technology advantage, all of which together will be able to differentiate them from their competitors.
Roles in a Product Team
A multitude of functions come together in building a product. Roles associated with these functions are diverse and each has its own significanc...

Table of contents

  1. Cover
  2. Half Title
  3. Title Page
  4. Copyright Page
  5. Table of Contents
  6. PREFACE
  7. ACKNOWLEDGMENTS
  8. CHAPTER 1 PRODUCT DEVELOPMENT LANDSCAPE TODAY
  9. CHAPTER 2 INFLUENCING A CHANGE IN SOFTWARE TESTING
  10. CHAPTER 3 WHAT DID WE DO SO FAR IN SOFTWARE TESTING?
  11. CHAPTER 4 TESTING IN THE PRESENT TIMES
  12. CHAPTER 5 WHAT DOES THE FUTURE BEHOLD FOR SOFTWARE TESTING?
  13. CHAPTER 6 ARE WE EMPOWERED FOR THE PRESENT AND READY FOR THE FUTURE AS A FRATERNITY?
  14. CHAPTER 7 HOW IS THE TESTER’S ROLE CHANGING?
  15. CHAPTER 8 WHAT DO INDUSTRY VETERANS HAVE TO SAY?
  16. INDEX