[Infographic] Key Takeaways from Continuous Testing Survey

Understanding Trends in Continuous Testing

Is your organization considering implementing Continuous Testing as part of the Continuous Delivery Cycle? If so, it’s a smart move.

How do we know? Well, we recently explored the topic in our eBook, 3,2,1…Liftoff! How Continuous Testing Launches Continuous Delivery Into Orbit

To better understand industry trends, we surveyed 135 industry professionals whose organizations have adopted the practice. We asked them about the implementation process, organizational goals, achieved outcomes, and challenges they faced. 

We then took those findings to 5 industry leaders to get their perspective on how the industry is changing.

While we don’t want to spoil the eBook for you (seriously, it’s a great read!) we did want to highlight some of what we uncovered. 

Curious about how you can use test automation to speed up your delivery cycles? Check out our software testing services

 

SEND US A NOTE

 

The continuous testing infographic includes the demographics of the 135 industry professionals surveyed. There were 41 software engineers and 94 software testers from companies ranging from 2-3,500. When deciding to implement continuous testing, 57.5% did so for faster feedback on observed defects, 52.6% so Developers could carry out more testing, 43% to achieve shorter release cycles, 24.4% for smaller test teams, and 53.5% for better test coverage with the same team size. Executive leadership drove the decision 25.2% of the time, Head of development 23%, Development managers 20%, Testing Managers 12.6%, Head of Testing 10.4%, Developers 6.7%, Testers 1.5%, and Other 0.7%. Continuous testing was implemented one team at a time for 26.7% of companies, a few teams at a time for 46.7% of companies, and all teams at the same time for 26.7% of companies. The process took less than 1 month for 11%, 2-3 months for 38%, 4-6 months for 40%, 7-12 months for 9%, and 1-2 years for 2%. Most people agreed that continuous testing helped them to achieve shorter release cycles, faster feedback on observed defects, smaller test team size, better test coverage with the same team size, developers doing more testing, no manual testing in pre-prod, more exploratory testing in prod, and fewer reported defects in prod.

 

Looking for a partner to optimize your software testing and speed up your delivery cycles? 

 

GET IN TOUCH WITH KMS

 

A Year of Platform Modernization: 6 Tips to Modernize Your Team

Prepare Your Team for Platform Modernization

As you begin the platform modernization process, there are some important first steps you must take to ensure that your team is ready and able to make the jump to microservices

Need a partner to guide you through application transformation? 

 

GET IN TOUCH WITH KMS

 

Think of it this way, your team is the backbone of your application and as anyone with a bad back can tell you…without proper alignment you won’t be doing much jumping! Similarly, a poorly prepared team can throw off the balance of your whole application. 

Your goal in moving to microservices should be to empower your team to create work that they are proud to claim as their own. If they are proud of their work, chances are you will be too, and your customers (and profit margins) will reap the benefits. 

Offering access to the right tools and education programs as well as building a collaborative and constructive work environment are the first steps. Set your team up for success by identifying and communicating team expectations early and develop a communication loop that encompasses fast and frequent feedback. 

So roll out those yoga mats team, it is time to get that spine limber and ready to jump into modernization! 

Did you know, we are doing an entire platform modernization blog series covering everything you need to know to modernize your legacy application? 

 

Our Tips for Platform Modernization

 

1. Make Sure Your Platform Modernization Team is Cloud Proficient 

In microservices, you actually want your team’s heads in the clouds. Bad pun? Ok, that’s fair–but on a serious note, one of the primary benefits of platform modernization is the ability to leverage and integrate with cloud-based tools.

Lucky for you, all of the major cloud providers offer comprehensive online training programs and certification courses, so no matter which provider you choose, your team will have education options. These resources cover high-level information about the cloud platform and its services and offer more in-depth courses at the architect and developer levels. The breadth and depth of these programs will ensure that everyone on your team is well equipped to work within these new platforms.

Cloud Platform Training Programs:

 

2. Modernize Your Team’s Skills  

Modernizing a legacy application is an ideal opportunity for your team to expand their skill set. Specifically, we recommend your team members invest their time and training in two key areas:

