präsentation für asqf dresden, 26. juni 2012 · präsentation für asqf dresden, 26. juni 2012...

24
© ANECON Software Design und Beratung G.m.b.H. | Alser Str. 4/Hof 1 | A-1090 Wien | Tel.: +43 1 409 58 90 | www.anecon.com | [email protected] Präsentation für ASQF Dresden, 26. Juni 2012 Testen von Cloud Services Harry M. Sneed (MPA)

Upload: others

Post on 26-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

© ANECON Software Design und Beratung G.m.b.H. | Alser Str. 4/Hof 1 | A-1090 Wien | Tel.: +43 1 409 58 90 | www.anecon.com | [email protected]

Präsentation für ASQF Dresden,

26. Juni 2012

Testen von Cloud Services

Harry M. Sneed (MPA)

Page 2: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

2 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

• Testen von Web Services in der Cloud

• Aufbau einer betrieblichen Service Hierarchie

• Bottom-Up Service Teststrategie

• Testen gegen ein Service Level Agreement

• Web Service Testprozess

• Statische Analyse der Web Service-Schnittstellendefinitionen

• Dynamische Analyse der Web Services

• Aufbau eines Service Tests

• WebsTest - ein Tool zum Testen von Web Services

• Prüfung nicht-funktionaler Eigenschaften

• Die Rolle des Testens in einer Cloud-getriebener IT-Welt

Vortragsstruktur

WSTEST-0 ASQF

Page 3: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

3 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Web

Services

WSTEST-1 ASQF

Web Services in der Cloud

Page 4: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

4 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Web Service Testen als Dienstleistung WSTEST-2 ASQF

Page 5: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

5 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Application Services

z.B. OrderEntryProcessing

Functional Services

z.B. Billing

Object Services

z.B. CreateInvoice

Elementary Services

z.B. CalculatePrice

User Business Processes

Web Service Hierarchie WSTEST-3 ASQF

Page 6: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

6 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

WS WS WS WS WS WS WS

Test of the elementary Services

Object

WS

Object

WS

Object

WS

Object

WS

Test of the object Services

Function

WS

Function

WS

Function

WS

Test of the functional Services

Application

WS

Test of the Application Service

Bottom-Up

WSTEST-4 ASQF

Service Teststrategie

Page 7: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

7 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Cloud

Services SLA

Actual

Behavior

Agreed

Behavior

Service Level Agreement Cloud Services provided

Test

A Test is always

a test against

something

Testen gegen ein Service Level Agreement

WSTEST-5 ASQF

Page 8: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

8 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

RequirementType Degree of Fulfillment_______________________________________________________________________________

Functions: Compute Day of Week

Identify invalid Dates

Results: DayofWeek (GermanWeekDays, FrenchWeekDays, ItalianWeekDays)

DateValidity (‘date is valid‘, ‘date is invalid‘ )

Arguments: Date (TTMMYYYY)

LanguageCode (1 = German, 2 = French, 3 = Italian)

TextAdjustment (L = Left, R = Right)

MinimumCorrectness: 0,005 (errors per 1000 Requests)

MinimumAvailability: 96% (percent of total time)

MinimumSecurity: 90% (percent of attacks detected)

MedianResponseTime: 2 Sec. (from sending of request to receipt of response)

MaximumResponseTime: 4 Sec. (highest response time)

MinimumConformance: 85% (adherence to interface convention)

MinimumInternalQuality: 0,7 ( measured internal quality index)

Cloud Service Level AgreementWSTEST-6 ASQF

Page 9: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

9 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Web Service

Requirement

specification

SLA

contracted

Static

Analysis

Conformity

Check

Dynamic

Analysis

Correctness

Verification

Performance

Test

Compliance

Validation

WSDL

Schema

WSDL Rules

Generated

Requests

Expected

Responses

SLA

1

2

4

3

5

6

7

8

9

Repeated after every service release

Constraints

Web Service Testprozess

WSTEST-7 ASQF

Page 10: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

10 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

SLA

Analyzer

WSDL

Analyzer

SLA/WSDL

Comparator

WS

SLA

SLA

Metrics

SLA

Rule

Violations

SLA

Content

WSDL

Content

WSDL

Rule

Violations

WSDL

Metrics

SLA/WSDL

Deviations

WSDL

Interface

Service

level

agreement

Service

Interface

definition

sizes,

complexity,

qualities

sizes,

complexity,

qualities Inconsistencies

between SLA and

Interface Definitions

Metric

DB

Common

Dictionary

Statische Analyse der Web Services WSTEST-8 ASQF

Page 11: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

11 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

WSDLAudit - ein Tool zur Statischen Analyse von

WSDL Schnittstellendefinitionen

WSDL

Audit

Control Module

Naming

Templates

Semantic

Rules

Metric

Weights

WSDL

Parser

Rule

Checker

Metric

Calculator

Deficiency

Report

Metric

Report

WSDL

Sources

GUI User

Interface

WSTEST-9 ASQF

Page 12: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

