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

Post on 21-Dec-2015

223 views 0 download

transcript

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

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%]

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

Presenter’s Background

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…

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

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

Audience Survey

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)

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

DbFit Intro

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.

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.

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.

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

Data Warehouse Intro

Environment

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

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

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

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

Data Warehouse Intro

Facts & Dims

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

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

Worked Examples

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.

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

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.

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

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

Count Data Warehouse RecordsStore Query commandCompare stored queries command

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

Visualise SQL with Design Query in Editor

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

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

Sum Data Warehouse fieldsStore Query commandCompare stored queries command

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.

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)

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

Lets Change Focus

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

Test Database

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

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

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

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.

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).

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.

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

Count Data Warehouse RecordsStore Query command

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

Count Data Warehouse RecordsCompare Stored Queries command

Rounding

Data0.00

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

Count Data Warehouse RecordsCompare Stored Queries command

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

Drop Expected Results Table

Drop table and commit to database.

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

Other Commands

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.

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

Thank you

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)