1. Learning new coding languages

2. Taking advantage of new DevOps tools.

My developers can already code…why do they need to learn new languages?

Well, when you are operating in a microservices environment, each service could be written in a unique coding language depending on which language best supports the feature of that service. Isolated knowledge can hinder progress and delay problem resolution. Developers with a multi-stack knowledge base will prove more versatile and invaluable as you roll out your new application.

Pro-tip: Be sure to leverage free online MOOC courses!

It is also important that you train your team on the latest tools in the DevOps toolchain. Knowing when and how to leverage these tools will enable your team to prevent issues or resolve them quickly.

 

3. Establish Coding Patterns Across Services and Automated Testing for Easier Maintenance

So we know that microservices tend to be written in multiple languages. How does this not devolve into complete chaos?

As your architect begins to think about the design of your systems, it is important to consider what capabilities should be centralized.

You know the old saying, “don’t reinvent the wheel?” That is kind of what we are getting at. Rather than having each of your developers create different versions of the same capability, utilize a framework of reusable code that can be distributed across the multiple services within your system.

This tip also applies to test automation scripts. Don’t forget to make sure your testing efforts are also supported by standard, centralized coding patterns.

These patterns minimize the amount of code your team will need to create from scratch and reduces maintenance efforts down the road. 

 

4. Understand Containerization and The Tools to Support It

A contractor who does not understand what their tools are or how to use them won’t be very successful in building a house. Similarly, without an understanding of containerization and the open-source tools to manage these containers, your team won’t be nearly as successful in platform modernization.

So we have two key recommendations here. First, educate your team on what containerization is and why it is beneficial.

Leveraging tools like Docker will provide your developers with everything they need to build, package, and deploy their applications, regardless of the platform they are using.

Second, ensure your teams understand how to manage their containers effectively in the cloud. Tools like Kubernetes enable your team to flexibly deploy, manage, and scale your containerized applications.

Containerization enables efficient testing by allowing testers and developers to share defect observations easily, apply fixes and retest from where testers left off. Your team will be all the more prepared with a thorough understanding of containers and how to manage and leverage them.

 

5. Incorporate Performance and Secure Coding Practices

Now, I’m sure you don’t want to go through the trouble of building out your new platform only to find it cannot handle traffic or poses potential security risks. Moving from one issue to another defeats the whole purpose of modernizing.

That said, ensure your team is successful in microservices by following coding practices that encourage extensibility, maintainability, and reusability.

Build performance-focused coding practices into your design pattern. This practice includes educating your team on performance scalability, security concerns, and potential performance problems.

Why? Well, security, performance, and scalability behave differently in cloud-based platforms than in legacy applications. Designing a system with security and performance in mind will help prevent problems. That coupled with proper training will help your team resolve problems quickly if they do arise.

 

6. Leverage Team Communication Tools and Build Good Communication Habits

If you were to Google “how to build a successful team,” you will find countless articles and self-help blogs relaying the importance of communication.

It’s age-old advice, but that’s because it works.

At a team level, you need to build a culture of transparency and constant communication. Integrate your development and testing teams throughout the process and ensure communication is seamless.

Work moves very fast in this type of environment and the sooner a concern is identified, the sooner it can be addressed, and the less rework that will have to be done later. Encouraging regular communication helps prevent team members from feeling like they need to hide mistakes or problems. Bad news only gets worse over time, so address it now and move on.

With the right communication tools, developing a culture of transparency is much easier. Make sure your team knows the full range of these tool’s capabilities and use them to their maximum potential. Leveraging tools like Jira or Slack allows your team to document workflows and quickly pull in team members who might need to help resolve a ticket.

Get Started with Platform Modernization

By implementing those steps…or stretches if we want to continue with the backbone analogy…your team will be nimble and ready to move to microservices.

Want to learn more about moving to microservices? Check out our blog Going From Monolithic to Microservices: How to Get Started.

Want to learn more about moving to microservices? Check out our blog Going From Monolithic to Microservices: How to Get Started.

Ready to begin transforming your legacy application?

 

SEND US A NOTE

 

Kicking Off A Year of Platform Modernization