12 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Test

Script

WS

SLA

WSDL

Interface

Test Case

Generator

Test case

Table

Test

Request

Generator

Test script

Compiler

Service

response

s

Service

requests

Service

responses

Service

Requests

Service

Test Driver

Test

Script

Test data

Table

Test script

Generator

Test

Response

Validator

Service

Validation

Report

Service

under Test

Metric

Datenbank

Common

Dictionary

SOAP Messages

Dynamische Analyse der Web Services WSTEST-10 ASQF

Page 13: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

13 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Test Case Test Purpose Test Objects Pre/Post Conditions

DayofWeek_TC01 Test for valid German day of week GetWeekdayInput

GetWeekdayOutput

Valid German Weekday

DayofWeek_TC02 Test for valid French day of week GetWeekdayInput

GetWeekdayOutput

Valid French Weekday

DayofWeek_TC03 Test for valid Italian day of week GetWeekdayInput

GetWeekdayOutput

Valid Italian Weekday

DayofWeek_TC04 Test for invalid English day of week GetWeekdayInput

GetWeekdayOutput

Exception

Error Message

Invalid Language

DayofWeek_TC05 Test for invalid German day of week GetWeekdayInput

GetWeekdayOutput

Error Message

Invalid date

DayofWeek_TC06 Test for invalid French day of week

GetWeekdayInput

GetWeekdayOutput

Error Message

Invalid date

DayofWeek_TC07 Test for invalid Italian day of week GetWeekdayInput

GetWeekdayOutput

Error Message

Invalid date

Testfalltabelle zum Test eines Kalender Service

WSTEST-11 ASQF

Page 14: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

14 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Kalender Service Specification WSTEST-12 ASQF

Page 15: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

15 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

service: DayofWeek

