quality everywhere - computer scienceup3f/cs3250/slides/apt-qualityeverywhere.pdf · redux, react,...

45
Corey Vaudo Conrad Rybka UVA Software Testing - Fall 2019 How quality fits in every step of the software development process Quality Everywhere

Upload: others

Post on 19-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

Corey Vaudo

Conrad Rybka

UVA Software Testing - Fall 2019

How quality fits in every step of the software development process

Quality Everywhere

Page 2: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Agenda

Who We Are Defining Quality Quality Everywhere Q & A

Page 3: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

3

Who We Are

Page 4: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

4

Mastercard Data & Services

Mission

Help drive evidence-based business decisions

Clients

Deployed globally by over 300 organizations

Expertise

Combine business strategy, math, and large databases to inform decisions

Product

Cloud based software platform utilizing same underlying technology across industries

Page 5: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

5

Enabling business experimentation

Test & Learn

Page 6: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

6

Promotion Planning – is my promotion driving traffic or just eroding margin?

Menu Development – what entrees should I remove from my menu? What should I add?

Market Basket Profiling – How do different customers react to a promotion? How can we target promotions by customer segment?

Customer Incentive Programs – what rate should I offer on a CD to a new customer?

Network Planning – where should we build the next Holiday Inn?

Online-to-store Advertising - how much does online advertising affect my in-store sales? Do online sales cannibalize in-store sales?

Business experiment examples

Test & Learn

Page 7: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

7

Technology

Big Data

• Host over 500 individual SQLServerdatabases

• Host over 1 PB of data

• Conduct “sku” level analysis for the world’s largest retailers

Analytics

• Hold numerous patents for advanced analytic techniques

• Utilize both leading statistical packages and develop in-house algorithms

Web Development

• Host software entirely over the web utilizing latest front-end technologies (e.g. Redux, React, etc)

CI / CD

• Deploy code multiple times per day

• Run tens of thousands of tests daily

• Utilize git, Jenkins, nUnit, Chef, Selenium & numerous other world-class “testing & deployment” technologies

Our approach requires expertise in numerous areas

Page 8: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

8

Defining Quality

Page 9: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Stereotypical approach to quality

9

Product Management team develops “requirements”

Engineers build software to “spec”

QA team confirms software is high quality

Software delivered to users

Page 10: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

10

Continuous IntegrationAnalytic Accuracy

LicensingAlerting

Usability

Reliability

Regression Testing

Dogfooding

Page 11: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

11

Quality Everywhere

Page 12: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

12

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

Page 13: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

13

Prototyping

Quality in the requirements process

Page 14: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

14

Usability Sessions

Quality in the requirements process

Page 15: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

15

Requirements Testing

Quality in the requirements process

Page 16: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

16

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

Page 17: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

17

Pull Requests and Code Reviews

Quality is shared amongst all developers

Page 18: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

18

Pair Programming

Quality is shared amongst all developers

Page 19: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

19

Test Driven Development

Quality is shared amongst all developers

Add Test

Watch Test Fail

Write CodeRun Tests

Refactor

Page 20: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

20

Page 21: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

21

Continuous integration tools ensure that all changes are merged and tested together frequently

Code is “integrated” with every commit

Page 22: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

22

Page 23: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

23

When you fix one bug, you introduce several newer bugs

Automated regression testing

Page 24: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

24

Manually test only once, test automatically forever

Automated regression testing

Page 25: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

25

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

Security Testing

Page 26: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

26

Static and dynamic code analysis

Vulnerability scanning

Page 27: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

27

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

Performance Testing

Page 28: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

28

Front-end page load tests

Performance testing

Page 29: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

29

Analytic code performance monitoring

Performance testing

Page 30: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

30

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

Page 31: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

31

Server consistency is a key driver of quality

Quality through configuration management

Page 32: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

32

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

Integration Testing

Page 33: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

33

Test against live versions of the application

Front-end integration tests

Page 34: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

34

Can the application perform under significant load

Load testing

Page 35: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

35

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

Monitoring and Alerting

Page 36: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

36

Extensive monitoring of production systems minimizes downtime

Monitoring and alerting

Page 37: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

37

RequirementsGathering

Development

ContinuousIntegration

Regression Testing

Servers

Analytic and Front-endTesting

Usage

User Feedback &Reporting

Page 38: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

38

Extensive test planning and review leads to more effective testing

Front-end & analytic testing

Page 39: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

39

Testing blitzes allow for testing from multiple perspectives

Front-end & analytic testing

Page 40: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

40

Analytic validation is essential to providing a trustworthy tool

Front-end & analytic testing

Page 41: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

41

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

Page 42: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

42

Multiple deployment environments allow for internal user feedback

Internal usage

Page 43: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

Quality is built-in everywhere throughout the development process

43

Requirements Gathering

Development

Continuous Integration

Regression Testing

Servers

Analytic and Front-end Testing

Usage

User Feedback & Reporting

Page 44: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

44

Monitoring usage and collecting feedback helps close the loop between development teams and their clients

User feedback and reporting

Page 45: Quality Everywhere - Computer Scienceup3f/cs3250/slides/APT-QualityEverywhere.pdf · Redux, React, etc) CI / CD • Deploy code multiple times per day • Run tens of thousands of

©2

01

8 M

aste

rca

rd.

Pro

pri

eta

ry a

nd

Co

nfid

en

tia

l.

45

Q & A