Category Archives: Testing

What Type of Test Manager Am I?

A few weeks ago I was in a discussion with my peers and somebody asked me “hey, what type of manager are you?”. I thought about the question for a brief second and replied “I’m a manager who takes care of his people”. Now this was a very high level answer, with many facets to it.

The People

I take care of the people on my team. I listen to them, speak with them, understand their goals, objectives, and challenges, and help them achieve and overcome them.

I also stand up for the people on my team. I back them up and they know they have my support in matters where they need me. I put them in a position and situations where they can succeed.

One of the most important lessons I learned very early on in my career from my friend and very first mentors Tim Voet, is that when things get ugly, leaders protect their team from having to deal with it when they shouldn’t have to, and when praise and glory comes along, they make sure the team gets it and receives that recognition. This is something I make sure I always do.

The Team

I like to hire good, passionate, people with a positive and good attitude. People who want to learn and be part of something great. That goes a long way. I spend a lot of time with my team, coaching, and providing many of the hands on test training sessions that I teach. These are highly participatory sessions and everyone gets involved and comfortable working with each other, learning from one another, and working well in a team while exchanging test design concepts and ideas.

I teach many different skills, strategies, techniques, design mechanisms, and coach my team on how to apply them in their context.

The Practice

I’m a highly skilled context-driven test professional that has built test practices from the ground up, and help evolve test teams to be effective and provide value in innovative and highly functioning project teams. Every company is different, business goals are different, teams are different, every project is different, every software solution is different. Context matters!

Leading and Managing

I lead and coach the people on my team. I manage the test practice. Skilled software test professionals are smart, intelligent, and extremely capable people. I help people who aren’t fully there yet, get there. I help test teams be fully functioning members of software development teams. I work at companies to manage and build their test practices to add value and help improve the software solutions they deliver.

I work hard, behave and act in an ethical and truthful manner at all times. I communicate clearly and respectfully. I pride myself on professionalism and lead by example.

That’s the type of manager I am.

What Software Testing Training Should I do?

What software testing training should I do? It’s a question I’ve been asked many times. My answer? It depends on what you’re trying to accomplish. What your goals are. This wasn’t always my answer. My answer used to be a list of highly recommended (by me), challenging, practical, hands-on training courses designed to take you to the next level. But not anymore.

So why’d I change my answer? Well, for a few reasons. For one, not everybody gets super charged up hearing that type of thing, it can be intimidating. Some may immediately believe that they don’t have that type of time or energy on top of work, life, family, and other commitments to take on training courses of this nature. Others may be pressured to obtain a particular type of certification. So I went back and thought about it and revised my answer.

So what’s my answer? It depends on what you’re trying to accomplish. Sometimes companies, management, influential stakeholders in the company start rewarding or preferring certain types of software trainings like certifications. Somebody in this situation may need to take a training to keep their job, or to continue evolving in the company because those with influence are looking for a certain paper that says a person is qualified to do a job (even though they may not be). For this person, there’s a certain goal attached to the type of software training they are looking at completing.

However, if you’re looking for a software training course to make you a better software tester and to build up your skills, I recommend highly participatory, practical training courses that require you to work on solving problems and doing actual work related to the training, over those coures built on theory alone. This is how people learn, by applying what they’re learning to different contexts, including their own. I’ve seen way too many software testers who’ve taken theory based courses, have passed multiple choice exams, and who have certifications, not being able to apply what they’ve learned to real world software situations. The theory based courses have taught them one way, and one way only of how a concept applies – a best case, perfect scenario. Real world situations are far from perfect and differ in so many different ways. So even having one or two variables changed in the real world situation will stump these testers. They’ll try to apply something that turns out to irrelevant because they haven’t really learned how to use the concept.

If you’re looking at software testing training courses to make you a better tester, to evolve your skills, and take you to the next level, look for practical courses that teach you and require you to do the work and use the concepts, strategies, and techniques as part of the course. There are a few I can recommend that I won’t list here, but you can contact me and I’d be glad to refer them to you.

Remember, the more skills you have, the further you’ll be able to go, and the more valuable you’ll be.