Download our White Paper and discover the journey through platform modernization from the perspective of your peers.

So, chances are if you are here…you might be looking to modernize your legacy platform. Well, you have come to the right place! Over the next 12 months, this blog series will cover everything you need to know about platform modernization.

What is Platform Modernization, you ask? How will modernizing your platforms impact your business and improve your bottom line? We’ve got you covered! Check out our White Paper on Platform Modernization and hear the perspective of over 150 industry leaders.

Reading this while you wait for your latte at Starbucks? The short of it is: Platform Modernization is the process of taking an antiquated (and often high-maintenance) legacy platform and updating the application using modern programming languages. Modernization streamlines product maintenance, allows for integration with cloud-based technologies, and ultimately improves time-to-market. Read: If done right, platform modernization means less headache and more revenue.

Ok, this all sounds great, but what exactly will we be covering in this series? We are so glad you asked! By the end of this blog series, you will have a blueprint on how to effectively modernize your platform, all while taking into consideration how to prepare your team and simultaneously modernize your testing strategy.

 

Protip! Be sure to check back throughout the year as we will be updating this
directory with links as soon as the posts go live!

 

Want more details? Here is the timeline of topics we will cover:

February: Modernizing Your Team While Modernizing Your Platform

Our blog series kicks off with developing a team training plan to use during modernization and once the project wraps up. We’ll also show you how to identify and implement your ideal testing workflows. This post will help set your team up with the tools and skills they need for a smooth transition to a new platform. We’re positive they will thank you for it!

March: Assess Your Current State

Are you planning to renovate your house without first determining what needs to be updated? No? Good. Use that same commonsense approach for your legacy platform!

Our March blog will discuss how to effectively assess your platform’s strengths and weaknesses and create a targeted plan of action so you’ll know exactly where to begin.

April: Adopting a Data-First Mindset

Show me the numbers! Data is a foundational component to all products. In April, we will show you how to adopt a data-first mindset. We’ll walk you through how to develop strategies and identify tools that will help you build your new application and effectively manage (and test with) your test data.

May: How to Choose Your Cloud Provider

Moving to the cloud? In our May blog, we’ll walk you through key factors to consider when choosing a cloud provider. We’ll also talk about how this partner impacts your testing workflows and speed of delivery.

June: CI/CD Pipeline

Do you find yourself asking, “What is a CI/CD pipeline?” If so, then this blog is for you. In June, we’ll discuss what the CI/CD pipeline is and why you should care. We’ll go over the latest CI/CD pipeline tools that enable your developers to quickly and confidently deliver product changes. Want more? We’ll also talk about how to leverage the pipeline for effective and fast testing. Speed AND quality? What’s not to love?

July: Modernizing Your User Interface

Alright, you are modernizing your platform. That’s great! But, if your User Interface (UI) experience is awful, what’s the point? In July, we’ll discuss how to not only improve your customer experience but how to effectively test it to make sure it’s market ready.

August: Strategies for Modernizing Your Integration Layer AND Performance Testing

August is a double whammy! This month we’ll explore different ways to improve how you manage test integrations and data movement within your product. We’ll also show you the best practices for performance testing, so you can ensure your platform is quick, responsive, and stable.

September: Building an Effective API Strategy

Scratching your head wondering what an API is? No need to worry, we’ve got you covered. In our September blog, we’ll discuss what an API is and how to build an effective API strategy. Plus, we’ll offer tips and tricks for successful API testing.

October: Pulling The Plug On Your Legacy Application? Will it Come Back to Haunt You?

It may be a weird way to celebrate Halloween…but, in October, we’ll let you know how to lay your legacy application to rest. This post will include tips on developing end-of-life strategies for your old platforms. We’ll also recommend how to transition your testing model from your legacy application to ensure quality monitoring of your old platform and pre-emptive test coverage for the new one.

November: Everyone is Coming to the Table – Is Your Turkey Ready?

You’ve done it! Your platform is modernized….but now what? Well, this is the fun part. In November, we’ll tell you how to make sure you’re market ready with your new, modernized product! Make sure to give thanks to your team and get a bigger turkey (maybe a few extra)! You’ll have a lot of new faces to feed.

