Deprecated: Function create_function() is deprecated in /home/qualit96/public_html/wp-content/plugins/revslider/includes/framework/functions-wordpress.class.php on line 258
Ali Khalid, Author at Quality Spectrum - Page 8 of 43

alikhalid

About Ali Khalid

This author has not yet filled in any details.
So far Ali Khalid has created 426 blog entries.

Automation training start with learning testing

By |2020-07-02T20:09:51+05:00July 2nd, 2020|daily post|

Automation training doesn’t start with learning automation tools,

It start with learning testing fundamentals!

Learn what to test, where in the tech stack to test and how to test.

Next we can talk about what to automate, where and how.

The unfortunate part of many folks lerning automation – their training starts and ends with Selenium

And I say this all the time, you cannot pick a worse place than Selenium with Java to begin with.

Nothing against Selenium or Java, brilliant library & language but that’s not the starting point.

Most people feel what they lack is automation skills, unfortunately often engineers lack “Testing skills”.

If that’s not fixed, you’ll get garbage in and garbage out.

#RedefiningSoftwareQuality #Testing #Automation #TestAutomation #ContinuousTesting

Why flat org structures

By |2020-07-01T19:51:04+05:00July 1st, 2020|daily post|

Some background to ‘flattening the structure’

In the industrial revolution and mass manufacturing era, companies operated with lots of workers doing remedial tasks.

We had hundreds of people doing atomic jobs and funneling up progress & information up the ladder.

After information consolidating across many hierarchical structures, ‘management’ took decisions and sent instructions down the corporate ladder

In the internet age, we don’t have much remedial work left in many places & the speed of operation has phenomenally increased

Workers have been replaced with ‘knowledge workers’

OR ‘Smart creatives’ who are tech savvy, business savvy and are closest to the ground reality

Therefore decisions should not be made at the top, rather by the engineers closest to the situation

Which renders no need to ‘manage’ people and take decisions for engineers, rather just ’empower’ the engineers to take decisions.

Hence the necessity of flatter org hierarchies and Servant leadership

#Transformation #AgileTransformation

#ServantLeadership

DevOps Test Strategy Mind Map

By |2020-08-09T22:19:09+05:00July 1st, 2020|Management|

Test strategy document problems

In the old days of waterfall, we were extensive on documentation and had hefty test strategy documents as well. Traditional test strategy documents used to have mountains of information, a lot of which wasn’t really used practically. They were all great writing in theory but hardly followed.

As agile came along, many teams started to pivot towards not writing a test strategy at all. Perhaps one assumption was being agile means no documentation. This never sit right with me and wasn’t happy with the approach. Ever felt like you have a lot of ideas in your head, but since can’t see them on paper, your sixth sense keep’s telling you ‘I’m missing something’, that’s what it was.

What was needed

Having no test strategy document, important ingredients to bake quality into the products was difficult. So to me it was always clear we needed a test strategy, but having done the old school test strategy documents, I knew something like that was of no use either.

I started listing what I’d like an ideal test strategy document to be like. It should help with:

  • Defining the direction and vision of testing
  • Consolidate quality related attributes we need to consider
  • What to focus on testing, where in the tech stack & how?
  • What to automate and how?
  • Some practices / references engineers can refer to in day to day practice

These would give the whole team a sense of alignment towards a common goal, vital to bake quality into the product and not try to ‘gauge’ after the fact.

DevOps Test strategy

After transforming team’s quality practices for a while, I noticed certain things which I kept on preaching to most team and end up writing them in some shape or form. Meanwhile a dire need of a good training program was needed as well to train engineers on testing and automation practices. While designing the program I saw a perfect opportunity to design a course for building a test strategy for agile teams, and that’s when I came up with the “DevOps Test Strategy Mindmap”.

The mind map depicts the target state for common web applications running in an enterprise and how to plan your quality practices to get there. The purpose was to give teams a sample target state and develop one according which suits the team’s needs.

Mind Map

An important aspect of this test strategy was it should be easy to update and maintain. I love mind maps the most among all the different documenting techniques I’ve used, therefore made one for the test strategy. It helps to keep it:

  • Concise – To the point information
  • Complete – Covering important areas teams transforming into DevOps ways of working should consider
  • Easy to read & maintain – In the form of a mind map so readers can see the whole landscape at once

To get the high-resolution version, click here:

DevOps Test Strategy Mindmap

I hope you find It useful for your teams. Feel free to share your experience about it in the comments.

Java Or Javascript for automation

By |2020-06-29T19:37:30+05:00June 29th, 2020|daily post|

Which language for automation – Java or JavaScript?

There is NO silver bullet answer and it might not even be these two (Python or Ruby)

Here’s what I have used historically:

  • Browser automation : Javascipt
  • Interacting with the DOM is easier,
  • Using AUT exposed methods is easy
  • Scripting languages quicker to write and lesser code
  • Popular tools: WebDriver, Cypress, NightWatch

