Jess Ingrassellino, Author at Automated Visual Testing | Applitools https://applitools.com/blog/author/jessingrassellino/ Applitools delivers the next generation of test automation powered by AI assisted computer vision technology known as Visual AI. Wed, 22 Dec 2021 17:55:00 +0000 en-US hourly 1 Why Should Software Testers Understand Unit Testing? https://applitools.com/blog/why-should-software-testers-understand-unit-testing/ Wed, 22 Dec 2021 17:54:59 +0000 https://applitools.com/?p=33490 Learn why unit testing isn’t only for developers, the importance of unit testing to quality engineers, and how you can improve your skills by building better unit tests.

The post Why Should Software Testers Understand Unit Testing? appeared first on Automated Visual Testing | Applitools.

]]>

Learn why unit testing isn’t only for developers, the importance of unit testing to software testers and quality engineers, and how you can improve your skills by building better unit tests.

The responsibility for product quality frequently falls on software testers. Yet, software testers are often divorced or even excluded from conversations around the cheapest and easiest way to inject quality into the product and the entire software development lifecycle, right from the beginning: unit testing. In this article, we’ll explore why it’s important for software testers to be able to speak clearly about unit tests and how this can help deliver better quality.

Why Unit Tests Are Important

Unit tests form the solid base of the testing pyramid. They are the cheapest kinds of tests to run, and can be run frequently throughout the deployment pipeline. Unit tests allow us to find errors the soonest, and to fix them before they bubble up in other, more expensive kinds of testing like functional or UI tests, which take much longer to complete and run than unit tests.

Unit Testing Frameworks

Most developers know how to write unit tests in the language in which they develop, and most languages have several libraries to choose from, depending on the type and complexity of testing. For example, Python has pytest, pyunit, unittest(inspired by Java’s JUnit), Nose2, and hypothesis (for property tests, a non-example based type of unit test). These are just some of the choices available, and every language has a number of possible unit testing frameworks to choose from.

You don’t need to know everything about a unit testing library, or even how to write unit tests, to get value from understanding the basics of the unit testing framework. A lot of value can be gained from knowing what framework is being used, and what kinds of assertions can be made within the framework. Also, does the framework support table tests or property-style tests? Understanding what is supported can help you better understand what aspects of your test design might be best handled in the unit-testing phase. 

Unit Testing Is the Developers Job

Yes, developers typically write unit tests. However, they are largely responsible for writing these tests to ensure that the code works – most developer tests are likely to cover happy-path and obvious negative cases. They may not think to write tests for edge or corner cases, as they are working to meet deadlines for code delivery. This is where software testers with unit test knowledge can help to make the unit tests more robust, and perhaps decrease testing that might otherwise be done at integration or functional levels.

The first step, if you are unfamiliar with the code, is to request a walkthrough of the unit tests. Understanding what developers have done and what they are testing will help you to make recommendations about what other tests might be included. Remember, adding tests here is the cheapest and fastest place to do it, especially if there are tests you want run quickly on every code change that a developer makes. 

If you are familiar with the codebase and version control systems, then you can also look for the unit tests in the code. These are often stored in a test directory, and typically named so it is easy to identify what is being tested. Quality teams can be coached to review unit tests, and compare those with their test plans. Once coached, teams can make recommendations to developers to improve unit tests and make test suites more robust. Some team members may even expand their skills by adding tests and making pull requests/merge requests for unit tests. There are many ways to participate in making unit tests more effective, involving writing no code or writing a lot of code; it’s up to you to decide what most benefits you and your team. 

But What if There Are No Unit Tests?

If you are responsible for software quality and you discover that your team or company is not doing unit testing, this can be both painful, but also a great opportunity for growth. The first step in having the conversations around developing unit tests can revolve around the efficiency, efficacy, and speed of unit tests. The next step is building awareness and fluency about quality and testing as a part of development, which is a difficult task to tackle alone, and it may not work without buy-in from key people. However, if you can get understanding and buy-in on the importance of building testing and testability into the product starting with unit-tests as the foundation, further discussions about code quality can be opened up.

Better Quality is the Goal

At the end of every day, every member of the team should be responsible for quality. However, that responsibility rests with different people in different organizations, and often with the person who has the word “quality” in their title is the person who is ultimately held responsible in the end. If you are responsible for quality, understanding the basics of how unit tests work in your code base will help you to have better discussions with developers about how to improve software quality in the fastest, cheapest way possible – directly from the code.

The post Why Should Software Testers Understand Unit Testing? appeared first on Automated Visual Testing | Applitools.

]]>
Quality Leadership: Risk Analysis as Quality Advocacy https://applitools.com/blog/quality-leadership-risk-analysis-as-quality-advocacy/ Wed, 06 Oct 2021 15:51:57 +0000 https://applitools.com/?p=31520 Learn how to talk about quality risks to uphold product quality and exercise quality leadership, using the language of business stakeholders for maximum efficacy.

The post Quality Leadership: Risk Analysis as Quality Advocacy appeared first on Automated Visual Testing | Applitools.

]]>