December: You Made a List, Did You Check it Twice?

In December, we’ll look back at the series and try to answer any questions we may have missed throughout the year. Of course, we cannot let the year end without a look forward. In this blog, we will discuss where to focus next once you have successfully modernized your application.

On the edge of your seat and simply cannot wait to learn more? We thought that might be the case. In the meantime, be sure to head over to our blog to read about how to leverage Test Automation for Platform Modernization and check our infographic on the Top Factors to Consider when modernizing your platform.

Effective Test Automation in Platform Modernization

Enterprises are at a technology crossroad. The business need to transform towards a digital model in order to better serve (and compete for) the next generation of customers has witnessed the rise of coding, or for most Independent Software Vendors (ISVs), the re-coding of a software product.  This process of rewriting code by leveraging new technologies with modern infrastructure, user interfaces, and integrations is Platform Modernization.

Need a partner to help you test or modernize your platform or design your QA Strategy?

SEND US A NOTE 
 

There is a drastic increase in expectations from the next generation of customers, who demand the delivery of new capabilities and features faster.

 

Why is Test Automation core to this transformation? There is a drastic increase in expectations from the next generation of customers, who demand the delivery of new capabilities and features faster, along with higher expectations of reliability. The goal of delivering software meeting end-user expectations with a high level of confidence requires testing to be done sooner, consistently and with shorter feedback loops within the delivery lifecycle, all of which require the adoption of automation testing. As business-critical features/functions are supplemented with automation checks, testers can focus on true value-added activities sooner, to ensure that the software is ultimately delivered with higher confidence.   

 

In order to provide the maximum benefit to the team with automation, any platform modernization project should be approached in phases, and include activities that can be grouped into the following categories and performed iteratively: Planning, Transitioning, Operating.

• Planning should include iterative activities that will allow the testers to understand the user stories and intended feature/functionality expected to be delivered, so validations criteria and dependent tasks can be identified.

• Transitioning should include the ramping-up and completion of dependent tasks (such as building of custom tools, test data, environments, scripts, etc) that will enable the proper validation of the implemented features.

• Finally, Operating should include the execution of tests/observation of behavior of the implemented features. Please note that while these appear to be ‘sequential’, these phases are done iteratively (and in short durations), which fit well within any agile team.

 

Grouping automation activities into these phases will ensure testers are proactively identifying different tasks that need to be conducted, establish pre-requisite dependencies (and priorities) associated with those tasks, and iteratively delivering (with demonstrated progress). The primary outcome of these phases can be a gauge to measure the maturity of the testing activities (including automation) being done by the testers within the team.

When identifying the different test types that must be applied within teams working on Platform Modernization, I would recommend leveraging the following Quality Criteria Categories and Test techniques from James Bach’s Test Strategy Model that typically fit most projects:

James Bach's Test Strategy Model

When applying the above mentioned quality criteria and test techniques, always leverage automation tools that can supplement your testing at the API, Database & UI levels (in that order) – this will ensure that testers can integrate into the build & deployment process applied by the developers in the team (regardless whether the team is traditionally setup applying just Agile practices or leveraging tools tied to DevOps) very quickly, and provide feedback in an extremely short feedback loop. Testers should always look at validating component/feature/application performance & security along with leveraging monitoring tools that can re-use their business critical workflow scenarios, and not just be content with validating functional scenarios.

 

Finally, ensuring that testers are leveraging visual discussion techniques, such as mind maps, when reviewing their test strategy and feature validation criteria with developers and business owners, will foster effective collaborations and risk discussions – bringing ultimate success to the team delivering the modernized application!

GET IN TOUCH WITH KMS
 

 

Download your copy to learn how your peers made it through the journey of platform modernization

5 Questions To Ask Yourself When Cross-Platform Testing

It’s far from straightforward to release a software application in today’s varied, cross-platform device landscape. It may be expected to run on everything from a desktop PC to a smartwatch. Just looking at smartphones, you have a huge variety of different hardware specifications to deal with, and that’s before you even consider the software running on them.

