Posts

The importance of realistic data in the tests

Image
  There are many tests that we can execute in Business Intelligence (BI) systems or any system that uses uncontrolled data - extract, transform, load (ETL), queries, performance etc. In this article, I will concentrate on the data itself, and more specifically on using realistic data for the tests. Testing should be done as close as possible to the conditions that it will be used in production by the actual users. One of the keys to success in this area is the data that is being used during the testing process. Some applications use only data produced by them, like alarm clocks. Other apps use only predefined data like weather apps. Those cases are relatively straightforward. However, when your application or system uses a lot of types of data, including various external data, and sometimes unstructured data - like systems with big data, the data might be corrupted or unexpected (IOW, the code can’t handle it). However, it is not only unexpected data that might cause data integrity

Exploratory Test in Practice

Image
  A presentation I gave in QAGeekWeek 2018

Cognitive bias in QA: the curse of knowledge

Image
  According to Wiki , a cognitive bias is "a systematic pattern of deviation from norm or rationality in judgment. Individuals create their own "subjective social reality" from their perception of the input. An individual's construction of social reality, not the objective input, may dictate their behavior in the social world. Thus, cognitive biases may sometimes lead to perceptual distortion, inaccurate judgment, illogical interpretation, or what is broadly called irrationality". What does it mean? In general, we are not the logical creatures that we think we are, sometimes even when we are at the crossroad of decisions and we think we decide in a balanced manner. The problem is that we are often not aware of these biases, and therefore can not "fix" our behavior. An example of this is the curse of knowledge. The Curse of Knowledge, again from Wiki , "occurs when an individual, communicating with other individuals, unknowingly assumes that the

Inviting the customer into the tests (Sherlock's riddle)

Image
  I encountered cases in which I am proudly presented with test plans that have great coverage: each requirement has a link to one or more test cases so nothing is lost. OK, great, I say. And how does your customer use this feature? What do you mean? They ask me. You have this here feature, everything in the requirement is covered, and you added end cases, negative tests, etc. But how will the user use this feature? Here I get a few types of answers. From: 'It doesn't matter. If I cover the requirements I cover the user's behavior' to a simple 'I don't know and it is not important enough to find out'. This is exactly what Context-Driven Tests are about. You must know, otherwise, you are testing with your eyes covered. Don't believe me? See a real-life example. Therac-25: Therac-25 was a powerful radiation therapy machine. It had 2 modes: X mode (powerful X-ray) and E electron mode which was designed for therapy. The technician usually used the X mode

Automation Strategy - Part I

Image
  Fairytale, the first version: The king searches for a woman who will be able to run the household and restore the economic balance of the kingdom, which was lost as a result of the depletion of the kingdom's wealth and waste. The local miller jumps up and tells the king that his daughter is capable of turning straw into gold. Fairytale, the second version: A manager looking for a woman (or man) who can manage the company's economy and restore the economic balance that was lost as a result of the depletion of his company's treasure and the great waste on manual tests. What to do? The miller, sorry, the local provider of IT services jumps up and informs the manager that his men can turn manual checks into automation overnight. After not such a long time they come, the members of the IT services provider, full of motivation and hubris. We sit with them for a day or two, explain the product a little, a little about the tests, and give them a few days to think about infrastr

Advice for a beginner QA that starts a new job

Image
  Ask for reading material before you even start working I mean here, there is less reference to test scripts and more to product and development documents. I am sure that the manager will be able to recommend the relevant material. You may not remember everything, but key concepts and names are possible. Motivation: It will help with the explanations you get when you actually start working there. a. People tend to introduce internal concepts without explaining, but you will be ready. b. Understand the explanations about the product in the context of what you learned about the system. 2. Yes, this will impress your managers and co-workers.   Test Cases When starting to work, perform existing test cases, even if it's on the production version, if there's time. There is nothing like running tests to learn about the system (and you will probably find many things to update in the doc and/or new bugs, which is by itself an important contribution). Avoid 'I'm smarter'

The difference between client and server side tests (short)

Image
  Client-side tests are tests of everything that happens on the client side in the broad sense (ie, code that is executed on the clients and might include data that comes from or is sent to the server). Let's say WhatsApp is being tested. Client-side tests include functional tests (click Send sends the message), usability tests (use of the Send is comfortable), UI (everything looks good in different types of cases), data integrity (the information it displays is accurate), security checks (XSS can not be done), end user processes (correspondence with someone), load tests on the client itself, environment testing (mobile - interruption tests), compatibility (works on android new and old versions), management of alerts and more. For that matter, these checks sometimes cover the server side, but the focus is different. The tests are written according to the cases listed above. Server-side tests are the ones that occur on the server. Usually, there are a lot of updates here: version up