Skip to main content

Testing a new software application

Testing a new application can be a challenge and a little bit daunting.

Below are a few useful tips that will hopefully help your testing, should you find yourself having a test an application that you have never used before. (These tips assume that you know about the applications main purpose and that maybe you have seen a demo of it.)

Tip 1 - Talk to the developers
Talking to the developer is a valuable resource of information about the application that you are testing. When talking to the developers you should do the following:
  • Find out how the application works
    • Developers are going to know better than most about how the application works. They will know things like the following
      • What technologies the application is built on
      • What is the architecture
      • Does the application have any configuration options
      • Areas of the code that caused them problems
  • Talk through bugs you raise with the developers
    • Going through a bug with a developer can give you insight into how the system works and also will allow the developer to explain the behaviour of the system when the bug manifested itself.
  • Ask questions
    • The developers are the people who wrote the software so they know better than anyone how it works, so......... ask questions. Whether they are about the UI or about how the code behind the scenes works, it doesn't matter. What matters is finding out as much as you can about the application that will help you with your testing. 
Tip 2 - Think about who is using it and how
Who's using the system? How are they using it? Now to get this information may require you to speak to a Business analyst or someone who know the end user, but this information can help focus your testing. If you know who is using the system you can use this information to be a little more specific in your testing approach. The same goes for finding out about how users are using the system. For example, if you find out that all of the users never use keyboard shortcuts then testing these would be low on your priority list. You could then focus your testing on using the mouse and keyboard.

Tip 3 - What value is the system adding
By finding out what value the system is adding your testing approach can change to suit this value add. So, for example, if the systems main value add is that it can notify you when cheap flights to Europe are available then you can prioritise your testing around that. Yes you should test when cheap flights to the US are available but making sure the main value add of the application is covered is more important. After all your users probably care more about flights to Europe than ones to the US.

Tip 4 - Raise all bugs
By raising everything you are going to (potentially), learn about the system. Now yes this may be a waste of time (in the short term) but when the developer/BA/Product owner looks at these issues and tells you it is not a bug, they can explain to you why. You will be amazed about how much you can learn about a system when you raise an issue that is not a bug.

Tip 5 - Don't plan too much testing
"If you fail to plan then plan to fail" - A famous (ish) quote that does hold true but not always when you are testing a system that is new to you. If you don't know the system why would you plan your testing?  How do you know what to test? What are the key risk areas? You are on a learning curve and as with some things in life just jumping in is the only way to go. Now you could plan things like tours to get familiar with the system, this is fine, but initially don't plan. Just familiarise yourself with the system.

Tip 6 - Create a model of the system
By creating a model of the system (and ideally documenting it) is a great way to aid your understanding of the system you are testing. Now your model may be wrong but you modify it and change it as you gather more information. When you have a model show it to people who know the system very well. They can help correct your model, this in turn will help you identify other testing avenues.

Tip 7 - Look at the bug tracker/Support system
Look at all of the bugs that have been raised. By looking at this you can gain an insight into the types of bugs that gets raised. Knowing the types of bugs that get raised can help you choose which areas you can focus testing on. Are there types of bugs that constantly frustrate the user? Do bugs gets raised that are not usually bugs? Is there a particular developer whose code always seems to have bugs raised against it?

The most important thing about testing a new system is gaining knowledge and trying to gain that knowledge as quickly as possible. In order to do it quickly you need to used
 all  the resources available - whether they be actual documents, people or something else.

Comments

Popular posts from this blog

Testing and Mindfulness

How aware are you? Do you live in the here and now or is your mind always somewhere else? This blog post is about Mindfulness. Mindfulness is a simple meditation and is defined as (According to Wikipedia): "The intentional, accepting and non-judgemental focus of one's attention on the emotions, thoughts and sensations occurring in the present moment" Now Mindfulness has become more popular in the west in recent years as it has shown to have benefits for people who are suffering from Depression and Anxiety. It has been around for a while and is often thought to of originated from Buddhism and some people believe it started thousands of years ago. Now modern life is hectic and I’m sure we all have lots of things going on in our lives that keep our Brains busy and trying to focus on one thing at a time can be a challenge. I can't remember the number of times I've been doing something and my mind is somewhere else entirely. Mindfuln...

How to deal with external data formats?

This blog post is in response to Challenge 7 of the #GivenWhenThenWithStyle blog post series with Gojko Adzic  You can see what the challenge is here: https://specflow.org/blog/how-to-deal-with-external-data-formats-givenwhenthenwithstyle/ Having the message format in the test would  (as mentioned in the challenge) look terrible and would be difficult to understand.  If I was to rewrite this scenario I would do something like the following: 1) Write a test that tests the validity of the payment message. So something like Scenario : payment message validity Given an account EE382200221020145685 has a balance When the system receives a payment message Then the payment message is valid.  I would store the actual payment message in another file as not to clutter the scenario file and this message would be passed into the test in the When line. The Then part of the test could cover various areas, such as: - All the correct tags are present  - The xml is valid 2) I wo...

Developer and Tester Walkthroughs

In this blog post I am going to talk through a new technique that I have started where me, the tester, and the developer, have a walkthrough of a change that the developer has made for a particular feature. So what are these walkthroughs?  So these walkthroughs are a time for the developer and tester to get together and for the developer to talk through and explain the code changes that they have made. By talking through the code, I mean the actual code that the developer has written and not a demo of the new behaviour. During this session, the tester is free to ask any questions, this could range from questions about the code to questions about the effect that the code changes have on existing behaviour.  These sessions are time boxed to 30 minutes and typically take place before the developer has raised a pull request to merge the changes into the master branch. Why do we do them? In short - to find issues before I get a release.... but the 2 main reasons are based ...