if (testcase = „DayofWeek_TC01"); // German

if ( operation = "GetWeekDay");

if ( request = "GetWeekDayInput");

assert in.P1-DATE = „12101977";

assert in.P2-LANGUAGE = “1“;

assert in.P3-ALIGNMENT = “L“;

endRequest ;

if ( response = "GetWeekDayOutput");

assert out.P4-DAYNAME = „Mittwoch";

endResponse ;

endOperation;

endCase;

if (testcase = „DayofWeek_TC02");

if ( operation = "GetWeekDay"); //French

if ( request = "GetWeekDayInput");

assert in.P1-DATE = „12101977";

assert in.P2-LANGUAGE = “2“;

assert in.P3-ALIGNMENT = “L“;

endRequest ;

if ( response = "GetWeekdayOutput");

assert out.P4- DAYNAME = “Mercredi";

endResponse ;

endOperation;

endCase;

Web Service Test Skript if (testcase = „DayofWeek_TC03"); // Italian

if ( operation = "GetWeekDay");

if ( request = "GetWeekDayInput");

assert in.P1-DATE = „12101977";

assert in.P2-LANGUAGE = “3“;

assert in.P3-ALIGNMENT = “L“;

endRequest ;

if ( response = "GetWeekdayOutput");

assert out.P4- DAYNAME = “Mercoldi";

endResponse ;

endOperation;

endCase;

if (testcase = „DayofWeek_TC04"); //English

if ( operation = "GetWeekDay");

if ( request = "GetWeekDayInput");

assert in.P1-DATE = „11312000";

assert in.P2-LANGUAGE = “4“;

assert in.P3-ALIGNMENT = “R“;

endRequest ;

if ( response = "GetWeekdayOutput");

assert out.P4- DAYNAME = “Unknown";

endResponse ;

endOperation;

endCase;

end; // service DayofWeek

WSTEST-13 ASQF

Page 16: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

16 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

<XSDCOB:complexType type = “group" name = "P1"

content = "eltOnly" model = "closed" level = "02"

occurs = "ONEORMORE" minOccurs = "0001" maxOccurs = "0001">

<XSDCOB:element type = „date" name = "P1-Date"

content = "TextOnly" model = "closed" level = "03"

occurs = "ONEORMORE" minOccurs = "0001" maxOccurs = "0001„/>

</XSDCOB:complexType>

……………………………………………………………………………………………..

<XSDCOB:complexType type = “group" name = "P4"

content = "eltOnly" model = "closed" level = "02"

occurs = "ONEORMORE" minOccurs = "0001" maxOccurs = "0001">

<XSDCOB:element type = „string" name = „P4-DayName"

content = "TextOnly" model = "closed" level = "03"

occurs = "ONEORMORE" minOccurs = "0001" maxOccurs = "0001„/>

</XSDCOB:complexType>

</definitions>

------------------------------------------------------------------------------------------------------------

<service name = “DayofWeek" >

<operation name = “GetWeekDay" >

<request name = „GetWeekDayinput" >

<P1-Date xsi:type = “date"> 12101977 </P1-Date>

<P2-Language xsi:type = „char">1</P2-Language>

<P3-Alignment xsi:type = „char">L</P3-Alignment>

</request>

<response name = „GetWeekDayOutput" >

<P4-DayName xsi:type = „string" >Mittwoch</P4-DayName>

</response>

</operation>

Schema

WSDL

Web Service Test Request WSTEST-14 ASQF

Page 17: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

17 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

SLA

WS Spec

Analyzer

WSDL

Analyzer

WSDL

Interface

Definition

Test

Cases

Table of

Interface test

values

XSD Data

Schema

WS-Test

Data

Generator

WS

expected

Response

WS

actual

Request

WS-Test

Driver

WS actual

Response

Web Service

WS-Test

Result

Validator

Deviation

Report

Test

Log

Test

Script

WSDLTest - ein Tool zur dynamischen Analyse WSTEST-15 ASQF

Page 18: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

18 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

WSDL

Interface

Definition

Test script

Generator

Test

Script

Test script

Compiler

Web

Service

Request

Table of

Interface

test values

Web Service Test Data Generation

Repräsentative Werte

Grenzwerte

Zufallswerte

<Request>

<Input>Params</Input>

</Request>

<Params>

<P1>10</P1>

<P2>X</P2>

</Params>

WSTEST-16 ASQF

Page 19: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

19 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Web Services

Port Port Port

Request Response

Test

DriverWDSL

Requests

WDSL

Responses

Result

Validator

Data

Generator

WDSL

Schema

Validation

Report

ExceptionsInterface Structure

Assertion

Script

Assertion

ScriptWDSL WDSL

Pre Conditions Post Conditions

Der Web Service Test

WSTEST-17 ASQF

Page 20: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

20 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

WSDL

Interface

Definition

Test result

Validator

Test

Script

Web

Service

Response

Web Service Response Verifikation

Exceptions

P4 Soll = Range (10:20)

P4 Ist = 21

Assert out P4 = Range (10:20);

Assert out P5 = Set (“X“, “Y“, “Z“)

Assert out P6 = P1 + 7;

<Request>

<Input>Params</Input>

</Request>

<Params>

<P4>10</P4>

<P5>X</P5>

</Params>

Deviation

Report

WSTEST-18 ASQF

Page 21: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

21 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

+-----------------------------------------------------------------------+

| WSDL Response Validation Report |

| Object: Kalender Date: 19.06.04 |

| Type : XML System: TEST |

| Key Fields of Response (ist,soll) |

+-------------------------------------+---------------------------------+

| MsgKey:DayofWeek = 12101977 | |

| Ist : DayofWeek | Mercolodi |

| SOll: DayofWeek | Mittwoch |

+-------------------------------------+---------------------------------+

| MsgKey:DayofWeek = 12101977 | |

| Ist : Language | 2 |

| SOll: Language | 1 |

+-------------------------------------+---------------------------------+

Web Service Ergebnisvalidationsbericht

WSTEST-19 ASQF

Page 22: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

22 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

• Messung der Antwortzeit

Antwortzeit = Zeit des Response-Empfangs – Zeit der Requestabsendung

Liegt die gemessene Antwortzeit über die vereinbarte Zeit ist die SLA nicht erfüllt.

• Messing der Verfügbarkeit

Availability = 1 - {waiting time / total usage time}

Diese Wartezeiten werden akkumuliert und mit dem maximal zulässiger Wartezeit in der SLA

verglichen. Liegt sie höher gilt die SLA als nicht erfüllt.

• Messing der Sicherheit

Security = 1 - {weighted security violations / invalid requests}

Dieser tatsächlich ermittelter Sicherheitsgrad wird mit dem minimalen Sicherheitsgrad in der

SLA verglichen um festzustellen ob die SLA in punkto Sicherheit eingehalten wird oder nicht .

Prüfung der nicht-funktionalen Anforderungen

WSTest-20 ASQF

Page 23: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

23 | © ANECON | Agiles versus Rigides Testen | Harry M. Sneed (MPA)

Zusammenfassung

• Vorgefertigte Web Services ist die Zukunft der IT

• Anwender müssen endlich aufhören selber zu entwickeln

• Anwender sollten sich darauf beschränken Services zu

komponieren und in ihre Geschäftsprozesse einzubauen

• Dafür müssen die Services die funktionale und qualitative

Anforderungen der Anwender erfüllen

• Um dies zu bestätigen, müssen die Services getestet und

zertifiziert werden

• Der Test von Web Services soll als Dienstleistung

angeboten werden

• Anwender müssen bereit sein, ihre Services von einem

unabhängigen Testbetrieb testen zu lassen.

ASQF WSTest-21

Page 24: Präsentation für ASQF Dresden, 26. Juni 2012 · Präsentation für ASQF Dresden, 26. Juni 2012 ... • WebsTest - ein Tool zum Testen von Web Services ... Agiles versus Rigides

Software ist unsere

Leidenschaft

ANECON Software Design und Beratung G.m.b.H.

Alser Straße 4 / Hof 1 | A-1090 Wien | www.anecon.com

[email protected] | Tel.: +43 1 409 58 90 - 0 | Fax: -998