SmartQA Community

Seven habits to healthy code

T Ashok @ash_thiru on Twitter

Summary


Healthy code is not about just working correctly. It is about future-proofing, maintainability, adaptability, reusability and so on. As in real life where face shines when you are in the pink of health, beautiful code also shines!

“Healthy code is not the outcome of review or testing, it is from doing simple things diligently.”

What comes to your mind when you hear the word ‘HEALTHY’?

It really is a combination of healthy mind and healthy body. So when I say ““HEALTHY HABITS”, what do you think of?

Now, let us relate to code. What is healthy code?

So what are the habits to stay healthy? Let us correlate these habits to software.

Let us reorder these seven habits …

“Healthy code is not the outcome of review or testing, it is from doing simple things diligently.”


Key trends in automation

(In this SmartBits, Shivaji Raju outlines ” Key trends in automation “. The video is at the end of this blog)

Key trends in automation are significant focus on services testing with the architecture changes coming in. With service-first approach and microservices , there is a lot of emphasis on testing the services. The other aspect is that traditionally we had a lot of test cases or automation scripts on the UI. That seems to be changing. We are trying to bring in quite a balance between different layers of testing rather than just focusing on UI.

The other trend is on the tools. We were predominantly using tools like HP UFT, Rational tools, or Selenium to some extent. The trend now is shifting towards script-less solutions like Tosca, Functionize, Mabl which has ability to build scripts faster. Some trends have been noticed on the framework front too. We traditionally had QA-driven approaches which were quite heavy. Now the shift is to use lightweight approaches or frameworks, especially in the Agile context and frameworks that integrate to the toolsets as part of the DevOps pipeline itself. The need is to ensure that the framework integrates with different build tools like Maven, JIRA or Artifactory. Those are some of the expectations when building a solution for the framework.

Again, DevOps is a significant trend now, so the expectation is to see how we could automate the continuous testing pipeline, considering that it’s not just about automating the execution piece, automate even test data or probably automate the infrastructure piece. So for provisioning infrastructure from the clouds, there are certain tools to do that and then there are trends around virtualizing services, even virtualizing databases also to ensure that some automation is brought into the data and the services layer and that is how we would achieve an end to end CI or CT automation.

#47

SmartQA Digest

Deep dive to rapidly understand an entity is this week’s beEnriched section article. What is Deep dive? It is about going deeper, by reading available spec, by exploring, and using information from past experiences to understand an entity. This is done rapidly with a sharp focus and a 360 vision in eight steps.
 
In this week’s SmartBits, Zulfikar talks about The challenges of legacy code” .
Check out the beautiful poster with quote by Bob Moawad that says “Quality begins on the inside… then works its way out.” 

beEnriched

Deep Dive into software testing

Deep dive to rapidly understand an entity

Deep dive is about going deeper by going through available spec, by exploring it, and using information from past experiences to rapidly understand an entity. This is done rapidly with a sharp focus and a 360 vision in eight steps.

Read More »

expandMind

Necessary but not sufficient book

Necessary but not Sufficient

I have been a great fan of Dr Goldratt having read all this books, my favourite being his first book “The Goal”. This book “Necessary but not Sufficient” is written as a “business novel” and shows the fictional application of the Theory of Constraints to Enterprise resource planning (ERP) and operations software and organizations using that software.

Read More »
testing quality poster Bob moawad

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

Deep dive to rapidly understand an entity

Summary

Deep dive is about going deeper, by reading available spec, by exploring, and using information from past experiences to understand an entity. This is done rapidly with a sharp focus and a 360 vision in eight steps.

The original article is at https://stagsoftware.com/dosmartqa. CLICK HERE to read the complete article.


The challenges of legacy code

(In this SmartBits, Zulfikar Deen outlines “The challenges of legacy code “. The video is at the end of this blog)

We move quite slowly compared to how the industry moves. It is like a different cog in a gearbox where one actually moves very slowly and the other one is moving really fast, but there is a need to have a proper connection in place. If you are looking at the quality of the whole system, you need to look at holistically. When integrating with the slow-moving system, how do you ensure the data moves in the right speed, right velocity and it is tested correctly?

The biggest challenge would be that, in the existing system, the data may not be good. There could be a  lot of garbage in the data because of usage of system for several years. When you are integrating with the newer technology, or a wonderful new system and post plugging in, if that expects good clean data, it is not going to happen. It’s going to be very challenging in terms of fidelity, velocity and data cleanup.

