Monday, February 14, 2022

Model, Oracle, and Perceived Quality

 

These words are one of the most repetitive words in my blog and also in the testing community's discussion.  Nevertheless, I write a blog post on it and share my interpretation here on the understanding of it.  I came across a discussion on these words in one of the testing communities. Here is how I see it as of today with my practice of Software Test Engineering.


Model


The "Model" can be seen as a representation.  In Software Engineering, we use models as a reference to build and develop the product.  Software Testing can be leveraged when we use the models to design, build, execute and interpret the tests.  How I build the models or see models can vary each time in my work.

Today, as I write this blog post, here is how I understand a model:

  • Model is how I'm understanding
  • Model is what I'm understanding
  • Model is what I have understood
  • Model is what I have to understand
  • Model is also what I have not understood and what I am not aware
    • But, this would not be included as a part of the picture or written in the model most times
      • We tend to see the model as a working object (always?)
      • In the working object, having something not understood and not aware is not a common practice
  • A model can be a non-diagram and the organized documents or words
    • I look at The Constitution of India as a model on which I live in the Indian society

Usually, one looks for a diagram on hearing the word "mode".  I did this, that is I looked for the diagram and continue to do so.  But the model need not be a diagram always.  But, the diagram helps better in relating and understanding.

Example of models:
  • A representation understanding of me how I can broadcast YouTube live stream on Zoom
    • Here I can have multiple models
      • From a tech layer spanning to a UI layer of Zoom and then to people who are watching it on Zoom, YouTube or both
      • And, many more models like this
    • If I'm on a sales team, my model thinking on the same would be different
      • Like which platform that is YouTube or Zoom caters the content to the maximum audience I'm focusing on



Oracle


In a context-free case, I will say Oracle as -- It is a reference which I refer to learn and interpret what I'm experiencing or about to experience.  It helps me to understand and in decision making.

That said, the Oracle is not a source of truth.  It is a reference and so it is a heuristic.  If it is a source of truth, can it be a heuristic?  This is the challenge and confusion one goes through in understanding and drawing the relationship between the oracle and heuristic.  When we understand oracle and heuristic, it is simple to draw the relationship between them and know when it can serve as the other.

When heuristic is taken as a source of truth, it can fail to be a source of truth at any time.  Heuristic is a fallible way of solving a problem or making a decision.  That said, not all heuristics are oracles; and, the oracles can be used as heuristics.

In software testing context, Oracle is quoted as -- An oracle is a way to identify the problem that we experience during the testing.  It helps to identify the problem.  Maybe we use the word "problem" as we are into the context of Testing.  Testing is expected to figure out for what it is commissioned; in most cases, we take it is to find the problems.  So that definition or quote for the word Oracle in software testing context has the word "problem" with it.


Example:
The 1000 INR currency note that we had in India, was a valid and acceptable currency.  If someone asked before demonization this was accepted as truth.  But today, it is not a valid currency and this is accepted as a truth.


The 1000 INR currency note was a valid currency until 8th Nov 2016.  This currency was used in daily life transactions by people.  This is a heuristic and as well oracle.  

Today, a 1000 INR currency note is not a valid currency.  This is an oracle and as well a heuristic.  

If I go with 1000 INR currency it will not be accepted in transactions.  People will identify it as a problem if this currency note is exchanged in a transaction.  

  • Oracle: 1000 INR currency is not valid and accepted in transactions at the time of writing this post.  So not to tender 1000 INR currency in the transaction.
    • This gives an example of an oracle as a heuristic
  • Heuristic: Use the other available valid currency in a transaction.  Is there any Indian currency note that is invalid today?  What are the valid currency notes that I can use today?
    • This gives an example of heuristic as an oracle


Perceived Quality


  • We experience and experience is an emotion
  • Quality is an emotion and an experience
  • How I perceive the emotion and quality from testing or by any events/actions might not be the same to another person
    • But it is still valid and authentic because that is what I perceive and experience
Coming to the text "Perceived Quality", I have two questions:
  1. How do I perceive the quality as a tester?
  2. How the business and stakeholders perceive the quality by referring to feedback from testing?
Whose opinion and perception of quality matters?

Here is my thought for now on this:
  • As a Test Engineer, I try to provide information from my testing
    • The information with a compelling and influencing story of my testing
      • The outcome of my testing
      • The potential consequences of the outcome as I perceive
  • I have my words to share about my emotion and experience
  • Any measures to be taken and the authority to change the direction in this regard are with stakeholders and the business
    • What would stakeholders and the business perceive about quality from my testing story
      • The outcome from this perception is crucial in the larger interest than what I perceive as a Test Egnineer
The compelling and influcing way of telling the testing story is important.  The perception what the stakeholders and business make from this story, is what they see as quality in the first sight.

I say that word "perceived quality" talks about how the stakeholders and business is perceiving the quality.  And, how as a Test Engineer, I'm influencing it with my advocacy.


Example:

Let us take a scenario where the Product Owner and Sales team are looking forward to data for making the decision. 

The product owner has a good feel about how the notification works. The notifictions are received by the intended interfaces at the time of testing. 

But, did it record in analytics about how many taps were made on notification?  No, it did not record.  The Product Owner together with the sales team needs this data to plan the business decisions.

The lack of this data will the lower quality experience of notification for the Product Owner and Sales team?  

What is the quality emotion and experience perceived here by two different teams and people?