Services automation: Java (Where prod code is in Java)

  • Same language as production code – critical for component tests
  • More options for mocks
  • Can reuse prod code (e.g. POJOs)
  • Extensive community support
  • Popular tools: RestAssured, WebTestClient

Again, no silver bullet answer – need to consider various factors to decide for your team.

#TestAutomation #Testing #Programming

PI planning for architecture runway

By |2020-06-28T22:05:05+05:00June 28th, 2020|daily post|

Planning you PIs (Program Increments) is crucial (One PI typically spans for 6 sprints).

While planning architectural road maps for quality initiatives across different teams, I’ve noticed a couple of blind spots:

1. Planning for feature deliveries and enablers / architecture road map are very different, planning them both the same way does not work.

2. Test and learn – I am the planning type, plan so extensively and as soon as the rubber hits the road, all plans go up in the air. Have a long term vision, but how to get there is fluid – plan that for just ONE PI

3. Prioritizing enabler features. Depending on what your structure is, getting tech debt prioritized can be the toughest job. Try to get an agreement around that.

DevOps Enablers

By |2020-06-23T19:16:05+05:00June 23rd, 2020|daily post|

DevOps is a mindset change.. BUT

Also requires a hell lot of enablers:

CI/CD:

  • CI tool in place (Jenkins, TeamCity..) with hooks to SCM, to creating environments, build & deploy the product, run the tests, and quality gates
  • You may need multiple pipelines

Environments:

  • Capability to spin up environments (Docker / OpenShift / Cloud..) on demand with desired configurations & tear them down

Static analysis:

  • E.g. SonarQube or any other static analysis

Test data:

  • Mocks / stubs for tests running on lower levels (unit / component)
  • Synthetic data generation on demand
  • Data creation and clean up routines

Test Automation:

  • Unit tests, component tests
  • API tests, contract tests, UI tests

…to mention just a few high level enablers.

The best part – engineers and product owners need to have confidence in all this.

So if you want to transform the way you release your product, have a plan for both:

  • mindset change and how to develop all the enablers you need
  • INCREMENTALLY (waterfall like DevOps is of no use..)

#RedefiningSoftwareQuality #Transformation #DevOps

Swagger for API documentation

By |2020-06-21T19:35:05+05:00June 21st, 2020|daily post|

Documenting your APIs behavior / contract on a confluence page enough for building common understanding?

In my experience, these pages often remain as static pages. The code keeps changing and the documentation does not.

I prefer using swagger to document workings of the API and use that as a reference.

This way you have a living document and no need to keep updating a static page.

Oh, and just to add, functional & contract tests are going to ensure if your building your services properly.

#RedefiningSoftwareQuality #TestAutomation #APIs #Swagger

Complexity vs configurability

By |2020-06-20T20:07:25+05:00June 20th, 2020|daily post|

A key area to consider while working on automation frameworks:

Complexity vs configurability.. and their inverse relation

To support more and more features, and make a solution scalable you’d want it to be more configurable

However as you make it configurable, it is bound to become more complex.

Sure using design patterns will ‘reduce’ the complexity, but inevitably will become complex as you make it configurable

There’s a balance you want to maintain between the two.

E.g. using libraries like cypress & robot you’d be able to create tests very quickly, but you loose control on certain configurability aspects, if you can live with them these are great

So it’s going to depend on your situation, But the principle remains..

#RedefiningSoftwareQuality #TestAutomation #AutomationArchitecture

Automation engineers skills

By |2020-06-19T19:22:36+05:00June 19th, 2020|daily post|

Hiring for automation engineers / looking for a position?

Here is my list most important skills you consider / learn:

1. Programming aptitude. Can think and design algorithms, language does not matter.

2. Testing Acumen. Practical experience of developing and using heuristics & identifying risks.

3. Attitude. Enjoys solving problems.

4. Automation exposure. Have an understanding of typical pitfalls in automation frameworks and how to fix them.

Importan point: Don’t necessarily look for someone / stick to any one langauge / tool. Technology is bound to change.

#RedefiningSoftwareQuality #TestAutomation #Hiring

Avoid emails

By |2020-06-17T19:51:28+05:00June 17th, 2020|daily post|

Who feels most emails are a waste of time?

FYI emails, cc’ed emails, bcc’ed emails, the long legal contract like emails, the confusing email with half the department copied in…

There are many reasons of this, most have to do with ways of working

Sometime no one wants to make a decision and let the focal point to keep spinning like a merry go round

Build a culture of test and learn, so people safe making decisions – Psychological safety

Also try to connect to people / have a quick group discussion as much as possible instead of long emails with a dozen people copied in.

#Transformation #Agile #HighPerformingTeams

Go to Top