dbfit 3.0.1 for fitnessechris saunders b.tech (info. eng.) with honours dbfit 3.0.1 for fitnesse...

44
DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris SAUNDERS - September 2014 @chrisrsaunders

Upload: cassandra-houston

Post on 21-Dec-2015

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

DbFit 3.0.1 for FitNesse

with Data Warehouse worked examplesPresented by Chris SAUNDERS - September 2014

@chrisrsaunders

Page 2: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

99% Presentation

Presenter’s Background [2%]

Audience Survey [4%]

DbFit Intro [5%]

Data Warehouse Intro [8%]

Worked Examples [75%]

Discussion [5%]

Page 3: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Presenter’s Background

Page 4: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Chris SAUNDERS

Test & Agile PractitionerOne who practices testing & agile software development,

as a professional occupation.

a little more background…

Page 5: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Returned to Christchurch as a Test Manager; contracted for 5 years & now permanent.

Chris SAUNDERSOriginally a Systems Engineer.

Healthcare

Financial Services

Power Generation

 

Fashion IT

United Kingdom

HarrogateStockport

 

StirlingEdinburgh

1999

Spent a decade on my OE in the United Kingdom.

New Zealand

Christchurch

Auckland

Wellington

Palmerston North

Utilities

Degree Education

Bachelor of Technology (Honours), Information

Engineering

Graduated 1997

Massey University

Tauranga

School & Polytechnic 

Education

2008

 

Healthcare

Education

Payroll

Local Government

Christchurch

Aviation

Page 6: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Audience Survey

Page 7: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Audience Survey

Who… has used FitNesse? has used DbFit? has worked with Data Warehouses? has an understanding SQL? (Structured Query Language)

What is the result of the following SQL?(Bottom table is the Fridge table)

SELECT DISTINCT DrinkFROM the.FridgeWHERE Temperature = 'Cold'AND Drink IN ( 'Coke' ,'Ginger Beer' )AND ( Quality > 0 OR Quality IS NOT NULL )

dbo is the "default" schema for SQL Server;(database owner)

Page 8: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

DbFit Intro

Page 9: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

What is DbFit?DbFit is a set of fixtures which enables FIT/FitNesse tests to execute directly against a database.

Page 10: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

What is DbFit?DbFit is a set of fixtures which enables FIT/FitNesse tests to execute directly against a database.

Page 11: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

What is DbFit?DbFit is a set of fixtures which enables FIT/FitNesse tests to execute directly against a database.

Page 12: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Data Warehouse Intro

Environment

Page 13: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Data Warehouse Environment[AdventureWorks2014]

Source Data(multiple sources)

Person

BusinessEntityID

FirstName

LastName

MiddleName

PersonType

Load

Extract

Person

BusinessEntityID

FirstName

LastName

MiddleName

PersonType

Stage

Transform

WorkingPerson

EmployeeKey

BusinessEntityID

FirstName

LastName

MiddleName

SalesPersonFlag

[AdventureWorksDW2014]

Data Warehouse

Load

DimPerson

EmployeeKey

FirstName

LastName

MiddleName

SalesPersonFlag

ETL

Page 14: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

What Point to Test[AdventureWorks2014]

Source Data(multiple sources)

Load

Extract

Stage

Transform

[AdventureWorksDW2014]

Data Warehouse

Load

Source Data Warehouse

Source Load

StageLoad

Data Warehouse

Page 15: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

SourceSource

What Point to Test

Considered each possible test points on the threads.

Stage

Load

Data Warehouse

To test the whole system, one needs each thread.

Test Points

Page 16: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Data Warehouse Intro

Facts & Dims

Page 17: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Facts & Dimensions[AdventureWorksDW2014].[dbo].[DimEmployee]

Dimension TableFact Table[AdventureWorksDW2014].[dbo]. [FactResellerSales]

• Consists of the measurements, metrics or facts of a business process

• Calculations can be done on the measures (e.g. sum, count, min, max)

• Provides filtering, grouping and labelling

Page 18: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Worked Examples

Page 19: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Connection to the DatabaseConnect command

Specifying the full connection string using the full ADO.NET or JDBC connection string.

or

Specifying server, username, password, and database name.

Connect Using File commandA file contains the connection information, therefore can be environment related.

Page 20: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Count Data Warehouse Recordstable DimCustomer

Data Warehouse

[AdventureWorks2014]

KnownSource Data

ETL

[AdventureWorksDW2014].[dbo].[DimCustomer]

Data Warehouse

Check Data Warehouse table DimCustomer count record against a fixed value in FitNesse wiki page.

COUNT

18444

Page 21: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Count Data Warehouse RecordsQuery command with fixed result

Which SQL for COUNT and why?