When you put all the possible hardware combinations together with the operating systems, drivers, browsers, and other software that might go on top, you quickly realize that the number of possible permutations is enormous.

Here are five questions that will help you uncover any potential cross-platform issues:

Looking for a partner to guide you through the process? Take a look at our testing services.

SEND US A NOTE
 

Do all interactions and inputs work correctly?

When you test on different devices and platforms, you inevitably deal with a diverse range of possible controls. There may be physical buttons, touchscreen interfaces, or even voice or gesture controls. Every method of interaction must be properly tested to ensure that end users can achieve their goals, regardless of the device or platform. Consider also, accessibility support and regional differences in user interface conventions.

 

Is there a consistent User Interface?

Creating a brand or identity requires a consistent aesthetic. Even when your app is running on different devices or platforms, it should be recognizable as the same software. Ideally, your end users will be able to drop activity on one device and pick it up on another whenever they want. A seamless look, even across different display sizes and resolutions, is tough to achieve. Responsive design takes careful planning and it needs to be tested extensively.

 

Have you considered data and storage limitations?

Your app may have very different storage budgets on different devices. Using a lot of graphics may not be an issue on the desktop version, but on mobile devices there could be a serious negative impact on performance. Testers need to organize, input, and access data just as a heavy app user might to ensure that the software performs as it should.

 

Is your app secure and compliant?

If the software does handle data, then it’s essential to think about how that data will be transmitted and stored. Testers need to make sure that it’s always secure. Watch out for modes, exploits, or vulnerabilities that might circumvent your secure data gathering and processing. There are many regulations related to personal data that must be observed, as non-compliance is likely to prompt punitive fines.

 

Are you delivering on user expectations?

The app marketplace is incredibly competitive and the average end user is not forgiving about defects or disappointments. In fact, 23% of people abandon an app after one use, according to Localytics research. You must make sure that your features and functionality meet the needs of your users and extend across all platforms. The best way to do that is by testing your app on both simulators and real devices.  Mobile device cloud platforms like Kobiton allow you to test your app on a variety of real devices for free.

It’s also important to consider the competition and the category your app falls into. Certain features are likely to be conspicuous by their absence, for example, a bank app without a fingerprint authentication option may worry some smartphone owners.

There are risks and pitfalls aplenty in the world of cross-platform testing. The more you prepare and plan, the better your apps’ chance of not falling prey to them.

GET IN TOUCH WITH KMS
 

Mush Honda is Vice President of Testing Services for KMS.

How to find the right partners, processes and tools for outsourced testing success

It’s important to look beyond cost reduction when you outsource. Take the time to formulate a strategy that will secure the expertise you need, establish a smooth working relationship, and include the best technological tools available.

The right partner will drive innovation and create value for your business.

GET IN TOUCH WITH KMS
 

More than one-third of respondents to Deloitte’s Global Outsourcing Survey 2016 say they already measure the value of innovation in their outsourcing relationships.

There are three key elements to outsourced testing success:

Picking the right partner

It’s vital to study the track record of any prospective partner to establish that they have the skills and experience you need, but look beyond the basics. Ask them what they’ve done in the past to innovate. Look for interesting processes or tools that they’ve built to overcome challenges or improve efficiency. You want to find a spark of creativity and a positive attitude to problems.

Dig into some specifics on past projects and find out how they handle adversity. Do they have strategies to cope with late code delivery or missed deadlines? Establish that they understand how to handle pressure from the outset. You need to know that standards will be maintained once the project is already underway, even if things go off-track.

Supporting the development and growth of staff is a good sign that a company understands the importance of building skillsets and staying up to date. Find out what their ambitions are and ask what they hope to gain from a successful partnership. The ideal partner will have goals that align with yours.

Sharing and refining processes

You should use the same feedback systems that help you to create great software to improve your processes. Invite employees to suggest improvements and analyze what works well and what doesn’t at each stage of development. Your partner can provide another point of view, and including them in identifying areas for improvement will allow you to benefit from their experience.

