Property-based Testing for non-functional requirements · Property-based Testing for non-functional...

60
Property-based Testing for non-functional requirements Macías López MADS Research Group – Universidade da Coruña (Galiza, Spain) Erlang User Conference Stockholm, June 9th 2014 EUC (2014) PBT for non-functional reqs 1 / 26

Transcript of Property-based Testing for non-functional requirements · Property-based Testing for non-functional...

Page 1: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based Testingfor non-functional requirements

Macías Ló[email protected]

MADS Research Group – Universidade da Coruña (Galiza, Spain)

Erlang User ConferenceStockholm, June 9th 2014

EUC (2014) PBT for non-functional reqs 1 / 26

Page 2: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Outline

1 Introduction

2 Functional testing

3 Non-functional testing

4 Feedback

EUC (2014) PBT for non-functional reqs 2 / 26

Page 3: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

IntroductionWhy should we test software?

It increases your confidence in the code you write.

Tests could be used as documentation.

It helps finding bugs earlier, so the impact is much lower.

Reduce costs:

I “50% project budget”

I “At least 1/3 and probably more than 1/2 of the project budget”

EUC (2014) PBT for non-functional reqs 3 / 26

Page 4: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

IntroductionWhy should we test software?

It increases your confidence in the code you write.

Tests could be used as documentation.

It helps finding bugs earlier, so the impact is much lower.

Reduce costs:

I “50% project budget”

I “At least 1/3 and probably more than 1/2 of the project budget”

EUC (2014) PBT for non-functional reqs 3 / 26

Page 5: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

IntroductionRemembering some concepts...

Sucessful tests are those that find bugs.

Testing cannot prove that the software has not bugs.

Testing cannot prove that the software fulfill its specification.

Sometimes, more testing implies finding less bugs.

EUC (2014) PBT for non-functional reqs 4 / 26

Page 6: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

IntroductionGood practices

Tests should be independent from each other.

Tests should be repeatable.

Tests should be guided by the specification.

After testing, the system should remain as it was.

Test code should be separated from the code itself.

EUC (2014) PBT for non-functional reqs 5 / 26

Page 7: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

IntroductionTesting techniques

Static vs dynamic

I Software must be running or not

White-box vs black-box

I We need access to software internals or not

Positive vs negative

I Software testing in normal conditions or not

EUC (2014) PBT for non-functional reqs 6 / 26

Page 8: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

IntroductionTesting levels

Unit testing: isolate each part of the program and show that the individual

parts fit the specification.

Integration testing: individual software modules are combined and tested

as a group.

System testing: the whole software system is evaluated

Acceptance testing: the software we built fits bussiness requirements.

EUC (2014) PBT for non-functional reqs 7 / 26

Page 9: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Introduction

Depending on what we want to test:

Functional testing: what the software will do.

Non-functional testing: related to requirements that describe not

what the software will do, but how the software will do it.

But in general, testing is identified by its functional side...

EUC (2014) PBT for non-functional reqs 8 / 26

Page 10: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Introduction

Depending on what we want to test:

Functional testing: what the software will do.

Non-functional testing: related to requirements that describe not

what the software will do, but how the software will do it.

But in general, testing is identified by its functional side...

EUC (2014) PBT for non-functional reqs 8 / 26

Page 11: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Introduction

Depending on what we want to test:

Functional testing: what the software will do.

Non-functional testing: related to requirements that describe not

what the software will do, but how the software will do it.

But in general, testing is identified by its functional side...

EUC (2014) PBT for non-functional reqs 8 / 26

Page 12: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingIn the Erlang world

EUnit

I The classic xUnit approach

I Test cases are implemented manually as part of test functions

I Integrated with rebar.

I Typical assertions

F assert(BoolExpr)

F assertNot(BoolExpr)

F assertMatch(Pattern, Expr)

F assertEqual(Expected, Expr)

Example!

EUC (2014) PBT for non-functional reqs 9 / 26

Page 13: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingIn the Erlang world

EUnit

I The classic xUnit approach

I Test cases are implemented manually as part of test functions

I Integrated with rebar.

I Typical assertions

F assert(BoolExpr)

F assertNot(BoolExpr)

F assertMatch(Pattern, Expr)

F assertEqual(Expected, Expr)

Example!

EUC (2014) PBT for non-functional reqs 9 / 26

Page 14: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingIn the Erlang world

EUnit

I The classic xUnit approach

I Test cases are implemented manually as part of test functions

I Integrated with rebar.

I Typical assertions

F assert(BoolExpr)

F assertNot(BoolExpr)

F assertMatch(Pattern, Expr)

F assertEqual(Expected, Expr)

Example!

EUC (2014) PBT for non-functional reqs 9 / 26

Page 15: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingIn the Erlang world

EUnit

I The classic xUnit approach

I Test cases are implemented manually as part of test functions