Twenty Seventeen – Year In Review

It’s that time of year again – when I sit down, think back, and write about the year that’s coming to an end and look towards the year that’s about to begin. Twenty Seventeen was an interesting year to say the least, with both good and not so good times like most years, but the good absolutely outshines the not so good. The things I’ve learned, the application of that learning, professional & personal growth, personal health & fitness all continued to improve this year.

New Technology

This year, my team and I started working on and testing the company’s VR projects! It was a fun and exciting time for both the team and the company. To kick off the year, I spent time researching VR – the applications out there, the technology, the development platforms, the capabilities, the equipment, and what people in VR were writing and blogging about.  This, combined with examining each specific project’s context, helped us come up with an effective test approach for our VR projects. For the first retail VR project of the year, we presented our test approach and objectives to the project management and stakeholders, worked very closely with the project manager, our developers, and the UX team. So much of retail VR is visual and performance related, and a lot of it boils down to having a good user experience. We learned a lot working side by side with the UX team and our developers during our pair testing sessions – lessons that we took into account testing other VR applications during the year.

While VR is a different technology compared to the other types of software systems we test – there are aspects, test-wise that remain intact (we are looking for important quality related information about the VR application), there are also differences (how we are going to get that information). That being said, and something most skilled tester’s already know – every software system, and the situation surrounding the project is different, which impacts (or should) the approach to testing it.

We got more familiar with Unity, we were able to check out code and test difference branches as needed. The VR applications we tested were all developed for the HTC Vive, and a few for the Samsung Gear VR.

One of our VR projects ended up winning an award. You can read more about that here.

Building up my team

I hired another software tester to the team. Both myself and the VP of Technology were looking for something specific – a skilled tester with critical thinking skills, good technical skills, with a great attitude (amongst other things). After numerous interviews – we found the person!

We work in a very fast-paced environment, often with very little or no documents outlining specifications and requirements. We often need to go and seek out that information, assess priorities and risks with the PM’s, design effect tests, and carry out our tests. I am working with project management to test early and often, as part of development.

For us to be able to do good work, and good testing in our agency setting, I do different types of trainings with my team. Things ranging from mind map training, exploratory testing, test prioritization, risk assessment, test coverage, bug reporting, test reporting to name a few.

I also like to help each individual on my team improve. Every individual is different in the way they learn, in the way they like feedback to improve, how they improve, and what their goals are. I work with my team to help them improve in the areas that are important for our team to provide great service + area’s that are important to them. I think about and work with the team to help them achieve their goals. It requires creativity, and thought, but it’s fun and I get to learn a lot!

Personal health and fitness

I started biking/cycling again three years ago. This year I took it to a whole new level – I cycled for a total of 623 KMs this year! My longest rides were a 60KM ride and a 50KM ride – plus tons of other shorter distance rides. Many times during the summer, I cycled to and from work. I absolutely love cycling and it’s done wonders for my cardio and overall fitness.

I’ve also continued working out at the gym. My workout’s changed a bit this year, with more focus on cardio as well as core strengthening exercises. There are a lot of difficult and extremely challenging exercises that do not require weights which made me much stronger.

I also picked up swimming this year. I thought my cardio was great with all the cycling I did, but swimming is a entirely different type of cardio. I had a lot of fun with it.

I played badminton this year for the first time since my college days. It was still very fun and yes I am still very competitive (just ask my wife 🙂 )

BBST Bug Advocacy

I successfully completed the BBST Foundations 2.0 course a few years ago and have been looking at taking the BBST Bug Advocacy course for the past two years but with the course only being offered twice a year, the timing never worked out with some personal events and engagements on my end. Well, that’s about to change because I’ve registered for the course in 2018! I am looking forward to this and have been for quite some time now.

Gearing up for Twenty Eighteen

As this year comes to a close, I am looking towards next year. As mentioned, BBST Bug Advocacy is high on my list of things to look forward to in the upcoming year. I’ve started taking a look at Richard Bradshaw’s course on programming, java, and selenium this year and look forward to completing it in Twenty Eighteen.

