daily post

Develop your API Contracts

By | January 22nd, 2020|daily post|

I know implementing the automation pyramid is hard,

And to a large extend, is not a problem with just testing practices either..

I’ve seen teams where products don’t have contracts written up properly (API contracts / JSON schemas)

Back end services are not designed for anyone other than the developer to consume..

Such places do make it hard to implement the pyramid, i.e. 70 – 80% tests at the back end,

The solution: The whole team work on developing those contracts, and then write tests for those contracts..

Easier said than done, but until you don’t have that, testing isn’t going anywhere.

#QsDaily #Automation #Testing #ApiAutomation #AutomationPyramid

Do NOT Automate regression 100%

By | January 20th, 2020|daily post|

Automation regression percentage – The metric I hate the most..

Many times the only use of this metric is to provide false assurance that we are efficient in testing.

And the ultimate goal soon becomes to automate regression 100%, which is a bad idea,

And automating just UI tests makes it even worse.

More on why not to use it and what should be done in the linked video

#RedefiningSoftwareQuality #Automation #RegressionTesting #KPIs

Data quality quick list

By | January 19th, 2020|daily post|

Data quality is one of the biggest problems with data science projects,

I’ll be talking about these at the #AutomationGuild, here’s a quick list:

– Accuracy. Is the data accurate in the context to be used

– Validity. Is the data fresh enough, still valid?

– Consistency. Data from different sources / time frames matches

– Completeness. No parts of data are truncated / missing

– Uniqueness. Enough data to uniquely identify records

– Timeliness. Data being collected at the right time & processed in a timely fashion (efficient enough)

More on the conference here:

http://amp.gs/Dydu

#QsDaily #BigData #DataScience #Testing

Test data and masking

By | January 18th, 2020|daily post|

For large enterprises with many interconnected applications, generating test data can be a challenge.

Even more so for big data projects, which is where masking comes in..

Take a copy of production DB from different products around the same timeline and mask the data for GDPR compliance.

Surely easier said than done, but can be very effective.

IMHO three main requirements to build this:

1. A quick guideline to identify what data will be classified as ‘sensitive’ and ensure it’s GDPR compliant.

2. A masking platform which masks value the same way across, helping with consistent data

3. Creation and usage of test environments is efficient and fit for purpose

#RedefiningSoftwareQuality #TestData #Automation

Using mocks

By | January 16th, 2020|daily post|

One of the main reasons for flakiness in automation is test data.

Therefore use mocks to run scripts executing in the CI pipeline.

For most folks, automation scripts are executed only in nightly runs with data created on the fly.

And unfortunately these tests are mostly UI tests, another blunder.

I gave a talk yesterday in which I said – 50% of your automation scripts should run in the CI pipeline triggered on each pull request.

And all these tests should use mocks instead of real data from downstream systems / components.

(I hope it’s needless these tests are on the services / API layer..)

So don’t forget your mocks when automating.

#RedefiningSoftwareQuality #QualityTransformation #Automation

How to become a well paid tester?

By | January 12th, 2020|daily post|

How to become a ‘well paid’ tester?

I call it “The next generation” tester and here are the main skills…

Quality Engineering
– Agile practices and DevOps culture
– Ability to match testing goals with product’s goals
– Figuring out KPIs / OKRs which help ‘deliver value’
– Enterprise & Vendor management

Testing
– Risk based testing
– Defining a practical, efficient and effective test strategy
– BDD practices
– Context driven testing

Automation in test
– Algorithm design aptitude and programming proficiency
– Automation framework design
– API / UI / Mobile Automation
– OAT (Performance and security basics)

Continuous Integration
– Branching & merging
– CI tools (Jenkins / M. Azure)
– Provisioning environments Containers / VM / Cloud)

Technical Leadership- Technical acumen
– Team leadership
– Collaborating with architects- Thought leadership

Details of each in the linked article

#RedefiningSoftwareQuality #NextGenerationTester #TestersGoingTechnical

 

The Next Generation Tester Skill Set

 

 

DevOps isn’t just sexy

By | January 11th, 2020|daily post|

DevOps sounds sexy, but it’s not a piece of cake.

And certainly is not just about Jenkins..

It’s foremost a mind set to deliver at speed and ONLY WHAT’S VALUABLE.

This prioritization of what’s valuable is so under-rated, and one of the biggest cause of failure.

Working on anything that’s not priority is ‘waste’, and waste is what kills it all.

I talk about this briefly in the linked article

Picture – Slide from @Jez Humble workshop showing the ‘cost of delay’ of different features in a specific case study.  (It’s it ridiculous how much we would waste trying to implement all features there!)

#RedefiningSoftwareQuality #EliminateWaste #DevOps #Lean

My key learnings in 2019

Building Psychological Safety

By | January 9th, 2020|daily post|

I’ve been reading about psychological safety for while, particularly, how you implement it in a team.

Imagine my luck, had the opportunity to ask that question from @Jez Humber in a workshop..

What I understood mainly was: The leader’s behavior builds or destroys it.

If the leader punishes people for failing or calling out what they feel is wrong, then no matter what, the culture goes down the drain

As an example, he talked about Etsy where a person on the team broke production deployment while following the process, the person was given an ‘award’ for highlighting the problem instead of being penalized.

Link to post here:
https://www.ryn.works/blog/2017/06/17/on-failure-and-resilience

If you want your team to perform, build psychological safety.

To build that, the leaders must be seen as supportive to failures, whistleblowers, people who highlight problems instead of shooting the messenger.

#RSQ #PsychologicalSafety #leadership #HighPerformingTeams

 

 

 

Don’t start with learning Selenium

By | January 7th, 2020|daily post|

I very much dislike automation trainings starting with teaching Selenium,

For starters that’s the wrong place to do automation. One should focus more on API tests and do a handful UI checks.

Secondly, automation is a means to an end, not an exercise for the heck of it. Therefore talk about why to automate.

Thirdly, in some cases folks learning automation don’t really learn how to test well either. If your testing is bad, your automation is just going to amplfy that bad.

Lastly, without knowing how the underlying architecture of the product works, IMHO one cannot truly learn how to test well.

So next time you plan an automation training, make sure you get the fundamentals right first.

#RedefiningSoftwareQuality #TestAutomation #Training

Definition of flaky tests

By | October 23rd, 2019|daily post|

Anyone who has written automation scripts has faced flakiness, and we all hate it to our bone.

But everyone defines a flaky test a bit differently..

For me, a flaky test definition could be “a test running multiple times under the same conditions gives different results”

How would you define flakiness?

#QsDaily #automation #flakytests