Find ways to reduce the manual burden on your testers and free them to think creatively. Can automation or the development of a new tool for a specific problem boost overall efficiency? Empower your employees and partners, not just to raise ideas, but to address them. Measure the effectiveness of these contributions and discuss and analyze progress in group meetings.

Utilizing the best tools

New software is rolling out all the time, and you need to be able to take advantage of the latest and greatest tools on the market. You can use communication software like Skype, Slack, and Confluence to ensure that everyone collaborates effectively. Chef, Docker, or Puppet can help you to create test environments and achieve greater consistency. Jenkins and XebiaLabs could enable continuous delivery and automated deployment.

Find the right tool for each step, from defect-tracking to data management. Make sure that you have the required knowledge base to adopt new tools. Discuss the most effective options with your partner and target tools that you can fully exploit to add the most value.

Bring these three elements together and you have a powerful recipe for outsourced testing success.

GET IN TOUCH WITH KMS
 

Mush Honda is Vice President of Testing for KMS.

How to Analyze the Effectiveness of Your Testing Efforts

KMS Tips for improving testing processes and practices.

SEND US A NOTE 
As testers, we like to focus on ensuring that software fulfills its intended business objectives. It’s important to collate and analyze data to measure the effectiveness of our efforts, but some of the test data that we generate is overlooked. It could be used to improve coverage for the project at hand, and to improve our processes and practices in the future.

We should take the time to understand where team effort went, how long it took to complete specific tasks, and compare the end results to our initial estimates. By drilling into data about the testing process itself, we can reveal useful insights. We can learn how to streamline processes, estimate more accurately, and assess the usefulness of the tools we’re using.

Boosting your coverage

Your test plan should be fluid because it has to be able to adapt to new information. To maximize coverage, you need to reassess your plan frequently and evaluate where most defects are being found. It will often be necessary to change priorities, dropping your efforts in some areas to boost it in others.

It’s all about where you can get the most value and ROI on effort, relative to the perceived business objectives for the product release.

For example, it may make more sense to explore interdependent areas, rather than focusing regression on a previously defect-ridden spot that developers have fixed up.

Always ask yourself: Where are the business critical areas, and where within those will you find the most issues?

Usability must be in the forefront of a tester’s mind, even when it’s beyond the scope of the functional test you’re running. Feedback of this nature might be secondary, but it’s absolutely invaluable, and it can have a huge impact on final quality.

Analyzing usability data from your testers is a great way to work out where the weak spots are and find candidates for easy improvement.

Measuring effectiveness

If you’re doing things a certain way because “that’s the way they’ve always been done”, then you need to stop and question your techniques and tools. You can’t determine that it’s better for a tester to use one tool over another, or to write specific automation scripts unless you measure their impact and compare.

Take a close look at how much manual effort is actually involved in configuring and employing your tools and techniques. You need to make sure that they are being used for appropriate tasks where some benefit in efficiency can be realized.

Just taking the time to stop and question the way you do things can reveal potential areas for improvement. Invite suggestions and make sure that you measure the results, so that you know your chosen processes and tools are more effective than the alternatives.

We attempt to measure software quality all the time and act on our insights to make improvements. It makes sense to turn that analytical eye to the tools, techniques, and processes we rely upon to carry out our testing and see what we can do to get better. Boosting efficiency and widening our test coverage via better tools and processes will have a significant positive impact on the final quality of any software we are testing.

GET IN TOUCH WITH KMS
 

How to Apply Root Cause Analysis to Enhance Software Quality

GET IN TOUCH WITH KMS
 

If you want to understand where your product delivery process is going wrong and improve the quality of the software that you develop, then Root Cause Analysis (RCA) is a useful mechanism. It’s easy to get caught in a firefighting pattern where your focus is on treating symptoms. But, if you can identify the cause of the defects, there’s scope to fix the problem at source and turn out better software much more efficiently.

When properly handled, RCA can be applied to defects, or even user feedback, to reveal potential improvements that could be made throughout your organization. It can polish processes, reduce frustration, improve quality, and boost customer satisfaction.

Where to use RCA