Partner talks about jQuery or possessing technologies like  ML engine. My internal team may not be able to connect with them. There are so many technologies out there, my internal team is focused on making sure my system is running operations, so that becomes the primary focus. 

Technology may be very interesting, but they may not be able to connect to what you are speaking. As a partner, we need to make sure that it is holistically tested. It is very critical to hand-hold the internal team when doing the integration pieces, during the testing time, operationalizing time and support time.

#46

SmartQA Digest

The sufficiency of test cases has always been an interesting challenge.The cliched notion of code coverage is sadly insufficient, being an unidimensional measure. “The smart coverage framework” outlines a refreshingly simple picture as a smart coverage framework.
 
In this edition of SmartBites are four snippets of brilliant advice from Sudhir, Zulfikar, Girish & Jawahar – “Have extreme ownership mindset”, “Focus on the big picture”, “Build with quality, not test after” and “Understand operating conditions & implementation to test well” as SmartAdvice #1
 

Oh, in this week’s SmartBits, Srinivasan Desikan outlines “The evolution of dev” and what it means to testing.

beEnriched

SmartQA smart coverage pic

The smart coverage framework

T Ashok @ash_thiru on Twitter Summary Coverage, an indicator of test effectiveness is really multidimensional and has not been dealt with rigour most often(excepting for

Read More »

expandMind

Necessary but not sufficient book

Necessary but not Sufficient

I have been a great fan of Dr Goldratt having read all this books, my favourite being his first book “The Goal”. This book “Necessary but not Sufficient” is written as a “business novel” and shows the fictional application of the Theory of Constraints to Enterprise resource planning (ERP) and operations software and organizations using that software.

Read More »

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

The evolution of dev

Transcript of discussions with

(In this SmartBits, Srinivasan Desikan outlines “The evolution of dev”. The video is at the end of this blog)

If you look at industrial evolution, you can classify this into four dimensions. The first evolution that happened is on the infrastructure side where individual people used to have their own PC’s and they wanted to share those individual PC’s. That’s when the Test lab was created. if you really see that dimension was really initiated by test engineers, they did the consolidation of all the machines and that was called a test lab, then over a period of time, they added some compliance requirements to it became data centre when they added to the data centre, they wanted to have more operating systems than what they have, so they created virtualisation. 

The testing folks said, let us have a quick control of all these resources, whether it is virtual or whether it is real and that became data centre. Then looking at the reliability of the test lab data centre companies decided let us host our services on those data centres so that our customers can use it using the very own processes which were created by the test engineers. That became the industrialized data centre and then cloud evolved from it. 

The cloud is nothing but something which is elastic, you put a small data centre somewhere and then you keep elongating it based on the needs based on utilization. Elasticity does not mean only expanding but also whenever there is no load bring it down that is what is cloud and after Cloud now people are actually talking about, having virtual images within virtual images which are called Dockers, containers and Kubernetes that’s one side of the dimension. That is the dimension one, which was initiated by the test Engineers. 

The second dimension which obviously was not created by the testing teams, but it has evolved over a period of time. Those days we used to have desktops then it became laptops, smaller in size then it became palmtops even smaller in size. Then it became mobile and today we are actually talking about IOT devices which go and sit in each and every appliance at home that is a second dimension of the evolution. 

If you look at the third evolution of dimension- the process delivery model,  waterfall model where strict coding is completed and only then testing was done and after that people wanted to parallelize testing and development team then became V model and V model became spiral model then spiral model became agile model. Then the agile model is becoming super lean model, which is called lean development, processes and  related things that is on the process delivery model that is the third dimension to it.

The fourth dimension to the evolutions what I have seen in the last 30 years is the customer payment model. Initially when all the desktops and other things were available in the office, they were all purchased by paying full cash. Which is a hundred percent Capex and 0% Opex. The electricity was paid by the same company. The maintenance was paid by the same company. There were no operational expenses. Everything is a capital expenditure and slowly they moved into optimal capex and Opex, they wanted to outsource some of the maintenance part of those machines therein they brought in some element of operational expenses other than a capital expenditure. Then  went to another model where there is less capex but more opex they want ,started renting out the machines from outside and after that consumption-based volumetric model evolved where , you buy a product from us and depending on the number of users you have or depending upon the number of amount of utilization those users can, we will charge you that became the consumption-based volumetric model .

The last one which is becoming predominant, now is pay-per-use ,you do not invest anything that is zero cape and everything is opex.  It is going in Uber or Ola and now the insurance is paid, the car is bought by the company and you just go use it and for the amount of time or amount of a distance you have used, you pay them.  Whenever you want, you can do it you can rent out a Mercedes today, use it as it is your own vehicle but you still need not own it.

These are the four different dimensions in the industry has evolved in my opinion.The intersection of all these four is the sweet spot all the test engineer should work on. The dimension one and the fourth the infrastructure as well as the process delivery model. Both of them are invented by the key engineers. Moving to the waterfall model to V model is actually done by key engineer. Moving from the individually kept machines to a test lab was actually initiated by that testing teams Majority of the evolution what you see in the industry. The starting point is testing and the sweet spot for the test engineers is to look at all these four dimensions and how they are going. What I told you is only the 30-year story it will continue for another 30 years or another 60 years, but these dimensions will stay but the evolutions will continue to happen. The sweet spot here is which tells you how fast we should evolve, so speed is very important.

The second thing, no investment. Everything is becoming virtual, companies will become virtual, the offices will become virtual, people can work from home and people can take jobs workloads which you call it as work load from the internet and you may not have any manager. You may not have any infrastructure your capital expenditure, maybe zero sitting at home and you will be still delivering the products and most of it what you do sitting at home would be apt testing. That is  where I think the industry is evolving.

#45

SmartQA Digest

What does it take to do SmartQA? Smart Thinking, Smart Understanding, Smart Design, Smart Plan, SmartQA Test Organisation and Smart Planning. A pictorial article on this is what this week’s beEnriched article “7 Pictures to Doing SmartQA” is.

In this week’s SmartBites “Lean thinking & Agility“, Tathagat Varma outlines how Agile inspired by lean thinking is accomplishing agility in SW development.

Isn’t it amazing that earth just goes about the job quietly, of revolving around the sun a whopping distance of 940 million kms every year? A joy it is to pause and ponder the amazing cosmic wonder, and celebrate as it commences another revolution around the sun. On this happy occasion of a new beginning, enjoy the poem that I wrote titled “Bless us all”.

beEnriched

7 Pictures to 'doing SmartQA

7 Pictures to ‘Doing SmartQA’

A mashup of three articles published as part of SmartQA digest over the last few months that outlines mindsets needed to brilliant code, tips to produce clean code and habits to speed up evaluation

Read More »

expandMind

BLESS US ALL poem

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

#44

SmartQA Digest

Great code occurs due to a brilliant confluence of clean code mindset, good heuristics/tips and  healthy software engineering habits. This week’s beEnriched section article 10 mindsets, 10 tips & 10 habits to clean code connects these using articles that were published earlier.
 
It is not a great working solution, it is not brilliant technology that makes deployment of an enterprise solution  successful, it is ‘operationalising’ that is key to success says Zulfikar in the smartbits video “Operationalising is key“.
 
Oh, this week’s SmartBites is “10 Thoughts” on Agile mindset, metrics, AI, good vs bad code, “what is technical after all” and others from ten wonderful practitioners.
 
Hope you have checked out the new SmartQA web site at smartqa.community?  Guess you have noticed that all prior digests are also available here !

beEnriched

expandMind

Black box thinking

Learning from failures .The inside story of how success really happens and how we cannot grow unless we learn from our mistakes.

Read More »
AccessibilityTesting

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

#43

SmartQA Digest

Prevention occurs due to good understanding. Detection occurs due to good understanding. Understanding of what is needed, what is stated and what is implemented. The beEnriched section article outlines two tools for doing this –  “TWO tools to aid smart understanding“.
 
Testability impacts deliverability. When it’s easier for testers to locate issues, it gets debugged more quickly, application gets to the user faster and without hidden glitches Listen to the short video “Design for testability” from Girish Elchuri in this week’s smartbits.
 
Oh, this week’s SmartBites is about “Expectations from enterprise customers and what it means to QA” from Sriramadesikan.

beEnriched

expandMind

Black box thinking

Learning from failures .The inside story of how success really happens and how we cannot grow unless we learn from our mistakes.

Read More »

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||