I Integrated with rebar.

I Typical assertions

F assert(BoolExpr)

F assertNot(BoolExpr)

F assertMatch(Pattern, Expr)

F assertEqual(Expected, Expr)

Example!EUC (2014) PBT for non-functional reqs 9 / 26

Page 16: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingIn the Erlang world

CommonTest

I Automates the execution of test functions.

I We can analyse past execution of test functions.

I Includes coverage data.

I Setting it up can be difficult.

I Ideal for integration testing.

EUC (2014) PBT for non-functional reqs 10 / 26

Page 17: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingIn the Erlang world

CommonTest

I Automates the execution of test functions.

I We can analyse past execution of test functions.

I Includes coverage data.

I Setting it up can be difficult.

I Ideal for integration testing.

EUC (2014) PBT for non-functional reqs 10 / 26

Page 18: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingIn the Erlang world

CommonTest

I Functions to setup and teardown the complete suite or test case

I We can avoid certain testcases

I Test suites can affect to different Erlang nodes.

Example!

EUC (2014) PBT for non-functional reqs 11 / 26

Page 19: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingIn the Erlang world

CommonTest

I Functions to setup and teardown the complete suite or test case

I We can avoid certain testcases

I Test suites can affect to different Erlang nodes.

Example!

EUC (2014) PBT for non-functional reqs 11 / 26

Page 20: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingProperty-based testing

Uses declarative statements to specify properties that the software needs

to satisfy according to its specification.

Using this approach:

Test cases can be automatically derived from those properties.

Test cases can be automatically run and diagnosed.

The tools we use to perform PBT in Erlang:

QuickCheck / PropEr

EUC (2014) PBT for non-functional reqs 12 / 26

Page 21: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingProperty-based testing

Uses declarative statements to specify properties that the software needs

to satisfy according to its specification.

Using this approach:

Test cases can be automatically derived from those properties.

Test cases can be automatically run and diagnosed.

The tools we use to perform PBT in Erlang:

QuickCheck / PropEr

EUC (2014) PBT for non-functional reqs 12 / 26

Page 22: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testingProperty-based testing

Uses declarative statements to specify properties that the software needs

to satisfy according to its specification.

Using this approach:

Test cases can be automatically derived from those properties.

Test cases can be automatically run and diagnosed.

The tools we use to perform PBT in Erlang:

QuickCheck / PropEr

EUC (2014) PBT for non-functional reqs 12 / 26

Page 23: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingThe process

Define properties for our code.

Run test cases using QuickCheck/PropEr generators.

Check whether the defined properties hold or not.

One interesting feature of Quickcheck/PropEr:

I When a failing test case is found, QuickCheck/PropEr automatically

shrinks it to the smallest equivalent counterexample.

Properties themselves are also written in Erlang.

State-machine based testing for complex systems.

EUC (2014) PBT for non-functional reqs 13 / 26

Page 24: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingThe process

Define properties for our code.

Run test cases using QuickCheck/PropEr generators.

Check whether the defined properties hold or not.

One interesting feature of Quickcheck/PropEr:

I When a failing test case is found, QuickCheck/PropEr automatically

shrinks it to the smallest equivalent counterexample.

Properties themselves are also written in Erlang.

State-machine based testing for complex systems.

EUC (2014) PBT for non-functional reqs 13 / 26

Page 25: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingThe process

Define properties for our code.

Run test cases using QuickCheck/PropEr generators.

Check whether the defined properties hold or not.

One interesting feature of Quickcheck/PropEr:

I When a failing test case is found, QuickCheck/PropEr automatically

shrinks it to the smallest equivalent counterexample.

Properties themselves are also written in Erlang.

State-machine based testing for complex systems.

EUC (2014) PBT for non-functional reqs 13 / 26

Page 26: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingThe process

Define properties for our code.

Run test cases using QuickCheck/PropEr generators.

Check whether the defined properties hold or not.

One interesting feature of Quickcheck/PropEr:

I When a failing test case is found, QuickCheck/PropEr automatically

shrinks it to the smallest equivalent counterexample.

Properties themselves are also written in Erlang.

State-machine based testing for complex systems.

EUC (2014) PBT for non-functional reqs 13 / 26

Page 27: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingSimple example

“After we have applied the delete function to a list of numbers

and an specific number, such number should not appear in the

resulting list.”

Property in QuickCheck:prop_lists_delete() ->

?FORALL(I, eqc_gen:int(),

?FORALL(List, eqc_gen:list(eqc_gen:int()),

not lists:member(I, lists:delete(I, List)))).

EUC (2014) PBT for non-functional reqs 14 / 26

Page 28: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingSimple example

“After we have applied the delete function to a list of numbers

and an specific number, such number should not appear in the

resulting list.”

Property in QuickCheck:prop_lists_delete() ->

