1 DAN FARRAR SQL ANYWHERE ENGINEERING JUNE 7, 2010 SCHEMA-DRIVEN EXPERIMENT MANAGEMENT DECLARATIVE TESTING WITH “DEXTERITY”

Slides:



Advertisements
Similar presentations
An Object/Relational Mapping tool Free and open source Simplifies storage of object data in a relational database Removes the need to write and maintain.
Advertisements

Building FHIR Servers on Existing Applications
Configuration management
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
MAP REDUCE PROGRAMMING Dr G Sudha Sadasivam. Map - reduce sort/merge based distributed processing Best for batch- oriented processing Sort/merge is primitive.
Our automated solution at a glance By: Justin Hollander.
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
MIT iCampus iLabs Software Architecture Workshop June , 2006.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Introduction to Software Testing
SQL Reporting Services Overview SSRS includes all the development and management pieces necessary to publish end user reports in  HTML  PDF 
U-Mail System Design Specification Joseph Woo, Chris Hacking, Alex Benson, Elliott Conant, Alex Meng, Michael Ratanapintha April 28,
Microsoft Office SharePoint Server Business Intelligence Tom Rizzo Director, Microsoft Office SharePoint Server
Passage Three Introduction to Microsoft SQL Server 2000.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Microsoft Windows 2003 Server. Client/Server Environment Many client computers connect to a server.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Linux Operations and Administration
Copyright © 2006, SAS Institute Inc. All rights reserved. Enterprise Guide 4.2 : A Primer SHRUG : Spring 2010 Presented by: Josée Ranger-Lacroix SAS Institute.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Sikuli Ivailo Dinkov QA Engineer PhoneX Team Telerik QA Academy.
1 PHP and MySQL. 2 Topics  Querying Data with PHP  User-Driven Querying  Writing Data with PHP and MySQL PHP and MySQL.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
 Introduction to Operating System Introduction to Operating System  Types Of An Operating System Types Of An Operating System  Single User Single User.
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
DAY 14: ACCESS CHAPTER 1 Tazin Afrin October 03,
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Part 1. Persistent Data Web applications remember your setting by means of a database linked to the site.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Python and REST Kevin Hibma. What is REST? Why REST? REST stands for Representational State Transfer. (It is sometimes spelled "ReST".) It relies on a.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Introduction to the Adapter Server Rob Mace June, 2008.
Siebel 8.0 Module 5: EIM Processing Integrating Siebel Applications.
Introduction to RtReports – Tony Fenn & Chris Nelson Introduction to RtReports Chris Nelson - Senior Developer Tony Fenn - Product Manager.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
CERN - IT Department CH-1211 Genève 23 Switzerland t DB Development Tools Benthic SQL Developer Application Express WLCG Service Reliability.
MapReduce Kristof Bamps Wouter Deroey. Outline Problem overview MapReduce o overview o implementation o refinements o conclusion.
Software Construction Lecture 18 Software Testing.
CHAPTER 3 DATABASES AND DATA WAREHOUSES. 2 OPENING CASE STUDY Chrysler Spins a Competitive Advantage with Supply Chain Management Software Chapter 2 –
A Brief Documentation.  Provides basic information about connection, server, and client.
Selenium and Selenium on Rails. Agenda  Overview of Selenium Simple Selenium Tests Selenium IDE  Overview of Selenium on Rails  Problems with Selenium.
Lesson 10 - Mail Merge and Reviewing Documents Advanced Microsoft Word.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
Chapter 1 Introducing Ant. What is ant? Ant is a build tool  Automate the tasks of compiling code, running test, and packaging the results for redistribution.
Copyright 2007, Information Builders. Slide 1 Machine Sizing and Scalability Mark Nesson, Vashti Ragoonath June 2008.
QUnit JavaScript Testing in the Enterprise David Lee Oct. 11, 2011.
Batch Jobs Using the batch job functions. Use [Bulk Changes][Batch Job Utility] to start. Read the information panel. Check with TAMS Technical Support.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Chapter – 8 Software Tools.
Random Logic l Forum.NET l State Machine Mechanism Forum.NET 1 st Meeting ● December 27, 2005.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
SQL Basics Review Reviewing what we’ve learned so far…….
Dynamic SQL Writing Efficient Queries on the Fly ED POLLACK AUTOTASK CORPORATION DATABASE OPTIMIZATION ENGINEER.
BIG DATA/ Hadoop Interview Questions.
Introduction to Ansible
Advanced Higher Computing Science
BY: SALMAN 1.
Architecture Review 10/11/2004
Development Environment
BY: SALMAN.
Tracking and Squashing Bugs
Section 13 - Integrating with Third Party Tools
Pipeline Execution Environment
LCGAA nightlies infrastructure
Deploying and Configuring SSIS Packages
Introduction to Software Testing
Module 01 ETICS Overview ETICS Online Tutorials
Presentation transcript:

1 DAN FARRAR SQL ANYWHERE ENGINEERING JUNE 7, 2010 SCHEMA-DRIVEN EXPERIMENT MANAGEMENT DECLARATIVE TESTING WITH “DEXTERITY”

2 MOTIVATION WHAT’S WRONG WITH TEST SCRIPTS?

3 An RDBMS designed with the goals of: − Performance out of the box − Zero-to-low administration − Flexible deployment (OS, architecture, platform) As a result, SQL Anywhere contains many adaptive algorithms and self-adjusting parameters High performance code may contain timing-sensitive faults that must be found before it is shipped SQL ANYWHERE

4 Unit testing Functional testing System testing Regression tests define well-known test cases. Need to hunt for previously unknown classes of bugs, too. Repros for timing-sensitive bugs are very hard to obtain Tuning a database configuration requires a similar mix of guesswork and analysis The first 80% of performance is easy; the last 20% is not TESTING THE SQL ANYWHERE ENGINE A complex RDBMS requires many levels of testing.

5 dbspawn.exe dbsrv11.exe –gn 25 –c 200m asatest.db fetchtst.exe -t SCROLL –js 10 myqueries.sql > res.out dbstop.exe What if a user wanted to see what the effect of: -changing the server or dbtest command line? -setting environment variables that control server behaviour? -setting database options? -using a specialized build of the database or the server? A SAMPLE SCRIPT Even a simple batch file has dozens of variables it could range over.

6 Configuration explosion − Covering the search space complete is not feasible − Testing tools must help human testers plan and cover the search space intelligently… − …and remember what was covered and how Many experimental tasks require human experimenters to wait to: − Build custom engines − Copy large files − Shut down and reconfigure the test − Recover from errors (i.e. file already exists) AD-HOC TESTING The search for new bugs reproducibles and new optimal configurations.

7 DESIGN GOALS AND PRINCIPLES RDBMS + MAKE = DEXTERITY

8 Allow a single user to manage ad-hoc experiments on many machines simultaneously Concentrate human time to the test phases where human attention is needed: − Test specification − Analysis of results …and let machines do the rest. Make sure that no experimental results are wasted; document everything, so that it can be used in later analysis. Main Goal: Combine the persistence and data manipulation of an RDMS with the fire-and-forget simplicity of the MAKE utility DESIGN GOALS Cluster the operations where human attention or decisions are needed.

9 Everything is managed by the server − Test scheduling and analysis is easiest this way Everything is declarative − Because a user always specifies what results she ultimately wants, deliverables can be composed in any desired fashion Everything is append-only − Even failed runs are available for inspection − There is no doubt about what state a resource is in DESIGN PRINCIPLES A declarative design provides good composability of experimental steps.

10 ARCHITECTURE

11 SQL Anywhere includes an integrated web server The “Dexterity” system itself lives within a SQL Anywhere server All configurations and deliverable objects are stored in the Dexterity database Worker (client) machines can ask for work and run it when all its prerequisites are available Dependencies are modelled as foreign keys in the database ARCHITECTURE As with all automation, allow the human to work smarter, not harder.

12 Configuration rows represent the independent input parameters to the testing process Configurations generally never change; if they need to, a new configuration must be created Example configurations: − Build type − Build architecture − Machine name, memory, CPUs CONFIGURATIONS All information that might ever vary should be stored in the database.

13 Resource rows represent the intermediate and final deliverables of an experiment. Two types of resources: Init-Only: Resources that require work to instantiate, but do not require a teardown step − Ex., SyncedClient, FinishedBuild Init-and-Fini: Resources that require an action to create/instantiate, and to tear down − Ex., RunningServer RESOURCES All relevant output of test processes must also be stored in the database.

14 CORE DEPENDENCY GRAPH A deliverable is primarily defined by all its dependencies.

15 Server is aware of state of all resources It is also aware of the dependencies between these resources, and how long those dependencies last At client request, server can query dependency graph, looking for − resources that are ready to initialize, − resources that must be finished to allow a new resource to be instantiated SCHEDULER The scheduler does what needs to be done, but no more than that.

16 Clients are Python scripts that communicate with stateless, RESTful web-services A test process can be halted (intentionally or not) and resumed without losing work Data is moved in JSON format and is automatically marshalled TEST CLIENTS Test clients should know how to do their immediate job and no more.

17 The UI is web-based, for ease of deployment This also allows it to be tightly integrated with the DBMS The UI allows a user to enter resource rows describing what she wants instantiated − This remains just a request until the scheduler determines that all dependencies for the resource have been met − It can then be instantiated The UI combines the operations of selecting, filtering, and inserting data USER INTERFACE The UI must permit the easy specification of test plans.

18 DEMO TEST DEFINITION AND ANALYSIS

19 EXTENSIBILITY New independent variables are easy to add without invalidating previous results.

20 Provide a prettier interface Improved support for higher-level data manipulation More use time FUTURE WORK