A few days from now, on January 4th I’ve enrolled in a webinar by Cem Kaner: An Introduction to Domain Testing. I find myself curious to learn more about the course and domain testing.

I look forward to continuing to build up our test team at work, with new people, new trainings, new projects, and doing even more exceptional work. We have some new thing’s we’ll be implementing this upcoming year which I will be blogging about.

I really enjoy reading books and although I did read a few this year,  I’d like to get in more books in the upcoming year. There are a lot of books on my list on both the software front and the self improvement front that I will be reading.

I will be continuing having fun cycling, swimming, working out, and some badminton.

Last but not least, I look forward to continuing my journey exploring & travelling, enjoying great conversation & delicious food with the wife, great friends and family, and spending time enjoying life!

Our VR project won an award

I had the opportunity to work on a very fun, and engaging retail VR project at Valtech Canada this year, the retail VR software application for Decathlon. The version we worked on this year is the second version of the application.

The Decathlon VR application recently won an award at the 2017 Boomerang show held in Montreal, Quebec, Canada – The Grand Prix for Interactive Retail Environment for our Decathlon Virtual Reality “Camp de Base”.

You can find more information about the show here, and the article about the award we won over here.

It was a proud moment for our team, to be recognized for our great work on this application.

As the test lead on this project, I worked on the application from the very start, understanding the context and then building a test approach suitable for this type of application and with the client’s objectives for this solution in mind. My responsibility also extended to hands-on test design and testing with the team.  The timeline for delivery was extremely aggressive, but we had a great team in place, from my test team, the developers, the UX team, the project manager, and every single person that worked with us to help deliver this application.

The Decathlon VR application allows users to gear up with the technology of the HTC Vive to view and interact in a 3D world and compare tents, prices, items in three different camping environments and different weather conditions. It’s currently deployed in 14 stores, 3 countries, and 6 languages.

Adding good testers is a start but there’s a lot more

There are many factors that go into the quality of what you end up delivering to your customers. Good testing (and making informed decisions from it) is just one of them. The members on the team, the commitment to do great work, the environment for people to do top notch work, the architecture the system is built on, the development, the project management, the decision making, communication, collaboration, system testability, the situation you put your team in to succeed (or not succeed) – the list can go on and on.

Adding good software test people to your team is a great start if you’re looking to improve the testing on your team, within your company, and are interested in having your software development teams deliver great work. However, it doesn’t automatically improve your quality or testing situation.

Good testers, just like the other people on your team and in your company, need to be put in situations where they can do great work, and succeed. One of the many things a good tester will do and understands is that time and budget is always limited, but the amount of things to test isn’t. They will focus on doing the best testing, the most important testing possible in the time available, in the current situation, and present their stakeholders with a report about their testing which will include problems, risk factors, and information about the test coverage (among other things) so that the decision makers can make well informed decisions.

But when you find yourself constantly saying “we don’t have the time to test much” or “we don’t have the budget to go that deep into testing”, what you’re really saying is “we don’t have the time or budget to properly evaluate our product” which is a quote I got from Michael Bolton. When you ask your testers to just quickly check that something is working, just to confirm that a function works as it’s supposed to and go no further – it’s important to understand that there isn’t much value to that – and most good testers will tell you that.

Having good software test people on your team is a great start, but it’s not automatically going to improve the testing being done. You need to put testers in a situation where they can do great work and help the team deliver great products. Avoid restricting them in ways that impact the value of what they’re actually delivering to you in terms of information about the quality of the product under test. Don’t falsely convince yourself that just because there was some testing done, it was enough, or that it was good, or that it automatically increased the quality of what you’re going to deliver.

“It doesn’t make sense to hire smart people and then tell them what to do; we hire smart people so they can tell us what to do.” – Steve Jobs

 

Document complex test setup information

Testing systems which require complex and time consuming setup on the backend, initializing parameters, setting system conditions and flags, and using test tools can be challenging and fun, but often as testers we usually have a lot to cover and want to spend the majority of our time testing – which is what we should be doing.