As soon as a serious issue starts to cause revenue loss or block workflows, you should be ready to act. If it’s high-severity, then the problem must be flagged immediately and automatically. You’ll need a system in place to catch problems and categorize them for business impact correctly. You need to fix the visible symptoms, but also be ready to investigate the cause.

Act fast with a two-pronged approach to lessen the impact and aim to complete fixes and initial assessments within the first 24 hours.

How to use RCA

The specific format, software, or template that you employ to gather information isn’t important, as long as it works for the team. What is important is that you capture the data you need:

  • Problem statement – Explain the symptoms, how they were noticed, what impacts did they have, and describe the defect in detail.
  • Root cause – Find the root of the issue and explore how it was missed during testing. Look for a gap where changes are being missed or testing efforts are inadequate.
  • Mitigation plan – You must decide what you’re going to do to fix the problem, both at root and the symptom. Look for changes you can make to prevent this kind of problem arising in the future. Be careful that you don’t cause another problem by applying a rapid fix without fully thinking its impact through.
  • Look for trends – It’s important to categorize problems and collect measurements so that you can collate data and filter it for useful insights. Look for broad trends and identify ways you can tweak your strategy to improve your processes.

Finding business benefits

Ultimately, the aim of RCA is to find where problems originated and eradicate them. You can realize broad business benefits and increase customer satisfaction by tracking defects and user feedback and applying RCA to both. A collaborative approach to rooting out problems builds a greater understanding between departments. If you can eliminate breakdowns in communication, bottlenecks, and blind spots, you will smooth the path to producing great software.

If the definition of insanity is doing the same thing over and over again, but expecting different results, then perhaps it’s time to apply RCA and take tangible action to improve your software development and testing processes and achieve better results.

GET IN TOUCH WITH KMS

Looking ahead to testing trends for 2016

The new wave of challenges that testers will face in the New Year

As we close the door on 2015, it’s time to look at what the next 12 months might bring. Testers need to plan ahead and prepare new strategies to cater for the latest trends in development and IT. If you can get ahead of the curve, you can build a foundation for future success.

GET IN TOUCH WITH KMS
 

Let’s take a look at some of the major issues testers will face in 2016 and discuss how to go about tackling them.

Ubiquitous connectivity

Internet access is trickling down into every interaction we make. The mobile category is widening to incorporate a new wave of wearables. Software and wireless connectivity are combining to spread the “smart” from our phones into our cars and homes. As it becomes cheaper to put sensors in more and more devices, the Internet of Things (IoT) is rapidly growing. There will be as many as 6.4 billion connected things in use in 2016, up 30% from this year, according to Gartner.

There are serious challenges for testers in this new, interconnected world. It’s important to employ a wide variety of devices and take the time to investigate how they interact. The logistical difficulty and expense of having all the physical devices in hand can be prohibitive. Testers need to look at emulation services and mobile device farms to make comprehensive testing affordable and practical.

Staying secure

As personal data is collected from an ever-growing variety of devices and stored in the cloud, validating that the data is synchronized properly becomes vital. It must be encrypted, stored in the right place, and only retrievable for authorized users. During testing, it may also be necessary to take precautions to ensure that no sensitive data is exposed to testers. Regulatory requirements and compliance must be observed.

Security testing will become increasingly important as the potential consequences of any breach hit home. More connectivity brings many potential benefits, but there are serious risks, and consumer confidence in the quality of software rests partly on its security credentials. Dedicated testers will consider the differences in how devices handle data and look for loopholes that cybercriminals might exploit.

Performing to expectations

It’s not enough to determine whether something works or not. Testers should be examining the performance to ensure that load times are fast enough, no data is lost behind the scenes, and that some analytical insight into performance is gained. Many devices might form entry points, but the infrastructure behind them is cloud-based, and testers need access to take a look under the hood.

Finding the root of issues with a diagnostic assessment can drastically cut down the time and effort it takes to fix a defect. This may require a new methodology or the development of new tools, but as the enterprise comes to rely on hybrid solutions that combine the cloud with legacy systems, it will become more and more important that testers understand what’s happening behind the scenes.

No time to waste

