Software Quality Assurance: A mind game between you and devil

Preview:

Citation preview

Software Quality Assurance: A mind game between you and devil

Hello!I am Tariqual Hassan

I am here because I love to share my knowledge. So, let’s see what’s inside the box.

QA in Software DevelopmentWhat is quality?Who we are?Why we are doing

IEE Glossary:Degree to which a system, component or process meets specific requirements and customer or user needs or expectations

ISO Definiton:The totality of features and characteristics of a product or service that beat on it’s ability to satisfy specified or implied needs

“Set of systematic activities providing evidence od the ability of software process to produce a software product that is fit to use” by G.Schulmeyer and J.McManus, Software Quality Handbook, Prentice Hall, 1998

1.Transition period

What Developers usually think?

It’s easy to code but it’s always difficult to code which

is human readable.

I know how to code, I can keep up with the design so why you

guys are here?- Devops

Why should user do this and that?

I am designing the system, so they should just use it in my

way.

QA guys are irritating day dreamers. They need not to code so they can come up

with anything.

Okay, I will have fight with him and come up with a victory.

Okay it’s very difficult to apply this feature, let’s change it.

Users can be convinced later on.

I didn’t do it and it’s not my job to fix this. Someone else

will fix this.

2.Transformation period

How Devs are being transformed?

QA team interception

✣Found functional issues✣Found UI issues✣Found security issues✣Found usability issues

Okay too much issues…. Need to fix them all.

Project managersDev team should fix the problems in a day, QA should

finish testing in half day. Clients are waiting.

Software Development ecosystem

QA: Things need to be done properly.

Developers: Things need to be done in

any way.

PM:I need the

product at any cost.

Dev’s Mind:I should provide a confirmation message before delete this record.Shouldn’t I give an alert before saving a contentIt work’s in my browser.UI can be better.

Error message should not be propagated to user.

A Dev’s Mind

Dev’s Devil Mind:Ohh… it’s not your job.

Users are not dumb. They should get this point.Why user use that browser. He should use like mine.UI is not my task. It’s the designer jobIt’s an error message. It should be visible to user. I have no time for a formatted message.

Common Mistakes Made By Developers

Things need to be corrected

It works in my browser.

Input Data validation. Assuming that user will always

input as intended.

Input Data verification. Making a checklist of what should be allowed and what should not

be allowed.

Bloated Response: Page filled with high quality image and scaled down with the use of ‘img’ element. Files linked from the page(css and js) are large. Source

HTML markup is complex and extensive.Page rendering should be slow.

Consider the total cost for a request and response.

Deploying code without error. Ensure that no console error

should be there.

Writing forking code: Developer may write codes to respond each possible

scenario.The code becomes a heap of if statements, forking in all sorts of

directions.If a new version of the browser has come, then management of those if

blocks becomes very difficult.

Designing a site unresponsively: I am

developing the site for the desktop .. why should a user visits the page from mobile?

Missing the accessibility feature

Creating a site that requires full refreshes of a page for

each interaction.

Not thinking the security holes like sql injection, XSS, CSRF, HTTP, broken links, showing the directory structures etc.

Mandatory field remarking

Validation message text, color and position

Fails to distinguish among error message, warning

message and informative message.

Forgot to handle the session timeout operation for different

tabs.

Forgot to adopt the localization feature

Common spelling and grammatical errors

3.Evolution and revolution

I am changed now!!!

Realizing the cost of Bug Fixing

A complex ide

Realizing the cost of Bug Fixing

Realizing the cost of Bug Fixing

Place your screenshot here

Popup messageMessage without popup window title.

Place your screenshot hereToolTip MessageTooltip is not visible

Place your screenshot hereLeaving Dev MessageMeaningless Response to user

Place your screenshot hereLet’s look at this

Our process is easy

Develop

Perform a Dev test

Call for a short QA or

pre-QA

Let’s review some concepts

AgileChanges should appear at any point. So better code review will provide better maneuverability.

ProcessAlways follow a process. Make it tuned for a perfect fit to the team. Every process should NOT fit every team

Bug Prioritization Learn how to give priority to a bug. Bugs should be prioritized.

Fix the core issueFix the core issue which causes the bug scenario rather than fix it in a temporary manner.

Freeze your code Code freeze should be there before deployment operations

EthicsBug will be there no matter how better testing is done, but it will only acceptable if the bug is not in a certain path.

Probability for a bug

Bugs Max DefectsMax Client Reported

Issues

Development x x-1 -

PreQA x-y - -

Testing ((x-y)-z)=N - N-1/N!

Thanks!Any questions?

You can find me at @tariqual & tariqual@nascenia.com

Recommended