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 Development
What 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 managers
Dev 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 content
It 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 job
It’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 message
Message without
popup window
title.
Place your screenshot here
ToolTip Message
Tooltip is not
visible
Place your screenshot here
Leaving Dev Message
Meaningless
Response to user
Place your screenshot here
Let’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
Agile
Changes should appear at
any point. So better code
review will provide better
maneuverability.
Process
Always 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 issue
Fix 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
Ethics
Bug 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 Defects
Max 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

Software Quality Assurance: A mind game between you and devil

  • 1.
    Software Quality Assurance: Amind game between you and devil
  • 2.
    Hello! I am TariqualHassan I am here because I love to share my knowledge. So, let’s see what’s inside the box.
  • 3.
    QA in SoftwareDevelopment What 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
  • 4.
  • 5.
    It’s easy tocode but it’s always difficult to code which is human readable.
  • 6.
    I know howto code, I can keep up with the design so why you guys are here?- Devops
  • 7.
    Why should userdo this and that? I am designing the system, so they should just use it in my way.
  • 8.
    QA guys areirritating day dreamers. They need not to code so they can come up with anything.
  • 9.
    Okay, I willhave fight with him and come up with a victory.
  • 10.
    Okay it’s verydifficult to apply this feature, let’s change it. Users can be convinced later on.
  • 11.
    I didn’t doit and it’s not my job to fix this. Someone else will fix this.
  • 12.
    2. Transformation period How Devsare being transformed?
  • 13.
    QA team interception ✣Foundfunctional issues ✣Found UI issues ✣Found security issues ✣Found usability issues Okay too much issues…. Need to fix them all.
  • 14.
    Project managers Dev teamshould fix the problems in a day, QA should finish testing in half day. Clients are waiting.
  • 15.
    Software Development ecosystem QA: Things needto be done properly. Developers: Things need to be done in any way. PM: I need the product at any cost.
  • 16.
    Dev’s Mind: I shouldprovide a confirmation message before delete this record. Shouldn’t I give an alert before saving a content It 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 job It’s an error message. It should be visible to user. I have no time for a formatted message.
  • 17.
    Common Mistakes MadeBy Developers Things need to be corrected
  • 18.
    It works inmy browser.
  • 19.
    Input Data validation.Assuming that user will always input as intended.
  • 20.
    Input Data verification.Making a checklist of what should be allowed and what should not be allowed.
  • 21.
    Bloated Response: Pagefilled 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.
  • 22.
    Deploying code withouterror. Ensure that no console error should be there.
  • 23.
    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.
  • 24.
    Designing a siteunresponsively: I am developing the site for the desktop .. why should a user visits the page from mobile?
  • 25.
  • 26.
    Creating a sitethat requires full refreshes of a page for each interaction.
  • 27.
    Not thinking thesecurity holes like sql injection, XSS, CSRF, HTTP, broken links, showing the directory structures etc.
  • 28.
  • 29.
    Validation message text,color and position
  • 30.
    Fails to distinguishamong error message, warning message and informative message.
  • 31.
    Forgot to handlethe session timeout operation for different tabs.
  • 32.
    Forgot to adoptthe localization feature
  • 33.
  • 34.
  • 35.
    Realizing the costof Bug Fixing A complex ide
  • 36.
    Realizing the costof Bug Fixing
  • 37.
    Realizing the costof Bug Fixing
  • 38.
    Place your screenshothere Popup message Message without popup window title.
  • 39.
    Place your screenshothere ToolTip Message Tooltip is not visible
  • 40.
    Place your screenshothere Leaving Dev Message Meaningless Response to user
  • 41.
    Place your screenshothere Let’s look at this
  • 42.
    Our process iseasy Develop Perform a Dev test Call for a short QA or pre-QA
  • 43.
    Let’s review someconcepts Agile Changes should appear at any point. So better code review will provide better maneuverability. Process Always 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 issue Fix 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 Ethics Bug will be there no matter how better testing is done, but it will only acceptable if the bug is not in a certain path.
  • 44.
    Probability for abug Bugs Max Defects Max Client Reported Issues Development x x-1 - PreQA x-y - - Testing ((x-y)-z)=N - N-1/N!
  • 45.
    Thanks! Any questions? You canfind me at @tariqual & tariqual@nascenia.com