?FORALL(I, eqc_gen:int(),

?FORALL(List, eqc_gen:list(eqc_gen:int()),

not lists:member(I, lists:delete(I, List)))).

EUC (2014) PBT for non-functional reqs 14 / 26

Page 29: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingSimple example

“After we have applied the delete function to a list of numbers

and an specific number, such number should not appear in the

resulting list.”

Property in QuickCheck:prop_lists_delete() ->

?FORALL(I, eqc_gen:int(),

?FORALL(List, eqc_gen:list(eqc_gen:int()),

not lists:member(I, lists:delete(I, List)))).

EUC (2014) PBT for non-functional reqs 15 / 26

Page 30: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingSimple example

“After we have applied the delete function to a list of numbers

and an specific number, such number should not appear in the

resulting list.”

Property in QuickCheck:prop_lists_delete() ->

?FORALL(I, eqc_gen:int(),

?FORALL(List, eqc_gen:list(eqc_gen:int()),

not lists:member(I, lists:delete(I, List)))).

EUC (2014) PBT for non-functional reqs 16 / 26

Page 31: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingSimple example

Sample of generator output:2> eqc_gen:sample(eqc_gen:list(eqc_gen:int())).

[10,-2,-9,6]

[-8,6,-11]

[-7,-3,7]

[3]

[]

[11,8,14,12,3]

[-4]

...

EUC (2014) PBT for non-functional reqs 17 / 26

Page 32: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingSimple example

Running test cases means running the property.

Running the property:3> eqc:quickcheck(test:prop_lists_delete()).

............................................................

OK, passed 100 tests

true

QuickCheck tutorial by Thomas Arts

EUC (2014) PBT for non-functional reqs 18 / 26

Page 33: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingSimple example

Running test cases means running the property.

Running the property:3> eqc:quickcheck(test:prop_lists_delete()).

............................................................

OK, passed 100 tests

true

QuickCheck tutorial by Thomas Arts

EUC (2014) PBT for non-functional reqs 18 / 26

Page 34: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Property-based testingSimple example

Running test cases means running the property.

Running the property:3> eqc:quickcheck(test:prop_lists_delete()).

............................................................

OK, passed 100 tests

true

QuickCheck tutorial by Thomas Arts

EUC (2014) PBT for non-functional reqs 18 / 26

Page 35: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testing

Functional testing is not enough...

In specific domains when the results are produced or how long they

take to be available can be decisive.

Normally these requirements arise at very later stages of

development process.

Or even when the system is deployed!

EUC (2014) PBT for non-functional reqs 19 / 26

Page 36: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testing

Functional testing is not enough...

In specific domains when the results are produced or how long they

take to be available can be decisive.

Normally these requirements arise at very later stages of

development process.

Or even when the system is deployed!

EUC (2014) PBT for non-functional reqs 19 / 26

Page 37: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testing

Functional testing is not enough...

In specific domains when the results are produced or how long they

take to be available can be decisive.

Normally these requirements arise at very later stages of

development process.

Or even when the system is deployed!

EUC (2014) PBT for non-functional reqs 19 / 26

Page 38: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Functional testing

Functional testing is not enough...

In specific domains when the results are produced or how long they

take to be available can be decisive.

Normally these requirements arise at very later stages of

development process.

Or even when the system is deployed!

EUC (2014) PBT for non-functional reqs 19 / 26

Page 39: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

Many requirements can be considered as non-functional (also known asextra-functional):

Performance

Dependability

Security

Reliability

...

These requirements are generally informally stated, they are oftencontradictory. It is difficult to keep traces of what we have tested.

EUC (2014) PBT for non-functional reqs 20 / 26

Page 40: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

Many requirements can be considered as non-functional (also known asextra-functional):

Performance

Dependability

Security

Reliability

...

These requirements are generally informally stated, they are oftencontradictory. It is difficult to keep traces of what we have tested.

EUC (2014) PBT for non-functional reqs 20 / 26

Page 41: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

Many requirements can be considered as non-functional (also known asextra-functional):

Performance

Dependability

Security

Reliability

...

These requirements are generally informally stated, they are oftencontradictory. It is difficult to keep traces of what we have tested.

EUC (2014) PBT for non-functional reqs 20 / 26

Page 42: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

The questionCan we property-based test any of these non-functional requirements?

Work in progressLibrary for testing non-functional requirements to be used in combination

with property-based testing tools

EUC (2014) PBT for non-functional reqs 21 / 26

Page 43: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

The questionCan we property-based test any of these non-functional requirements?

Work in progressLibrary for testing non-functional requirements to be used in combination

with property-based testing tools

EUC (2014) PBT for non-functional reqs 21 / 26

Page 44: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

Among all possible non-functional requirements, select one and implement

a prototype of properties.

PerformanceFrom a black-box approach

Possible properties

