RAAMA -- I Look at You Everyday!
Note: I have not explained in detail what I mean for each node and its sub-nodes. I can talk and discuss it with you if you look for it; I'm just one email away to get started.
Curious to investigate, practice, question, explore, unlearn and learn by thinking elementally to know how I'm fooling myself.
Note: I have not explained in detail what I mean for each node and its sub-nodes. I can talk and discuss it with you if you look for it; I'm just one email away to get started.
Not every release is a critical release!
There are releases which are critical from technical and business interests. In such critical releases, most of my time is spent on understanding the technicalities of the system and the test data identification on identifying what are the priority tests. Identify and building the test data takes major chunk of the testing time. This effort has helped me, testing, stakeholders, projects and products immensely.
Looks like the word "Test Data Management" has become a buzz and marketing word. In how the word "Test Data Management" is pushed, to me it looks like the intent is missing for -- how to identify the tests and its test data?
Before talking of Test Data Management, we need to talk about the intent and goal of the test. If I have a clarity here, by being aware of the product's technical internals, architecture and its eco system, I can think of test data in a better sense. For first, the PaaS which provides Test Data Management solution has to push and enforce for learning and mentioning -- What is the intent of the test?
When I know, for what to evaluate and how should I be evaluating it, those test intent will lead me to the Test Data and its dimensions which should be vectoring the tests.
Test Data is not [equal to] a Test. Test Data is one of the variance, in fact, it is a multi-dimensioned variance that a test will [need to] have. While a test has one deterministic objective, the test data will have multi-dimensioned vectors that instruments a test.
Test Data has its role in a test, and, it is a critical role. Hence, we practicing Test Engineers talk and spend our time on Test Data in equal importance as we give our time to identifying, designing and execution of tests.
Test Data is not a test; but the test data is an expression of the test's intent. Test Data is one of the byproducts of a test. Having this clarity is important.
Note this, the test data is not the only expression of the test's intent. A test will have multiple touch points; these touch points express, advocate and can show the intent of a test. A test data is also a heuristic as a test is.
The word "management" is underrated and not attempted to understand from context where it is being spoken. How do this word sound -- "Test Data Leadership"?
In engineering, especially in the software engineering, the word "management" inherently talks primarily about design. On day-to-day operation, the management designs its strategy and approach to solve the problem and challenges.
When said "Test Data Management" in software engineering, it is about strategizing and approaching the problem of identifying and categorizing (subsets) the data to test. A kind of leadership at one layer. It has its role and critical to the deterministic outcome for a test.
In machine learning, we can see this categorization -- training data and test data. Then, is training data not a test data? It is! The training data is designed [managed] to train and this data as well identifies the problem as the training progresses.
The data which are identified, designed, categorized and collected as Test Data, are well sampled data in the context, for the intent of a test.
To conclude, Test Data Management is one of the correlation in software engineering to solve a problem; it is contextual in how and what tests and testing is executed. The different teams and organizations has their own way of managing the test data. How they do it, it is their way of doing it. We have to look Test Data Management from point of Test Engineering and not as an another buzz word to sell just as a product and business's service.
Today, in the morning session with a mentee, she asked, "I have difficulty in remembering all the HTTP request methods and what it does. How can I make it simple?"
I had the same question in the end of 2009 when I started testing the applications built using the HTTP.
When I read, I forget it, because it is not yet registered in me consciously. How to learn in a way so that it registers in me? I had this question. Especially, when I started my career, I had this challenge.
In the college days, I had formed a tricks and hacks to remember and the mnemonic was one of them. In 2008, I came across mnemonics in Software Testing. I saw the mnemonic used by practitioners in Software Testing as one of the learning techniques and to register and retrieve the learning.
I repeat my learning in multiple approaches until I understand a concept. Then I form a layer where I make it simple for me to register it, in me, and to retrieve.
I applied the same with the HTTP request methods. It became simple to me to recall and use it in my test designs when needed.
I helped myself by framing the mnemonic DOT 3P HCG in 2010. I had difficulty in recalling the HGC part. For this, I said to myself -- head, chest, and gut. That HCG became smooth in registering. Finally, I could recall all the HTTP request methods with this mnemonic.
DOT 3P HCG stands for:
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.
Today, as I write this blog post, here is how I understand a model:
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.
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?
On creating a new password be it on a web page or mobile app or desktop application or any interface, we encounter the phrase "special characters". And, we might see few characters represented as special characters. Why these characters are named "special characters", here?
When one mentions "special characters" I learn and associate a context to it. The context defines the character is special or not. If so, why certain characters are marked as special characters for the password being created?
The context of web and HTML is a journey and evolution. The web and HTML that existed 20 years back are not the same today. It has evolved and so are browsers. So the other technology i.e. desktop applications and mobile apps.
I learn the context will make a character into a special character. Then what's a special character? It is a casually used phrase for the non-alphanumeric character on the keyboard.
Few of us might debate and say -- comma, colon, plus, hyphen or minus, hash, dollar, angle brackets, etc., these are all normal characters though it is non-alphanumeric. Did people (users of the software) had special meaning for these non-alphanumeric characters in their domain of work?
But the comma, period, semicolon, hyphen, space, dollar, hash, angle brackets, etc., all have specific contextual meanings in HTML and web, and other technologies. Do you think so?!
The initial web technologies were not robust as today to sanitize characters and process as we do today. Could be, for this reason, certain characters were termed as special characters and mentioned what to use and what not to use. I'm not sure is this the reason but this could be one of the strongest reasons.
Today, the phrase "special characters" is continued to use in all major technology organization's documentation and interfaces. Is this incorrect? I don't know. It helps someone to quickly relate and let her/him decide, is what I see.
Entering a password, today we assess the strength of it. There are readily available scripts and libraries that do this job. Not sure if it was available two decades back. Other than the security aspect of having better entropy what else is the benefit of having special characters?
Say, the special characters are those which I don't see on the keyboard layout. Then what should I think of the angle bracket (< and >) that I use in an XSS payload on the web page and behind the web page? Note that the same angle bracket can be used in a password too.
Personally, I feel this is one of the good topics to discuss. It can lead to learning how we term and use the word or phrase for non-alphanumeric characters.
I don't know if this discussion is needed or not and how much it helps people who are accustomed to the phrase "Special Characters" for certain characters. But having one does no harm and it can light up the dark areas which are unseen.
The web and desktop projects in which I worked a decade back, it had the RegEx written in different languages and scripts written in Shell, Perl, and VBScript. These scripts and RegEx were used behind the interface to parse and validate certain characters' presence and absence. These characters were termed as special characters in the product and it was on par with the operating system documents for consistency. Also, there was a unique meaning and purpose for such characters here in this context.
Since these scripts and Regular Expressions were used, the characters that take a special meaning in this context were termed as Special Characters. To keep everyone who uses the product (engineers, support, and customer) be aware of certain characters, it was termed as Special Characters in the context of product and technology.
I don't know!
Look at the context where it is used and what characters are classified as special characters. Changing the phrase to another phrase or word, does it solve and ease the communication with the product's users and business? Unfortunately, not all software products might bring this change. Having different words/phrases in the system, add additional costs? What are those costs?
All I understand is when certain characters are classified as special characters, I look for
Not fixing nor refining nor refactoring certain existence looks better in few cases! As a technical person knowing what it is and not, is a need and helps.