Brittle test due to the fact this test requires updating every time test data changes as the DimCustomer table record will change.

Page 22: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Count Data Warehouse Recordstable FactInternetSales

Data Warehouse

[AdventureWorks2014]

KnownSource Data

ETL

[AdventureWorksDW2014].[dbo].[FactInternetSales]

Data Warehouse

Check Data Warehouse table FactInternetSales count records against a Source data.

Source COUNTCOUNT

Page 23: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Count Data Warehouse RecordsStore Query commandCompare stored queries command

Page 24: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Visualise SQL with Design Query in Editor

Page 25: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Sum Data Warehouse fieldsUnitPrice, table FactInternetSales

Data Warehouse

[AdventureWorks2014]

KnownSource Data

ETL

[AdventureWorksDW2014].[dbo].[FactInternetSales]

Data Warehouse

Check Data Warehouse field’s UnitPrice total sum in table FactInternetSales, against a Source data.

Measures can be summed up, for all records or for a sub-set of records.

Source SUMSUM

Page 26: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Sum Data Warehouse fieldsStore Query commandCompare stored queries command

Page 27: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Check each Data Warehouse field,ListPrice in table DimProduct

Data Warehouse

[AdventureWorks2014]

KnownSource Data

ETL

[AdventureWorksDW2014].[dbo].[DimProduct]

Data Warehouse

Check each Data Warehouse ListPrice field, in table DimProduct, against Source data.

Source

EXCEPT (both ways)

SQL’s EXCEPT function, returns any distinct values from the left query that are not also found on the right query.

Page 28: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Check each Data Warehouse field

Limit number of errors in FitNesse. TOP 3

Return results in the same order. ORDER BY 1, 2 (or else missing records will be displayed)

Page 29: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Lets Change Focus

Page 30: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Test Database

Page 31: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Test Database

Data Warehouse

[DbFitNesseTest]

Test Database

[AdventureWorksDW2014]

Data Warehouse

Test Database is used for:• Store Test data (either as a source or created from other sources)• Store procedures (to be executed from FitNesse)• Storing results (to compare in the future)

data

Page 32: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Test DatabaseReport User Story ExampleEuropean Internal Sales Report

As an European Sales Manager,I want a Report on total “Europe Internal Sales" for each year,So that future business decisions can be made.

Acceptance Criteria : 1. To include all available years 2. Only 3 countries; France, UK & Germany 3. …

Year France Germany UnitedKingdom2014 $0.00 $0.00 $0.002013 $1,578,511.80 $1,761,876.36 $2,124,007.292012 $648,065.54 $608,657.98 $712,700.962011 $410,845.33 $520,500.16 $550,591.222010 $3,399.99 $0.00 $699.10

Page 33: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Test Database

Data Warehouse

[DbFitNesseTest]

Test Database

[AdventureWorksDW2014]

Data Warehouse

Create a table with expected results.

data

Page 34: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Create Expected Results TableExecute commandCommit command

Create a table and commit to database.

Page 35: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Truncate Expected Results TableInspect Table command

Truncate table and commit to database.Inspect Table to confirm it’s truncated (does not Pass or Fail).

Page 36: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Insert into Expected Results TableInsert command

Insert data into table and commit to database.

Page 37: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Count Data Warehouse RecordsStore Query command

Page 38: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Count Data Warehouse RecordsCompare Stored Queries command

Rounding

Data0.00

Page 39: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Count Data Warehouse RecordsCompare Stored Queries command

Page 40: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Drop Expected Results Table

Drop table and commit to database.

Page 41: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Other Commands

Page 42: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Other CommandsUpdate commandExecute Procedure command

Update command similar to insert command.

Execute Procedure will executes a stored procedure or function for each row of data table and will bind input/output parameters to columns of the data table.

Page 43: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

Thank you

Page 44: DbFit 3.0.1 for FitNesseChris SAUNDERS B.Tech (Info. Eng.) with Honours DbFit 3.0.1 for FitNesse with Data Warehouse worked examples Presented by Chris

DbFit 3.0.1 for FitNesse Chris SAUNDERS B.Tech (Info. Eng.) with Honours

DbFit 3.0.1 for FitNesse

with Data Warehouse worked examplesPresented by Chris SAUNDERS - September 2014

@chrisrsaunders

Adventure Works 2014 Sample Databaseshttp://msftdbprodsamples.codeplex.com/releases/view/125550Microsoft SQL Server 2014 Expresshttp://msdn.microsoft.com/en-us/evalcenter/dn434042.aspxPoor Man's T-SQL Formatterhttp://www.architectshack.com/PoorMansTSqlFormatter.ashxDbFit exampleshttp://www.testrun.co.nz/presentations.html (place under FitNesseRoot\DbFit\AcceptanceTests\DotNetTests)