Testing Theories & Methodologies

Post on 01-Jul-2015

160 views 0 download

transcript

The Agile Attitude

*

*

*Scrum / Agile

*Large Scale Transformation

*Team

*Management / Leadership

*Agile Testing / Test Automation

*…

Software testing

-is an empirical

-technical

-investigation

-conducted to provide stakeholders

-with information

-about the quality

-of the product or service under test

Quality

* is value

* to some person

— Gerald Weinberg

*Note the inherent subjectivity

*Note that different stakeholders will perceive the same

product as having different levels of quality

* Testers look for different things

–for different stakeholders. . . .

To know how to test something, you

must understand who the stakeholders

are and how they can be affected by

the product or system under test.

*

• Users

• Programmers whose code interacts with this code

• Maintenance programmers

• Technical writers

• Trainers

• Tech support staff

• Translators

• Marketers

• Investors

Stakeholders (Examples)

*

How well software is

designed

How well the software

conforms to that design

*

Software Product Quality

Conformance to requirements or program specification

Scalability

Correctness

Completeness

Absence of bugs

Fault-tolerance Extensibility

Maintainability

Documentation

Source Code Quality

Readability

Ease of maintenance, testing, debugging, fixing, modification and portability

Low complexity

Low resource consumption : memory, CPU

Number of compilation or lint warnings

Robust input validation and error handling, established by software fault injection

*

Testing Method

White Box Testing

• API Testing

• Code Coverage

• Fault Injection

• Mutation Testing

• Static Testing

Black Box Testing

• Equivalence Partitioning

• Boundary Value Analysis

• All-Pairs Testing

• Fuzz Testing

• Model-Based Testing

• Traceability Matrix

• Exploratory Testing

• Specification-Based Testing

Grey Box Testing

Testing Level

•Unit Testing

•Integration Testing

•System Testing

•System Integration Testing

•Regression Testing

•Acceptance Testing

•Alpha Testing

•Bata Testing

Non-Functional Testing

Performance Testing & Load Testing

Stability Testing

Usability Testing

Security Testing

Internationalization and Localization

Destructive Testing

*

Software can fulfill the objective function

The performance under certain workload

Software can continuously function well in or above

acceptable period

Easy to use and understand

Prevent system intrusion by hackers

Robustness while software failed

*

Easy to maintain

Easy to debug

Easy to fix bug

Easy to modify

Readable

Complexity

Error handling

*Scrum-Based

*

*

*Identify User Role

*E.g. In user-centered design,

fictional Personas are created to

represent the archetypal end

users

*Describe the Story

*E.g. the Condition of Satisfaction

* i.e. Acceptance Tests

*

* i.e. Scrum Backlog Grooming

* Product Owner, Team, Scrum Master

* Clarify User Stories

*Generate Acceptance Tests

*

*Detect

*Data Reference errors

*Data-Declaration errors

*Computation errors

*Comparison errors

*Control-Flow errors

* Interface errors

* Input / Output errors

*

*Automated test execution, e.g.

*Acceptance Testing : Robotframework

*Unit Testing : xUnit

*Frequent test execution, e.g. Hudson

*Code quality measurement, e.g. Sonar

*Thanks!

Xu Yi

Twitter : kaverjody

mailto:kaverjody@gmail.com

http://damianji.spaces.live.com/

http://www.linkedin.com/in/kaveri

“Consultant, Agile Development” @ Nokia Siemens Networks

Scrum / Agile Coaching, Agile Testing & Test Automation