Often in the chaos, we’re learning how and where to set up variables, conditions, flags, tools etc. to enable us to test our conditions and scenarios and observe what’s happening with the software we’re testing, while recording the results of our tests. During all of this, we often forgot to document and take note of the specific and complex setup required to test.

Sure we may remember how to set things up tomorrow, or the day after, but chances are, with the amount of things we’re testing, and the different types of test’s we’re doing, we wont remember them for long.

It may seem like there’s just not enough time to document complex test setup information, but taking some time to do so in whichever medium your project, team, or company uses, will save you and others on your team a lot of time and effort when it’s time to revisit the features. Take those fifteen minutes, you’ll be glad you did.

Team Workshops

During the past few years, I’ve organized, held, and participated in quite a few test team workshops to help build and evolve test skills and practices with the different teams I’ve been a part of.

When putting together a workshop, I like to consider my audience, their familiarity is on the topic, how I’ll present the topic, how I’ll engage the participants, how it can help them, and what I’d like the team to take away from the workshop. Taking the aforementioned into consideration, I’ll start putting the workshop together.

I am an advocate of highly participatory workshops where everybody is actively involved and where we all learn from each other. I believe it’s people’s interest, curiously, and their own test and project situations that often brings forth the most intriguing questions, thoughts, and comments – all which fuel the energy in the room.

Learning

I believe there’s a lot of learning that can be had listening to presentations and talks from some people. Some of these people deliver information so well, you’re often at the edge of your seat. The things you can learn from listening to a talk can go a long way.

I also believe that a great way to learn test skills in a workshop setting is by actually applying and practicing the skill as part of the workshop, with the rest of the team and participating. It’s a great way to learn, to brainstorm with others, to practice, to put your ideas into your work and then build on them while learning from others. In short, we’re learning by actually doing.

Sharing

I also enjoy having everybody, or every team share the results of their respective tasks during the workshop. It gives everybody a chance to show what they’ve done, how, what thought process they used and for them to explain it and allow their peers to ask questions. It enables their peers to learn alternative ways, or additional ways a task could have been approached, and build on what they’ve put together.

Enjoying

What’s the point of taking time away during a busy work day to attend a team workshop if you’re not going to learn and enjoy it? I find workshops are usually as great as the participants make it – especially in an open, active environment where everybody participates and learns together. Generally speaking, when people are invited to workshops and they get to actively learn, get involved, present, brainstorm and work on tasks together – they enjoy the experience, use some of the skills from the workshop in the context of their own projects, and want to attend more workshops!

2016 – Year in Review

Another year gone by and I’m glad to say that it’s been another great year of learning, overcoming challenges, achieving many goals, and doing some great, challenging, purposeful work. Sure just like every year, there were tough days, but even those days offer things to learn from. It’s been a very rewarding year on the testing side of things. I continue to work hard, and be the honest, transparent, ethical professional I take great pride in being. I continue to read, write, engage in productive conversations with some very smart and awesome people. On the blog front, I didn’t write as much as I would’ve liked to, but that wasn’t due to less learning happening, but rather me celebrating and being occupied by things on the personal end of things.

Technical side of things

This year I started worked with XCode, and different SDK’s to help test and deliver mobile applications for iOS and Android platforms. I also started working again with the command line after not using it much for the past few years. I got to see more C++ code, see and understand some Python code, understand Git a little better, fetch code commits to build iOS and Android applications locally. I also learned different ways to build applications pointing to mock servers running on my machine and how to mock different data that the application uses to allow me to test different scenarios and situations. I made better use of different tools such as Charles, Wireshark, iOS Console, DDMS, and others to help me test the integration of the different components and services that our applications use. I had the opportunity to test analytics, which enhanced my knowledge of analytics as I got to work with and test different services including Google, Adobe, and Apteligent. I continued to work on some very technical things that required me to do some research and learn more about the technology that I was testing. I continued to figure stuff out – and had fun while doing so.

Testing and leadership side of things

