software quality assurance: a mind game between you and devil
TRANSCRIPT
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 & [email protected]