More and more companies are building continuous delivery pipelines, driven by agile methodologies and DevOps. There are lots of business benefits to delivering software earlier and releasing more frequently, but it does put an additional burden on the test department. The quality still has to be as high as possible, but manual testers can only do so much.

Test automation is a vital part of the equation if organizations want to release faster and more frequently, but it takes the right mindset and set of skills to pick out the key repeatable tasks and isolate the best candidates for automation. Testers need a good level of understanding of the business value of the software in order to prioritize effectively.

Ambitious testers should look at how they might develop their programming skills, so they can write test automation scripts. As the DevOps movement breaks down the walls between departments, people with cross-over skills will be highly sought after.

The software development scene continues to evolve, and though the landscape for testing is shifting, it’s every bit as exciting and challenging as it has ever been. If you want to distinguish yourself and get ahead, then it pays to be forward-thinking.

GET IN TOUCH WITH KMS
 

5 Tips For Closing Gaps In Your Testing Coverage

Don’t wait for problems to emerge, take action now. Level up your test strategy with KMS.

SEND US A NOTE
 

Post mortems and root cause analysis can be effective ways of identifying what went wrong with a project, but all too often a majority of the lessons learned are not applied to the next project (due to time constraints or projects already in-flight), or they’re deemed irrelevant. Why wait? It shouldn’t take a major outage, a show-stopping bug, or a flood of customer complaints to prompt you to search for gaps in your testing coverage.

The problem with the term post mortem, is that it implies that the subject is already dead. You should really be working on improving things while it’s still alive, when it’s cheaper and easier to fix issues. Here are five tips that will help you to do exactly that.

Get testers involved early

When your test team is late to the party and expected to hit the ground running, you inevitably end up with misunderstandings. They’ve missed out on the planning discussions, they probably don’t fully understand the objectives of the software, and they may lack domain knowledge. If you include them from the beginning, then they’ll have an understanding of why certain decisions were made, and they’ll have an opportunity to prepare.

It can save a great deal of time down the line, when everyone is feeling the pressure of a timely release, and result in much more comprehensive test coverage. You also boost your chances of finding serious defects earlier and fixing them before they become entrenched.

Understand the intent of the software feature

Part of the benefit of involving testers early is that they gain a greater understanding of the feature within the software under development. If they don’t know what the business value is, or what end users are looking for in terms of functionality, then they can’t be expected to understand validation and testing priorities.

Regardless of when testers come onto a project, they should always take time to understand the intent of the software feature. Why is it being developed? What are the core functionalities? What pain points is it attempting to solve? The better they understand it, the more thorough their test coverage will be.

Open communication channels

In order to understand the software features, to design a comprehensive test suite, and to plan ahead properly, testers need to be in constant communication with the development and business teams. They must have that insight into the business aims, and the thinking behind each new iteration of the software, so they can focus on testing the right functionality with the right business impact.

Face-to-face (video or in-person) meetings and direct communication is most effective. Don’t allow messages to be buried in bureaucracy. Why send an email through two managers if a quick chat will suffice? Properly managed, open lines of communication can dramatically boost collaboration, and overall software quality.

Collect data

It’s cheap and easy to collect data on your testing efforts. Repetitive manual testing workflows can go on to serve as the basis for automated tests, while additional high-impact tasks identified during exploratory testing can also add to the automated suites. The more data you collect, the better your picture of your overall test coverage will be. You’ll be able to fully audit your process and drill down into greater detail when you need to.

Analyze your efforts

It’s one thing to collect and aggregate data, but if you want to realize real benefits then you have to cast an analytical eye over it. Employ a tool capable of generating reports or visualizations automatically and use it to guide your test strategy. If you can see a spike in defects in a particular area of the software, or you find testers are making the same suggestions, then it might be time to investigate more deeply.

Analyzing all the data about your testing efforts continually throughout the project is the best way to understand where to refocus your efforts. You’ll see potential gaps before they form, and you’ll be able to assess whether your responses are working. Instead of reacting to issues and putting out fires, you’ll be looking ahead and smoothing the path.

Any of these tips can help you find and close gaps in your testing coverage, but for the best results, take them together and apply a proactive approach.

GET IN TOUCH WITH KMS