Communicating about quality is the job of quality leaders, in formal or informal roles. The degree to which you will be heard as a quality leader depends on both what and how you communicate. It can be tempting to show off the depth of your quality experience and knowledge during these opportunities to communicate with business leaders or managers in the company. However, you are most likely to be heard if you can communicate impact that can be readily understood based on quantitative measures of the business impact of quality risks, including lost sales, increased support calls, or increased costs fixing problems that cannot be spent on new development.

All of those business impacts can be understood and communicated as quality risks. This article will tell you how to talk about quality risks to uphold product quality and exercise quality leadership in your organization, using the language of business stakeholders for maximum efficacy.

What Is a Risk in the Context of the Desired Business Outcome?

Investopedia defines business risk as “the exposure a company has to factor(s) that lower its profits or lead it to fail.”  Software leaders face a number of business risks that cause high levels of concern and drive strategy decisions that impact the day to day. What are the key risks that your leadership team feels the business faces? In order to get traction on the quality risks you encounter, you need to understand what your company perceives as their biggest risks, and relate your quality concerns to these risk areas.

Finding and Communicating the Most Impactful Risks

Once you have an understanding of the key risks that face your business, you can gather more context around the costs of risks becoming reality. You can gather data from past risks that have become reality by looking through customer complaints in the form of support tickets, customer reviews, or other evidence of impact. Then, you can learn more about the cost of the impact by speaking with support people on the amount of time they spent on tickets related to a certain problem. How much does a support person cost, and how many support people does it take to mitigate and resolve failures that did not need to happen in the first place?

Then there is the impact on sales. Sales teams keep data on the reasons a sale did not go through, or was not as robust as they expected. Reaching out to sales teams to see if major failures had a sales impact is another source of data to understand the kinds of risks that have impacted business performance.

Finally, there are developer costs of major failures. These costs include time to diagnose, contain, understand, and fix the failure in the moment, and then all efforts and re-work needed to remedy against the same or similar failure happening in the future. Using these methods and others, you can begin to determine the business costs of software quality problems.

Using Risk Learning to Determine What’s Most Important

Understanding the way that failures and risk impact the business, and knowing what risks the business is most concerned about, can help you understand what risks you will have the most ease in raising successfully. You can use a basic risk matrix to prioritize all the risks you see, based on the probability of failure, and the impact of the failure on the business. You can assign high levels of complexity and iterate on this basic formula; there are many software solutions that allow for this. However, to start prioritizing risks and level-set for internal conversations, I have found the basic formula quite effective.

Here is the basic formula for calculating a basic risk score:

total risk = probability of failure x impact of failure

The scale I have used for each level when I have used the basic formula:

Risk LevelProbability of FailureImpact of Failure
Low11
Medium22
High33

A google search about calculating risk scores yields several variations on this formula, which may give you ideas about what will work best in your organization.

How Much Should I Communicate?

As quality professionals, it’s really tempting to communicate all the risks, because we understand how each presents a suboptimal user experience. Yet, brain science research has shown that people can only hold three to four things in their conscious mind at the same time. To make the most of our time with business leaders, we must focus on the top three or four risks to the project. This means communicating clearly and succinctly about the most critical risks and using face-to-face conversation time to advocate for why those risks need to be addressed. Other risks should be recorded and acknowledged in a ticketing system, work plan, or other documentation, but should not be enumerated during face-to-face time.

To communicate in a memorable way, find the most impactful customer stories connected to the cost that failures have caused the business. Research shows that storytelling is a key way to move people, and finding ways to combine quantitative cost data with stories can reinforce the need to address critical quality risk.

Finally, put together your findings in a report or communication that is short and to the point. Most people don’t pay attention beyond 2 or 3 slides or one page of a report; they want the bite-sized version of the problem, along with potential solutions that fit into the needs of the business. Clear, concise presentations will help provide the visual material to support your cost facts and customer stories.

Advocating for quality is an art and a skill. Prioritizing and communicating quality risks based on past business failures, costs, and current business concerns can help you to tell the right stories to make sure that major quality issues don’t slip through the cracks.

The post Quality Leadership: Risk Analysis as Quality Advocacy appeared first on Automated Visual Testing | Applitools.

]]>
Quality Leadership: Influence through Informal Leadership https://applitools.com/blog/quality-leadership-influence-informal-leadership/ Tue, 14 Sep 2021 21:23:23 +0000 https://applitools.com/?p=30883 There are many lenses through which we can consider leadership challenges in an organization. Two possible lenses are the roles that formal and informal leaders can play. Formal leadership consists...

The post Quality Leadership: Influence through Informal Leadership appeared first on Automated Visual Testing | Applitools.

]]>

There are many lenses through which we can consider leadership challenges in an organization. Two possible lenses are the roles that formal and informal leaders can play.

Formal leadership consists of roles that are given, assigned, or part of someone’s daily duties or job description. Informal leadership consists of making an impact through behavior or influence, without the formal title typically associated with such activities. In this article, we’ll explore the ways to use informal leadership to increase your influence in an organization. 

How to become an informal leader

Develop relationships across the entire company