I am a very hands on Test Lead, and I work very closely with developers as part of an Agile team – it’s something I enjoy and look for in a workplace. I’m very glad I have it. I also lead, coach, and mentor a small group of software testers. This year I’ve done more workshops for my teams than any other year. My workshops this year covered many topics including mind maps, different ways a mind maps can be put together, test coverage, test reporting, exploratory testing, and testing missions. My workshop style is very engaging, and highly participatory for the attendees. I like everybody to be involved, to participate, and contribute – the goal is for active learning to take place. I always considered my audience when giving any workshop or training, and I’ve learned that different people have different learning styles and will learn at different paces – that is okay.

As part of my coaching duties, I also see that different members of my team learn in different ways, and that as a coach, its important for me to tailor my techniques to help different members for my team learn and improve how they’re doing things. I’m doing a lot of teaching, but I’m also getting to learn a lot while doing it. And most importantly, I am enjoying it – working with a small team of testers willing and able to learn is a big responsibility but a rewarding one as well. My job in leading the team is to help each member of my team learn, reach their goals, and become a better tester, and work together to help the team become better, more skilled, and better suited to add more value in different ways as a well-oiled test team.

2017 …

So with 2017 right around the corner, I want to continue doing great work, enhancing my technical knowledge both on the mobile and automation front, being an even better leader for the team and helping them reach new heights. I will try to blog more than I did last year – I have so much to write about! I also plan on getting more involved on the VR side of things, and may tweet and write some stuff about testing VR. I would like to attend CAST2017, so I’ll work on making that happen. I may finally enrol in the BBST Bug Advocacy course. With the course being offered twice during the year, my schedule the past few years hasn’t allowed me to do so yet. And most importantly, I’ll continue to have fun doing what I love to do.

 

How We Deliver Information Matters

I work in the software business – a lot of you reading this probably do as well. I help test, develop, and deliver software applications – and a whole lot of stuff in between. As I always tell my team, other teams, and stakeholders at my company – my team of Software Testers (me included) are information service providers.

To quote Michael Bolton – we provide quality related information to our stakeholders.

I deliver information in numerous ways – in test reports, bugs reports, emails, meetings, stand ups, slack, video calls – you name it.  Note: Now keep in mind, I deliver different types of information via different means – for example I don’t report bugs in Slack.

Many years ago I realized that how I deliver testing related information really does matter! It matters in terms of how it’s received, by whom, and what types of action is taken on it. How I write something, the wording I use, and the language I use matters. How I say something, the tone I use, and the body language I show matters.

Now imagine you’re looking to buy something that you’ll use in your home, you do your research, and finally come to a decision about the item you’ll spend your hard earned money to purchase. You’ve done your homework and are convinced that this item is absolutely amazing. You place an order and a few days later your item is delivered – but the box that arrives is wet, torn, dented and in terrible shape. You open the box and find a set of instructions about your item – but the instructions are poorly written, making it incredibly difficult to understand. Furthermore your item is wrapped in plastic that is hard to remove and after all that unwrapping, you find the item has some scratches on it. Sure the item itself may still be the amazing product you had ordered a few days earlier but lets face it – you’d probably be extremely disappointed considering it’s condition and how it was delivered.

How you report bugs – what you write, the information it contains, how you write it matters. The same goes for test reports, crash logs, information logs and how you deliver this information.

If you’re the person paying for something, whether it be a product or service – how it’s delivered will matter to you and will play a big factor in determining whether you’ll want to continue paying for it. If it’s delivered and looks sloppy, rushed, and inconsistent, chances are you won’t continue using and paying for it. On the other hand, if its clean, consistent, and you can see that time and effort was taken to deliver a quality service or product to you – you’ll likely be happy and will continue your using it.

It’s something to consider when determining good practices on how you expect yourself and your team to write bug reports, test reports, provide updates at stand ups, and other status meetings.

That being said, write and advocate for bugs well, put in time and effort into how you’re presenting your test reports, status, findings, and quality related information to your audience – because it matters and can go a long way. Eventually it will become a habit – a good habit!

 

 

Working With Testing Partners

This article was originally written for the QA on Request blog and was first published here.

Working with the right testing partner is important, but working effectively and efficiently with that testing partner is just as important. It is how you’ll be able to make the most of the service being provided to you.

