New technologies, devices, applications and games. Digital solutions are everywhere. Someone has to design and develop them. And test them when they are ready. In my previous post I discussed the features every tester has to have. What I want to share with you today, is some information about professional knowledge you need to possess if you want to be really good at your job.

In my previous post I already mentioned the fact that the opinion about testers’ work an average person expresses has little to do with reality. As well as the fact that people usually think a tester is someone inferior / less skilled / less talented (choose what’s true in your case, dear reader) than a developer. So people I talk to about testers’ work are surprised to learn what our work really looks like. And what knowledge an average tester has to have. 🙂

The Decalogue for Good Testing

„I’m going to be a tester!”− when several years ago I spoke it out loud, I actually didn’t know what to do next. There were plenty of books, e.g. about automated tests or testing in Agile. What I really needed though, was a sort of testing encyclopedia, a compendium any tester should have to be able to say “I’m a tester”. Knowledge in the field can be found in many different sources. You have to be eager and persistent to gain it and then understand what you’ve learned and know how to use it in practice. Especially when you do it on your own, without attending any university course or training. So, please have a look at the first part of the Decalogue for Good Testing. It will help you identify areas of knowledge you have to explore to enter the profession.

1# Web technologies

DOM, which is an abbreviation for Document Object Model, is a cross-platform and language-independent convention used for representing and interacting with HTML and XHTML objects as well as with XMP documents. The nodes of each document are organised into a tree structure. We call it the DOM tree.

HTTP or Hypertext Transfer Protocol is a protocol for sending hypertext documents. It is a basic way of data communication on the Web.

What do you have to know?

You have to understand the structure of the DOM tree and know how to use. You also have to be able to use JavaScript to manipulate DOM and browsers. Besides, you should have at least basic knowledge of HTTP. It is also good to know HTML and CSS to be able to use CSS and Xpath selectors.

2# Browsers

If you work with web technologies, you need to know all about browsers. Firefox, Chrome, Safari, IE or Opera – using them has to be your everyday practice, natural and straightforward.

What do you have to know?

As a tester you have to master at least one of them, which means you should be able to use 100% of its potential and know what to do with developer tools, keyboard shortcut keys, etc.

3# Tools

Developer tools make your work much easier and let you do your tasks much faster. With tools you will be more efficient and testing will become a more pleasant job. The following are just a few tools a good tester should know how to use:

  • Fiddler – a Web debugging proxy (HTTP) for any browser, system or platform. It lets you follow traffic between your computer and the Internet and see what happens when you click anything on a website.
  • Firebug – if Firefox is your favourite browser, you should know this extension. It’s an improved version of developer tools.
  • Selenium IDE – it’s a simple web app testing tool allowing you to record and perform simple tests even if you don’t know any scripting language. The tests recorded with the use of Selenium IDE can be run in most browsers. Selenium is supported by Microsoft Windows, Linux and Macintosh.

4# Automated tests

Anyone patient enough and able to think logically can be a „clicker”. Out of the box approach and willingness to work in general can be helpful as well. But if you want to be a real wb app tester you have to learn to write automated tests. No matter which language you use to write them, you have to remember some basic rules according to which automated tests must:

  • be easy to read, which means they have to be written in such a way that any member of your team should be able to tell what a test does and how. Even if it was written a long time ago.
  • be easy to maintain, which means any modifications should be straightforward and should not require a great amount of work.
  • be easy to perform, which means they should be short and simple. Any test that is supposed to check 3 functions should be split into 3 separate tests.
  • always begin from a fresh start, which means you have to remember to clear your cache and delete cookies. It’s a must do in automated testing. If a user or contents of a shopping cart are saved in your cache, the result of your test may be distorted.
  • never interfere with other tests, to avoid distorted results. A negative result should always signal a functional error, not an error in code.

What do you have to know about automated testing?

Checking all possible options takes time and costs money. That is why replacing reproducible test cases (going through both positive and negative test scenarios) with automated tests is a good idea. A well-written automated test doesn’t need your supervision. You can run it just before you leave the office and leave it till the next morning. Such a solutions allows you to reduce time needed to test an app and you won’t get bored to death testing the whole thing manually over and over again. 😉

And there is more to it 🙂

Today I presented just 4 out of 10 key areas of knowledge any tester should learn, understand and know how to use what they’ve learned in practice. At the beginning they may seem difficult and not very intuitive. I use these technologies and tools every day and I can tell you that if you want to master them, you simply have to get to know and… like them. I encourage you to explore the topics on your own.  The next part of the Decalogue – coming soon. Stay tuned!

Software Tester at Aspire Systems Poland. Agile believer, following the Agile manifesto both in her professional and private life. Passionate about databases and IT project management.