I “The response time is less than a value T”

I “The average response time of N requests is less than a value T”

Example!

EUC (2014) PBT for non-functional reqs 22 / 26

Page 45: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

Among all possible non-functional requirements, select one and implement

a prototype of properties.

Performance

From a black-box approach

Possible properties

I “The response time is less than a value T”

I “The average response time of N requests is less than a value T”

Example!

EUC (2014) PBT for non-functional reqs 22 / 26

Page 46: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

Among all possible non-functional requirements, select one and implement

a prototype of properties.

PerformanceFrom a black-box approach

Possible properties

I “The response time is less than a value T”

I “The average response time of N requests is less than a value T”

Example!

EUC (2014) PBT for non-functional reqs 22 / 26

Page 47: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

Among all possible non-functional requirements, select one and implement

a prototype of properties.

PerformanceFrom a black-box approach

Possible properties

I “The response time is less than a value T”

I “The average response time of N requests is less than a value T”

Example!

EUC (2014) PBT for non-functional reqs 22 / 26

Page 48: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Non-functional testing

Among all possible non-functional requirements, select one and implement

a prototype of properties.

PerformanceFrom a black-box approach

Possible properties

I “The response time is less than a value T”

I “The average response time of N requests is less than a value T”

Example!

EUC (2014) PBT for non-functional reqs 22 / 26

Page 49: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Performance testing

Before running the tests, set a specific workload in the system. Possible

integration with:

Tsung

Megaload

Use ?SETUP macro.

PBT is partially integrated in Megaload. Diana Corbacho’s tutorial.

EUC (2014) PBT for non-functional reqs 23 / 26

Page 50: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Performance testing

Before running the tests, set a specific workload in the system. Possible

integration with:

Tsung

Megaload

Use ?SETUP macro.

PBT is partially integrated in Megaload. Diana Corbacho’s tutorial.

EUC (2014) PBT for non-functional reqs 23 / 26

Page 51: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Performance testingQueue example

Due to the internal implementation of queues in Erlang, the response time

of removing the first element of the queue after a lot of insertions, should

be slightly high.

We can build a state-machine in combination with our library to

check that.

Example!

EUC (2014) PBT for non-functional reqs 24 / 26

Page 52: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Performance testingQueue example

Due to the internal implementation of queues in Erlang, the response time

of removing the first element of the queue after a lot of insertions, should

be slightly high.

We can build a state-machine in combination with our library to

check that.

Example!

EUC (2014) PBT for non-functional reqs 24 / 26

Page 53: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Performance testingQueue example

Due to the internal implementation of queues in Erlang, the response time

of removing the first element of the queue after a lot of insertions, should

be slightly high.

We can build a state-machine in combination with our library to

check that.

Example!

EUC (2014) PBT for non-functional reqs 24 / 26

Page 54: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Feedback

More properties related to performance?

I Simulate incresing memory, disk or network usage

Move to grey-box testing to get info at earlier stages?

What non-functional requirement would you like to have tools for

testing it?

How could PBT help when testing that requirements?

EUC (2014) PBT for non-functional reqs 25 / 26

Page 55: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Feedback

More properties related to performance?

I Simulate incresing memory, disk or network usage

Move to grey-box testing to get info at earlier stages?

What non-functional requirement would you like to have tools for

testing it?

How could PBT help when testing that requirements?

EUC (2014) PBT for non-functional reqs 25 / 26

Page 56: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Feedback

More properties related to performance?

I Simulate incresing memory, disk or network usage

Move to grey-box testing to get info at earlier stages?

What non-functional requirement would you like to have tools for

testing it?

How could PBT help when testing that requirements?

EUC (2014) PBT for non-functional reqs 25 / 26

Page 57: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Feedback

More properties related to performance?

I Simulate incresing memory, disk or network usage

Move to grey-box testing to get info at earlier stages?

What non-functional requirement would you like to have tools for

testing it?

How could PBT help when testing that requirements?

EUC (2014) PBT for non-functional reqs 25 / 26

Page 58: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Feedback

More properties related to performance?

I Simulate incresing memory, disk or network usage

Move to grey-box testing to get info at earlier stages?

What non-functional requirement would you like to have tools for

testing it?

How could PBT help when testing that requirements?

EUC (2014) PBT for non-functional reqs 25 / 26

Page 59: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Feedback

More properties related to performance?

I Simulate incresing memory, disk or network usage

Move to grey-box testing to get info at earlier stages?

What non-functional requirement would you like to have tools for

testing it?

How could PBT help when testing that requirements?

EUC (2014) PBT for non-functional reqs 25 / 26

Page 60: Property-based Testing for non-functional requirements · Property-based Testing for non-functional requirements Macías López macias.lopez@udc.es MADS Research Group – Universidade

Audience ! thanks

EUC (2014) PBT for non-functional reqs 26 / 26