When working with external testing partners, keep in mind that the really good ones don’t just think of themselves as your “testing partners”; their actions should reflect it as well. They’ll regularly communicate important testing updates and results with you, and work with you to help you get the information you need. But it’s not all just on your testing partners, there are things that you can do as well to get the most value out of testing.

Additionally, when working with your test partners – each test request, information need, client, and situation is different – meaning that what you do and to what degree, to get the most out of testing, will vary.

Communicate your information needs

Clearly communicate what it is that you’re looking for from your testing partner for each of your test requests. What does this mean? Testing is an information providing service that is designed to provide you with quality related information about your product based on your needs. Are you interested in knowing about the bugs in your product so that you can focus on fixing them? Are you interested to know the state of your product so that you can make a good decision about releasing it to market? Do you want to know how your product stacks up to your competition? Do you want to know how your product will behave during daily business usage? It’s these questions that you have – your information needs, that testing will provide you with details about so that you can make good, informed decisions regarding your product. It’s also both possible and perfectly normal that at different times throughout the development of your product, your information needs will be different, so let your testing partners know what your needs from testing are at different times within your product development lifecycle.

Testing priorities

Good testing partners will work with you to prioritize areas of your product that you require information about. Take the time to work with your partners to prioritize features and areas that should be covered. Testing can be an infinite activity but budget isn’t – it’s to everybody’s advantage to focus on the highest priority areas first. Your priorities can change as well throughout the course of a longer test period.

In the case of test requests that last a longer, there may be types of important information and bugs that testing has uncovered that gives you an insight about your product that you didn’t have before. Consequently the focus of what you’d like your testing partners to work on can change as well – let them know in these cases.

High risk areas

A good tester and test team will consider what your product is, what it’s meant to do, who your user base is, and based on the answers to these questions, can begin to define the high risk areas of your application. Nonetheless, external testing partners are often not present in product development and status meetings and may not always have the most up to date business, industry, and market information as quickly as your internal team. Work with your testing partners to review high risk product areas, and to give them this insight so that they consider it in their test design.

Now perhaps you are aware that the development of the latest and newest features of your product, which you’ve asked your test partners to focus on, has likely resulted in some important and previously functional areas of your product to become unstable or nonfunctional. In this case, let your testing partners know about this now high risk area.

Platforms and devices

With the emergence and popularity of mobile devices, and the abundance of software platforms that users will expect your product to work on, and making decisions about which platforms and devices to test on have that much more significance.  Are there particular platforms and devices that you absolutely want covered during testing? Let your testing partner know. Are you interested in learning more about platform and device market share information so that you can make a good decision about which devices to cover during testing? Speak to your testing partner and let them work with you to help provide these statistics.

Features that aren’t ready to be tested

Software product development is a continuous task and a good development methodology will often incorporate testing efforts as part of the development activity. If testing in this scenario is being done by an external testing partner, keep them in the loop about what features are not yet ready to be tested, as the developers may still be working on them. This will save you the time of having to go through bugs that aren’t valid from your perspective, but may be valid from the tester’s perspective if they are not aware of features or dependent features that are not yet ready to be tested.

Specifications documents

Are there specific requirements, specifications, or user flows that are important to your business for which you have documentation? If yes, it will be a good idea to provide these details to your testing partners so that they can account for these scenarios and provide you with information and cases where they may not work as desired.

Do your specifications documents consist of hundreds of pages? Unless for some reason there is value to have your testing partners go through it all, give them the essentials they need to do their job well – which is to provide you with important information about your product so that you can make good decisions about how to proceed with it. After all, you’re paying for actual testing, not having your test partners read tons of pages that will have no value or impact on testing, and will only eat up your testing budget. Keep in mind, each situation is different so consider your needs and what works in each particular situation.

To wrap it up

These are a few tips you can apply to improve the working relationship you have with your testing partners so that you are able to get the most of your testing budget with the information that testing will uncover about your product. Your testing partner is not just there to find bugs in your product, they should be a valuable member and contributor to your team, and help you quickly find bugs and other important things that matter the most to you.