240 likes | 424 Views
Software Quality & QA Management. Jatin Parekh Sr Dir of QA, Visa jparekh@visa.com. What is Quality. Fitness of use: Quality means the product or service does what it is expected to do Customer expectation: Quality is exceeding the customer expectations. Quality is delighting the customer
E N D
Software Quality &QA Management Jatin Parekh Sr Dir of QA, Visa jparekh@visa.com
What is Quality • Fitness of use: Quality means the product or service does what it is expected to do • Customer expectation: Quality is exceeding the customer expectations. Quality is delighting the customer • Competition: How company’s products or services compared to competitors and compared to those offered by company in the past.
Benefits of good quality • Customer loyalty • Strong brand • Command premium price • Reduced cost • Cost of maintaining • Customer support • Attracting and retaining employees
Quality Characteristics • Ease of use • Simplicity of design • Available • Reliable • Safe - secure • Performance • Responsive • Maintainable - ability to make changes quickly
Software Quality Attributes • Software performs as defined by accepted requirements (external quality) • Correctness (behaves per spec) • Integrity (data integrity) • Usability (ease of use) • Efficiency (system resources) • Reliability (mean time between failure
Software Quality Attributes (cont) • System structure is open to change over time (internal quality – what users don’t see) • Maintainability (cost of correcting errors) • Testability (cost / ease of testing) • Flexibility (cost of product modification) • Reusability (cost of transferring a module to another application) • Efficiency (coding efficiency, system resources) • Capacity / Scalability (ability to serve at peak load) • Security (encryption / malicious injection; OWASP) C
Quality control vs Quality Assurance • Quality Control: The observation techniques and activities used to fulfill requirements for quality • Design / code review, Change mgmt / release process,Measurements and metrics • Quality Assurance: The planned & systematic activities implemented in a quality system so that quality requirements will fulfilled • Test strategy, test execution, defect mgmt, etc.
Software Testing • Unit testing • Functional testing (use cases, API) • Black box testing (end user) • Boundary testing • White / grey box testing • Testing with mock components • Internationalization (I18N) / Localization L10N • Integration / end to end testing • Usability / UI testing • Installation & upgrade • Regression testing
Software Testing (contd) • Rollback / recovery & Failover • Security -Open Web App Security Project (OWASP) • Reliability & robustness (e.g. error handling, protocol conformance) • Performance (bottlenecks / memory leaks / cpu usage responsiveness) • Scalability / stress / volume / capacity • Compatibility (e.g. DB changes with old code) • Migration • Documentation (Help / User’s manual
Software Test Category • Build verification testing (BVT) • User acceptance testing (UAT) • Regression testing • Smoke / sanity testing • Ad hoc testing • Alpha (internal users) / bug bash • Beta testing
Testing tools • Test case management tools • Testing tools • Commercial / open source tools • Customer tools / utilities • Automation tools (e.g. Selenium for UI automation) • Test framework • Execute scripts calling multiple tools • Ability to configure env • Ability manage test data • Schedule tests • Reporting • Manage results • Measurement tools (code coverage, static analysis tools)
QA Activities • Planning • Overall test strategy in test plan document • Review use cases & spec • Test case generation • Test env setup • Tools development • Automation script development • Test execution • Defect logging and verifying • Test results review • Release checklist
Software Industry / Technology Trends • Shift from Installed software to software delivered as a service (SaaS) • Vendor can upgrade software frequently • Shift from physical infrastructure to cloud infrastructure • Improved scalability • Desktop/PC computing to mobile / wearable devices • Need for software to provide consistent look/feel • Security • Data in transit / at rest • Govt regulations
Water Fall vs Agile Method • Water fall • Final product is well defined • Design, development, & testing is done in sequence • Clients won’t have the ability to make change • Agile • Allows for making changes after planning • Ability to react to competition • Development & testing is done in parallel and completed in each sprint, typically 2 to 4 weeks. • Product can be launched at the end of every sprint • Ideal for SAS / web products.
Agile Methodology • Scrum is software development process • Daily standup of a small self contained team • 4-6 dev / 2-3 QA / Product owner / Scrum Master • Sprint retrospective and planning Core Agile Process
Agile Methodology & QA • Frequent releases (continuous delivery) • Upgrade features piecemeal • Different behavior for diff users (A/B testing) • Reliance on communication rather than documentation • Development and testing hand in hand • Think about testing before code development • Continuous integration testing • Regression testing in <2 days • ~ 100% Automation is Key to Success
Managing Quality • Manage Project Quality: Quality Control and Quality Assurance • Full time job for large, complex systems • Establish organization’s quality procedures & standards • Select appropriate procedures and standards based on project scope • Ensure that standards are followed
Managing Quality (contd) • Project planning • QA project plan encompasses test strategy plan, resource plan, execution plan, checklists • Project tracking, Status, Reports • Tools and methods • Build vs buy • Cost of quality • Tradeoff in the midst of time / resource constraints • What to test, when to test, and how much to test
Managing Quality (contd) • Metrics & Measurements • Test execution monitoring • Defect trends • Code coverage • Performance measurements • Defect management • Defect Triage • When to push for fix and when to push back
Role of QA Lead • Manage relationship with stakeholders • Product managers, Project managers, Development, IT, Ops, Customer Care, Clients, other QA teams • Negotiations (timeline, resource, expectations) • Establish win-win situation • Organization of the team • Project based • Matrix organization • Geographical based • Anticipate & manage change • Metrics driven approach for decision making
Role of QA Lead (contd) • Key responsibilities • Owns the quality of a release • Recruiting • Goals setting • Coaching, motivating, & conflict resolution • Challenge high performers / manage low performers • Communication • Manage remote employees • Feedback & Reviews • Honesty & fairness
Recap • Roles & responsibilities of QA in Org • Agile / rapid deployment cycle (1 to 4 wks) • Automation & Tools • Software development / programming experience • Offshore and onshore delivery • Startup vs Established companies • Documentation, schedule, level of quality • Perception of QA in Org
Career in QA • Key traits: • Software development & programming knowledge • Ability to troubleshoot • Wanting to know how things work end to end • Curiosity: ask questions & be proactive • Communication • Wanting to break things • Managerial vs Technical track