Software Quality Assurance Chip Ene, February 14, 2015
Ariane 5 Developed by the European Space Agency 10 years and $7 billion to produce $500 million satellite payload Launched in 1996
After 36 seconds
What is ? Quality: the degree to which a component, system or process meets specified requirements and/or user/customer needs and expectations. Software Quality : the totality of functionality and features of a software product that bear on its ability to satisfy stated or implied needs.
Evaluate the quality of processes used to produce a quality product How to prevent bugs from occurring Auditing procedures related to development and testing Quality Assurance
Demonstrate that the software is doing what it is supposed to do as well as the software is not doing what it is not supposed to do The goal is to locate defects and make sure that they get fixed Software Testing
Economics of Software Testing (1)
Economics of Software Testing (2) Where QA Resources are Used (the Big Bang approach)
Economics of Software Testing (3) The Relative Cost of Fixing Defects (the Rule of 1:10:100)
SDLC: The Waterfall Model
SDLC: The V-Model
SDLC Models So, what’s the problem?
SDLC: Iterative Life Cycles
Agile Manifesto
The Seven Principles of Testing 1.Testing shows presence of defects 2.Exhaustive testing is not possible 3.Early testing 4.Defect clustering 5.Pesticide paradox 6.Testing is context dependent 7.Absence-of-errors fallacy
Test Levels 1.Component/unit: verifies the functioning of software items that are separately testable. 2.Integration: test interfaces between components, interactions to different parts of the system (OS, file system and hardware) or interface between systems. 3.System: verifies that the behavior of the entire system meets specified requirements. 4.Acceptance testing
Test Types 1.Functional Testing 2.Non-Functional Testing (testing of software characteristics). 3.Structural Testing (testing of software structure/architecture). 4.Confirmation and regression testing.
Acceptance Test-Driven Development (ATDD) -Elicit examples of desired systems behavior from customers and turn them into tests that help guide coding. -Testing becomes an integral part of the development process. -Exploratory testing (critical thinking) becomes complimentary: not only what doesn’t work, but also missing features.
What is Scrum? Scrum is a lightweight framework designed to help small teams develop complex products. Scrum teams work together in short bursts of activity called sprints. “Inspect and adapt”
FBI goes Agile -The Sentinel project -3 years and $400 million later, nothing works -Agile Chief Information Officer, Agile CTO and 55 employees -One year, $30 million – project complete
The Three Roles in the Scrum 1.PRODUCT OWNER: -Holds the vision for the product -Represents the interests of the business -Prioritizes the items in the backlog -Makes sure the team understands the requirements.
The Three Roles in the Scrum 2. SCRUM MASTER: -Is NOT the team’s boss. -Scrum expert and advisor. -Facilitator. -Organizer of the scrum.
The Three Roles in the Scrum 3. TEAM MEMBER: -Responsible for completing user stories to increase the value of the product -Self-organizes to get all the necessary work done. -Creates and owns estimates -Do not think in terms of “doing my job”, but “doing the job”.
What is a User Story? A concise, written description (supported with a picture where possible) of a piece of functionality that will be valuable to a user (or owner) of the software. Detailed enough for the team to start work from, and further details to be established and clarified at the time of development.
User Story Description As a, I want to, So that/ so I can. For example: As a registered user I want to log in so I can access subscriber-only content.
Scrum Artifacts: The Product Backlog The cumulative list of desired and prioritized deliverables for the product (features, bug fixes, documentation changes, etc).
Scrum Artifacts: The Sprint Backlog The team’s TO DO list for the sprint, that has a finite life-span.
Scrum Artifacts: Burn Charts Shows the relationship between time and scope / how much scope the team has got done over a period of time.
Scrum Artifacts: Task Board
The Sprint Cycle (1): The team’s to do list for the sprint. It has a finite life-span (the length of the sprint). 1.Sprint Planning (1-2 hours per week of development) 1.What will we do? 2.How will we do it? 2.Daily Scrum 1.Daily 2.Brief (no more than 15 minutes) 3.Pointed: tasks completed/tasks expected to complete/obstacles.
The Sprint Cycle (2): The team’s to do list for the sprint. It has a finite life-span (the length of the sprint). 3. Story Time or Backlog Grooming (one hour per week, every week). Improving the stories in the product backlog. Define and refine Acceptance Criteria. Story Sizing (estimation) 4. Sprint Review (half to one hour per week of development) Public end of the sprint, where all shareholders are invited Demonstrate the stories that did get done 5. Retrospective Process improvement: what was learned during the sprint, and how that learning can be applied to the next sprints.
Bug Reporting Lifecycle
Customer Reported Defects (CRD) Formalized approach: -Timely resolution -Documented -Tested -Used as metrics for QA activity -Customer Service
Quality is everyone’s responsibility.
Thank You!