Relationships build trust, and trust is the founding component when exercising informal influence. When you take the time to develop relationships with your peers, then you have more opportunities to provide constructive feedback, work together on projects, and gain the role of the trusted advisor in an informal capacity.

Qualitative or motivational interviewing

The act of building relationships and trust is strengthened when you take a deep interest in the people you work with, particularly cross-team peers. I have successfully used qualitative interviewing strategies when starting a new job to learn more about cross-team relationships.

Keys of conducting a great qualitative interview:

  • Ask your key question or questions, and using active listening, generate your follow-up questions through the conversation. 
  • Listen for layers: how is someone framing the problem? For example, are they using words with a positive connotation (fascinated) or a negative connotation (frustrated)? Use the tone of the person you are speaking with to learn more about them, how they may be feeling, and to elucidate more information from your cross-team peers.
  • What is someone NOT saying? Since I read her work in 2009, I’ve frequently referred to Dr. Lisa Mazzei’s work about what we can and must learn from silence. The very basic interpretation of her work is that we need to give silence as much value as the words spoken by those we speak to. To more fully understand the people you are talking to, attend to their silence as much as their words. 

Solve problems with cross-functional teams – give to get what you want

As you continue to develop relationships with cross functional teams, you will have opportunities to exercise informal leadership and influence. Doing this means that you need to know how to listen to other people’s concerns, and effectively communicate your own needs and concerns, to reach the best possible outcome for the team. 

An approach I find very helpful comes from Dialectical Behavioral Therapy (DBT). DBT, developed by Marsha Linehan, is a complex, skills-based form of therapy requiring participants to commit to multiple weekly sessions, classes, homework, group and individual sessions, over the course of many years. I have participated in this type of therapy. From this, I’ve continued to use two skills in my professional and personal life to communicate my needs, hear the needs of others, and maintain the health of my relationships: DEAR MAN and GIVE FAST. I’ll briefly describe each below, and provide links to resources for these essential communication skills.

The DEAR MAN skill is especially useful if you are not normally an assertive communicator. It provides a useful framework for everyone to have difficult conversations, be heard, and negotiate outcomes, without succumbing to overwhelming emotions that may negatively impact our immediate goals or future relationships. I have used these techniques successfully in communicating with bosses, peers, and direct reports over the past nine years of my career in software.

The GIVE FAST set of skills is useful if you find that you have difficulty listening to others when you feel upset, or if you find that you often say yes when you really mean no. Learning to listen to others and acknowledge their view while at the same time maintaining your boundaries is a key to feeling good about whatever outcomes you reach in a given communication.

Both of these skills are easy to understand, but difficult to master. Fortunately, all they require is practice to become a mindful, masterful communicator who can solve problems with leaders, peers, and direct reports.

Regularly share knowledge that helps to solve problems

In my career, I’ve encountered people who hoard knowledge, and people who share knowledge. As you can imagine, companies that have more knowledge sharers are more successful than companies where employees hoard knowledge. 

If you work in a knowledge-sharing company, then take opportunities to become involved in sharing your knowledge. Whether it’s a simple update to the wiki when you notice something wrong, or operationalizing as-yet undocumented policies and procedures to create more efficiency, you are modeling important knowledge-sharing behavior.

If you work in a knowledge-hoarding culture, you have a tougher hill to climb. However, you can be the change you want to see. Sometimes, it starts with making a decision to create a learning culture within your organization, and provide time, space, and opportunity for knowledge sharing to occur. 

Not only will your learning culture and company benefit, but as this Harvard Business Review Study showed in 2014, people who hide knowledge are “17% less likely to thrive at work” than their knowledge-sharing peers. Getting ahead and gaining influence means sharing knowledge and creating positive environments for others to do so.

Show up with a solution or solutions in mind

Everyone can complain about problems in an organization, but it takes a leader to show up with solutions to problems. Getting buy-in for your solution can be even harder.
Yet, it is important to be solution-oriented when you are faced with a problem. Typically, people in an organization have a general understanding of organizational problems. What they want and need are ideas to help solve the problem – evidence that you have thought about more than yourself and your own context. This is especially true when you are working to extend your informal leadership and influence across a broad part of your company or business.

When you face a problem, begin to think about the problem in the broader context. Ask what you can do, what you cannot do, and what could be done to help solve the problem or a portion of the problem that faces you.

If you have used the methods in this blog to create the trust-based relationships needed to establish widespread buy-in for your ideas, then you are much more likely to obtain buy-in from multiple stakeholders so that your solution ideas are raised for discussion, readily defended, and more easily accepted when presented in a broader context. 

Become the Informal Leader You’re Meant to Be

Informal leaders are necessary in every organization. Many of the best people I have hired or worked with know how to exercise informal leadership, working across boundaries and leveraging relationships, communication skills, and solution-based orientation to achieve solutions that are widely adopted and accepted across multiple teams. Using the steps and skills in this article, you too can become an informal leader. 

Keep Reading

Looking to learn more about QA leadership roles and how they fit into your career path? Check out our blog post: Are You Ready for the Leap to QA Leadership?

The post Quality Leadership: Influence through Informal Leadership appeared first on Automated Visual Testing | Applitools.

]]>