An IBM Rational Software TechNote

Size: px
Start display at page:

Download "An IBM Rational Software TechNote"

Transcription

1 Data Driven Testing: How to Create a Data Driven Test with XDE Tester An IBM Rational Software TechNote 1

2 Creating a Data-Driven Test with XDE Tester By Dr. Gerd Weishaar The samples provided in the advanced topic section of the XDE Tester online help illustrate simple data-driven testing, but these samples can t be used by simply copying and pasting them from the online help to an XDE Tester script. This article gives you the information you need in order to replicate those samples in a working environment. If you follow this article step by step and create the artifacts it describes, you ll be able to create a working demo of data-driven testing with XDE Tester. This article assumes that you already know the basics of XDE Tester and can create an XDE Tester datastore, record a script, play back a script, and create a datapool with custom data types. It also assumes that you have a basic understanding of the commands generated in an XDE Tester script. Basics of Data-Driven Testing The basic idea of data-driven testing is to record a use case once and play it back several times while plugging in different data records. We assume that the use case doesn t change its flow in any way by using these different records. To create a data-driven test script with XDE Tester, we ll follow these steps: 1. Create the basic recording of a use case. 2. Identify the input fields that will be replaced by variables. 3. Create a data source for the data-driven testing. 4. Change the XDE Tester script to implement data-driven testing. Load the test data. Create a loop that iterates the use case for every existing data record. Replace the input fields with variables. Restructure the script (optional). Create error handling for failed records (optional). 2

3 Create the Basic Recording of a Use Case The data-driven testing samples have one thing in common: they all employ the same use case, which is a very basic interaction with the sample application ClassicsJavaA. To use the sample code provided in this article, create an XDE Tester script following these steps: 1. Start the application ClassicsJavaA. 2. Expand the folder entitled Schubert and select Die schone Mullerin, Op Click the Place Order button. 4. Log on as a member. Select the member name Trent Culpito even though it s the default. This will ensure that the command to select a name is written to the script. Enter the password (we recorded nix German for don t care ). Click the OK button. 5. Place an order. Change the quantity (we recorded 2). Enter the credit card number (we recorded ). Enter the expiration date (we recorded 1113). Click the Place Order button. 6. Verify the success of the transaction. Use the verification point on the dialog label (property verification point) and use a regular expression for example, [0-9]{2. Click the OK button. 7. Close the application. Listing 1 is the resulting script. import resources.classicsjavaahelper; import com.rational.test.ft.*; import com.rational.test.ft.object.interfaces.*; import com.rational.test.ft.script.*; import com.rational.test.ft.value.*; import com.rational.test.ft.vp.*; /** * Description : XDE Tester Script Administrator */ public class ClassicsJavaA extends ClassicsJavaAHelper { /** * Script Name : <b>classicsjavaa</b> 3

4 * Generated : <b>sep 2, :09:14 PM</b> * Modified : <b>sep 2, :09:14 PM</b> * Description : XDE Tester Script * Original Host : WinNT Version 5.0 Build 2195 (Service Pack 2) * 2002/09/02 Administrator */ public void testmain (Object[] args) { startapp("classicsjavaa"); // Frame: ClassicsCD tree2tree().drag(atpath("composers->schubert"), atpoint(8,8), atrow(atpath("composers->schubert")), atpoint(8,8)); tree2tree().drag(atpath("composers->schubert->die schone Mullerin, Op. 25")); placeorderbutton2button().click(); // Frame: Member Logon namecombocombobox().click(); namecombocombobox().drag(attext("trent Culpito")); _passtext2text().drag(atpoint(53,8), atpoint(52,8)); logframe1frame().inputkeys("nix"); okorderlogonbutton().click(); // Frame: Place an Order _quantityfieldtext().drag(atpoint(20,10), atpoint(1,7)); orderformframe().inputkeys("2"); _cardnumberfieldtext().click(atpoint(15,7)); orderformframe().inputkeys(" "); _expirefieldtext().click(atpoint(24,11)); orderformframe().inputkeys("4711"); placeorderbutton().click(); Yourorderhasbeenr_standardVP().performTest(); // OKButton().click(); // Frame: ClassicsCD ClassicsJavaFrame2(ANY,MAY_EXIT).close(); Listing 1: Our sample XDE Tester script Identify the Input Fields That Will Be Replaced by Variables To identify the input fields that will be replaced by variables, we need to think about which interactions can be accomplished with varying data for example, select the CD, log on as user, enter quantity, enter credit card number. To keep this example as simple as possible, we won t 4

5 vary the selection of the CD, but we ll vary the user and all corresponding data values like the credit card number and quantity. The selection of the CD can be varied by manipulating (replacing) the text values that describe the tree navigation (bold text): tree2tree().drag(atpath("composers->schubert"), atpoint(8,8), atrow(atpath("composers->schubert")), atpoint(8,8)); tree2tree().drag(atpath("composers->schubert->die schone Mullerin, Op. 25")); In this example we won t change the tree navigation, but we ll change all user-specific data, including the selection of the user name in the logon screen. These values will be replaced by varying data records: User name: User password: CD quantity: namecombocombobox().drag(attext("trent Culpito")); logframe1frame().inputkeys("nix"); orderformframe().inputkeys("2"); Credit card number: orderformframe().inputkeys(" "); Expiration date: orderformframe().inputkeys("4711"); Create a Data Source for the Data-Driven Testing When we identified candidates for variable data above, we ended up with five fields: User name: string User password: string CD quantity: integer Credit card number: string Expiration date: string Values to plug into these fields can come from several different kinds of data sources for example, CSV files, Access DBs, and datapools. For purposes of this article, choose one of these types of data sources and follow the steps outlined below. Option 1: CSV File This is the simplest type of data source. We can create a CSV file by simply extracting data records from the sample database: C:\Program Files\Rational\XDE Tester\samples\classicsdata.mdb. It s important that you use the same data as the application does; otherwise the scripts will produce error messages during playback. From this sample database you can retrieve only customer names. It doesn t contain passwords, credit card numbers, expiration dates, or quantities; those values have to be added manually. 5

6 Note: If you decide to create a datapool as your data source, you can use the data-generation capabilities and simply copy the Customer.csv file from the TestManager datastore. C:\Classics\Projects\Classics Online\TestDatastore\DefaultTestScriptDatastore\TMS_Datapools\Customer.csv Customer.csv Option 2: Access DB The easiest and fastest way to create an Access DB is by importing the Customer.csv file. I won t go into the details of how to create an Access DB here but will instead assume that you know how to start Access, create a new empty database, create a table, and import data from the CSV file. customers.mdb To use the database in your XDE Tester script, you ll have to create an ODBC entry (for example, customerdb). Then you can use a JDBC-to-ODBC bridge to connect to the database from any Java program. Further details are given below when we talk about implementation. Note that this is also a possible way to connect to an Excel spreadsheet or any other file that can be accessed via ODBC interface. Option 3: Datapool If you choose to use a datapool as your data source, we recommend using the existing datageneration capabilities and a CSV file to specify the user names. You can use this list of customers: Trent Culpito Susan Flontly Emma Trenchenza Claire Stratus Rick Tumbler Tony Miatta Jack Thompson Sonia Evans John Barrie Cal Maltais Ryan Rucker Sean Pilnuff Torrence Rein Bill Wu 6

7 Karen Farrell Jill Sanford Figure 1 shows a sample configuration of the datapool. Figure 1: Sample configuration of Customer datapool Change the XDE Tester Script to Implement Data-Driven Testing Now that we ve done all the necessary data preparation, we can change the XDE Tester script to implement data-driven testing. Before we do that, though, I want to mention that for every data source except the datapool, we ll need to create a container that will hold the data records during test execution. To address this need, I decided to implement a data-source neutral version using the standard Java container class (ArrayList) and a class called Customer.java. This kind of implementation can be done in the same way for all data sources, including datapool. package resources; public class Customer { public String name; public String password; public String creditcardnr; public String expdate; public String quantity; This class can be created with a simple text editor, and you can save/copy the file as Customer.java into the resource directory of the XDE Tester datastore. For example: C:\Classics\Projects\Classics Online\XDE TesterDatastore\resources Customer.java (Note that whenever you copy a new Java source file to the Eclipse/XDE Tester directories, you can make it available in your project by switching to the Java perspective [choose Perspective > Open > Java], right-clicking the project folder, and selecting Refresh from local. ) 7

8 An alternative is to use the Eclipse class wizard to create a new Java class. For more information about Eclipse, see the online documentation (Java Development User Guide Create a Java Class ). To use the new class Customer.java, you ll have to add an import statement to the beginning of your XDE Tester script: import resources.customer; Load the Test Data Now we ll look at the code for loading the test data from each of the three sources mentioned above. To use one of the code samples, paste it into your XDE Tester script right after these lines: public void testmain (Object[] args) { After copying in the sample code, right-click the editor window and choose Organize Imports. When asked to choose an array list, select Java.util.ArrayList. After you save the file, all compilation errors should be gone. These code samples contain System.out.println statements that are used for simple verification that the data was loaded. For a final version they can be removed or pasted into comments (//). Option 1: CSV File The basic functionality that we use to open/read the CSV file is taken from Java in a Nutshell. The code sample (Listing 2) assumes that the CSV file is stored in the currently logged-in user s home directory for example, C:\Documents and Settings\"TomS". ClassicsJavaA_CSV.j ava String filename = System.getProperty("user.home")+File.separator + "Customer.csv"; ArrayList customerlist = new ArrayList(); String line; Customer customer; int startindex; int endindex; try{ BufferedReader in = new BufferedReader(new FileReader(filename)); while ((line=in.readline())!= null){ customer = new Customer(); System.out.println(line); startindex = 0; endindex = line.indexof(',',0); customer.name = line.substring(startindex,endindex); 8

9 startindex = endindex + 1; endindex = line.indexof(',',startindex); customer.password = line.substring(startindex,endindex); startindex = endindex + 1; endindex = line.indexof(',',startindex); customer.creditcardnr = line.substring(startindex,endindex); startindex = endindex + 1; endindex = line.indexof(',',startindex); customer.quantity = line.substring(startindex,endindex); startindex = endindex + 1; endindex = line.indexof(',',startindex + 1); customer.expdate = line.substring(startindex); customerlist.add(customer); System.out.println(customer.name); System.out.println(customer.password); System.out.println(customer.creditCardNr); System.out.println(customer.quantity); System.out.println(customer.expDate); ; in.close(); catch(ioexception e){ logerror("file Open Error!"); loginfo("file-data loaded!"); Listing 2: Loading test data from the CSV file Option 2: Access DB The basic functionality that we use to open/read the Access DB is taken from Java in a Nutshell. The code sample (Listing 3) assumes that an ODBC entry (customerdb) exists. ClassicsJavaA_DB.ja va ArrayList customerlist = new ArrayList(); Customer customer; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch (ClassNotFoundException e){ logerror("error: Failed to load JDBC:ODBC Driver!"); try{ Connection con = DriverManager.getConnection("jdbc:odbc:customerdb","",""); 9

10 Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery("select NAME,PASSWORD,CREDITCARDNR,QUANTITY,EXPDATE FROM CUSTOMERDATA"); while (rs.next()){ customer = new Customer(); customer.name = rs.getstring("name"); customer.password = rs.getstring("password"); customer.creditcardnr = rs.getstring("creditcardnr"); customer.quantity = rs.getstring("quantity"); customer.expdate = rs.getstring("expdate"); ; customerlist.add(customer); System.out.println(customer.name); System.out.println(customer.password); System.out.println(customer.creditCardNr); System.out.println(customer.quantity); System.out.println(customer.expDate); rs.close(); stmt.close(); con.close(); catch(sqlexception sqle){ logerror("error: SQL Exception - " + sqle.getmessage()); sqle.printstacktrace(system.out); loginfo("db-data loaded!"); Listing 3: Loading test data from the Access DB Option 3: Datapool The basic functionality that we use to open/read the datapool is taken from the documentation Rational Test Script Services for Java. The code sample (Listing 4) assumes that a datapool (Customer) exists. ClassicsJavaA_DP.ja va ArrayList customerlist = new ArrayList(); Customer customer; try{ TSSDatapool dp = new TSSDatapool(); boolean fretval = false; String sdpname = "Customer"; dp.open(sdpname); fretval = dp.fetch(); 10

11 while (fretval){ customer = new Customer(); customer.name = dp.value("name").tostring(); customer.password = dp.value("password").tostring(); customer.creditcardnr = dp.value("creditcardnr").tostring(); customer.quantity = dp.value("quantity").tostring(); customer.expdate = dp.value("expdate").tostring(); customerlist.add(customer); System.out.println(customer.name); System.out.println(customer.password); System.out.println(customer.creditCardNr); System.out.println(customer.quantity); System.out.println(customer.expDate); fretval = dp.fetch(); ; catch(exception e){ logerror("error: Datapool - " + e.getmessage()); e.printstacktrace(system.out); ; loginfo("datapool loaded!"); Listing 4: Loading test data from the datapool Create a Loop That Iterates the Use Case for Every Existing Data Record At this point I assume that you ve successfully loaded the test data from whatever source you ve chosen. This means that the container ArrayList customerlist now contains all data records for data-driven testing. To execute the use case several times using each record in turn as input data, we have to create a loop that contains the user interaction for this use case. To do this, copy the following code marked in bold after the data loading and before the first user interaction, as shown: loginfo("datapool loaded!");// This is the line you paste the new code after. int size = customerlist.size();// Paste this line in. for (int i=0;i<size;i++){ // Paste this line in. startapp("classicsjava");// This is the line you paste the new code before. At the end of the user interaction, close the loop. ClassicsJavaFrame(ANY,MAY_EXIT).close();// End after this line. ;// Close the loop. Replace the Input Fields with Variables Your script is looping but is still using the same recorded values. Now we ll replace them with variables taken from the Customer class (as shown in the lines in boldface below), which will be a different set of data for each iteration. The following code sample works with any kind of data 11

12 source. It s useful to keep the original statement, so copy it and paste it into a comment, as shown. namecombocombobox().click(); // namecombocombobox().drag(attext("trent Culpito")); namecombocombobox().click(attext(((customer)customerlist.get(i)).name)); _passtext2text().drag(atpoint(53,8), atpoint(52,8)); // logframe1frame().inputkeys("nix"); logframe1frame().inputkeys(((customer)customerlist.get(i)).password); okorderlogonbutton().click(); // Frame: Place an Order _quantityfieldtext().drag(atpoint(20,10), atpoint(1,7)); // orderformframe().inputkeys("2"); orderformframe().inputkeys(((customer)customerlist.get(i)).quantity); _cardnumberfieldtext().click(atpoint(15,7)); // orderformframe().inputkeys(" "); orderformframe().inputkeys(((customer)customerlist.get(i)).creditcardnr); _expirefieldtext().click(atpoint(24,11)); // orderformframe().inputkeys("4711"); orderformframe().inputkeys(((customer)customerlist.get(i)).expdate); placeorderbutton().click(); Your data-driven testing scripts are now ready to be executed. Run them until your system memory starts smoking and have fun! Restructure the Script (Optional) After you ve made the modifications to the XDE Test script described above, you may decide that the script could use a facelift to improve its readability and structure, and ultimately its maintainability. We can restructure the script (which will combine common tasks in a function or method) by using the Extract Method feature in Eclipse. Select the source code that should be restructured and right-click Extract Method (see Figure 2). The refactoring wizard will guide you through several steps. 12

13 We extract two new methods: Figure 2: Using the refactoring wizard in Eclipse loadtestdata: protected void loadtestdata(arraylist customerlist) maintc: protected void maintc(arraylist customerlist,int i) The refactored structure now looks the same for all three implementations: public void testmain (Object[] args) { ArrayList customerlist = new ArrayList(); loadtestdata(customerlist); int size = customerlist.size(); for (int i=0;i<size;i++){ maintc(customerlist,i); ;// End for. Create Error Handling for Failed Records (Optional) When you change the input data for example, when you add an invalid data record or the application-under-test changes an iteration of the use case may fail to execute fully and 13

14 correctly. When this happens, the application-under-test may remain in a state that s not well defined or there may be no starting point for the next iteration, and thus it s likely that the remaining script won t execute properly. A possible solution is to add some error-handling code that can help the test continue to execute even after a failed iteration. The first step is to add some code that logs every data record before it s used as input data. This will help to identify possible reasons why the script failed. String logstr = new String(); logstr = ((Customer)customerList.get(i)).name + ", "; logstr += ((Customer)customerList.get(i)).password + ", "; logstr += ((Customer)customerList.get(i)).creditCardNr + ", "; logstr += ((Customer)customerList.get(i)).expDate + ", "; logstr += ((Customer)customerList.get(i)).quantity; loginfo(logstr); The special error handling will vary for each individual test case, but for the sample scripts we just want to kill the application when, for example, a playback failure leaves some windows or dialogs open/pending. Therefore, we have to obtain the process information for the application that we start. We do this by first declaring the object that will contain the process information: ProcessTestObject p; TestObjectReference testobjectref; OSProcessInformation osprocessinfo; public void testmain (Object[] args) // Add declarations before this line. We then change the loop so that we can catch any exception and do the error handling on our own, by wrapping the call to maintc in a try-catch block. In the catch part of this statement we add some code to print out the error message and the stack trace, because it s useful to find out what caused the exception. After printing the information, we kill the application if it s available (and assume that it already got removed if it s not available). for (int i=0;i<size;i++){ try{ maintc(customerlist,i); catch (Exception e){ logerror("error: " + e.getmessage()); e.printstacktrace(system.out); if (!osprocessinfo.processnotavailable) osprocessinfo.kill(); ; // End for. To verify that this code really does what we want, we can add a new user who doesn t exist to the data records. You ll see that the error gets reported in the log file, as shown in Figure 3; the application will be removed and restarted for the next iteration. 14

15 Figure 3: Log results of a failed data-driven test script Finally, the Data-Driven Test Script If you ve followed all of the directions above, you have an XDE Tester script that you can run to demonstrate data-driven testing. Listing 5 is the final script after refactoring and with error handling added. This script loads test data from the three different kinds of data sources we discussed. import java.io.bufferedreader; import java.io.file; import java.io.filereader; import java.io.ioexception; import java.sql.connection; 15

16 import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.util.arraylist; import resources.classicsjavaa_csv_db_dphelper; import resources.customer; import com.rational.test.ft.object.testobjectreference; import com.rational.test.ft.object.interfaces.processtestobject; import com.rational.test.ft.sys.osprocessinformation; import com.rational.test.tss.tssdatapool; /** * Description : XDE Tester Script Administrator */ public class ClassicsJavaA_CSV_DB_DP extends ClassicsJavaA_CSV_DB_DPHelper { /** * Script Name : <b>classicsjavaa</b> * Generated : <b>sep 2, :09:14 PM</b> * Modified : <b>sep 2, :09:14 PM</b> * Description : XDE Tester Script * Original Host : WinNT Version 5.0 Build 2195 (Service Pack 2) * 2002/09/02 Administrator */ ProcessTestObject p; TestObjectReference testobjectref; OSProcessInformation osprocessinfo; public void testmain (Object[] args) { ArrayList customerlist = new ArrayList(); // loadtestdatadb(customerlist); // loadtestdatacsv(customerlist); loadtestdatadp(customerlist); int size = customerlist.size(); for (int i=0;i<size;i++){ try{ maintc(customerlist,i); catch (Exception e){ logerror("error: " + e.getmessage()); e.printstacktrace(system.out); if (!osprocessinfo.processnotavailable) osprocessinfo.kill(); ; 16

17 // End for. protected void maintc(arraylist customerlist,int i) { String logstr = new String(); logstr = ((Customer)customerList.get(i)).name + ", "; logstr += ((Customer)customerList.get(i)).password + ", "; logstr += ((Customer)customerList.get(i)).creditCardNr + ", "; logstr += ((Customer)customerList.get(i)).expDate + ", "; logstr += ((Customer)customerList.get(i)).quantity; loginfo(logstr); p = startapp("classicsjavaa"); testobjectref = p.getobjectreference(); osprocessinfo = testobjectref.getprocess(); // Frame: ClassicsCD tree2tree().drag(atpath("composers->schubert"), atpoint(8,8), atrow(atpath("composers->schubert")), atpoint(8,8)); tree2tree().drag(atpath("composers->schubert->die schone Mullerin, Op. 25")); placeorderbutton2button().click(); // Frame: Member Logon namecombocombobox().click(); // namecombocombobox().drag(attext("trent Culpito")); namecombocombobox().click(attext(((customer)customerlist.get(i)).name)); _passtext2text().drag(atpoint(53,8), atpoint(52,8)); // logframe1frame().inputkeys("nix"); logframe1frame().inputkeys(((customer)customerlist.get(i)).password); okorderlogonbutton().click(); // Frame: Place an Order _quantityfieldtext().drag(atpoint(20,10), atpoint(1,7)); // orderformframe().inputkeys("2"); orderformframe().inputkeys(((customer)customerlist.get(i)).quantity); _cardnumberfieldtext().click(atpoint(15,7)); // orderformframe().inputkeys(" "); orderformframe().inputkeys(((customer)customerlist.get(i)).creditcardnr); _expirefieldtext().click(atpoint(24,11)); // orderformframe().inputkeys("4711"); orderformframe().inputkeys(((customer)customerlist.get(i)).expdate); placeorderbutton().click(); Yourorderhasbeenr_standardVP().performTest(); // OKButton().click(); // Frame: ClassicsCD ClassicsJavaFrame2(ANY,MAY_EXIT).close(); 17

18 protected void loadtestdatadp(arraylist customerlist) { Customer customer; try{ TSSDatapool dp = new TSSDatapool(); boolean fretval = false; String sdpname = "Customer"; dp.open(sdpname); fretval = dp.fetch(); while (fretval){ customer = new Customer(); customer.name = dp.value("name").tostring(); customer.password = dp.value("password").tostring(); customer.creditcardnr = dp.value("creditcardnr").tostring(); customer.quantity = dp.value("quantity").tostring(); customer.expdate = dp.value("expdate").tostring(); customerlist.add(customer); System.out.println(customer.name); System.out.println(customer.password); System.out.println(customer.creditCardNr); System.out.println(customer.quantity); System.out.println(customer.expDate); fretval = dp.fetch(); ; catch(exception e){ logerror("error: Datapool - " + e.getmessage()); e.printstacktrace(system.out); ; loginfo("datapool loaded!"); protected void loadtestdatacsv(arraylist customerlist) { String filename = System.getProperty("user.home")+File.separator + "Customer.csv"; String line; Customer customer; int startindex; int endindex; try{ BufferedReader in = new BufferedReader(new FileReader(filename)); while ((line=in.readline())!= null){ customer = new Customer(); System.out.println(line); startindex = 0; endindex = line.indexof(',',0); customer.name = line.substring(startindex,endindex); 18

19 startindex = endindex + 1; endindex = line.indexof(',',startindex); customer.password = line.substring(startindex,endindex); startindex = endindex + 1; endindex = line.indexof(',',startindex); customer.creditcardnr = line.substring(startindex,endindex); startindex = endindex + 1; endindex = line.indexof(',',startindex); customer.quantity = line.substring(startindex,endindex); startindex = endindex + 1; endindex = line.indexof(',',startindex + 1); customer.expdate = line.substring(startindex); customerlist.add(customer); System.out.println(customer.name); System.out.println(customer.password); System.out.println(customer.creditCardNr); System.out.println(customer.quantity); System.out.println(customer.expDate); ; in.close(); catch(ioexception e){ logerror("file Open Error!"); loginfo("file-data loaded!"); protected void loadtestdatadb(arraylist customerlist) { Customer customer; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch (ClassNotFoundException e){ logerror("error: Failed to load JDBC:ODBC Driver!"); try{ Connection con = DriverManager.getConnection("jdbc:odbc:customerdb","",""); Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery("select NAME,PASSWORD,CREDITCARDNR,QUANTITY,EXPDATE FROM CUSTOMERDATA"); while (rs.next()){ customer = new Customer(); customer.name = rs.getstring("name"); customer.password = rs.getstring("password"); customer.creditcardnr = rs.getstring("creditcardnr"); customer.quantity = rs.getstring("quantity"); 19

20 ; customer.expdate = rs.getstring("expdate"); customerlist.add(customer); System.out.println(customer.name); System.out.println(customer.password); System.out.println(customer.creditCardNr); System.out.println(customer.quantity); System.out.println(customer.expDate); rs.close(); stmt.close(); con.close(); catch(sqlexception sqle){ logerror("error: SQL Exception - " + sqle.getmessage()); sqle.printstacktrace(system.out); loginfo("db-data loaded!"); Listing 5: Our sample XDE Tester script, revised to implement data-driven testing About the Author Dr. Gerd Weishaar is a technology evangelist for the automated quality assurance group (ASQG) of IBM Rational Software. He works for worldwide technical marketing and is responsible for communication and information exchange among product managers, product marketing managers, field sales staff, and customers. Before joining Rational in 1999, he worked for a software engineering research laboratory at Kepler University in Linz, Austria. During this time he conducted several software projects for the steel industry and for a vendor of load-testing tools. Dr. Weishaar welcomes feedback on this article and can be reached by . 20

Customizing Rational Functional Tester scripts for data-driven testing

Customizing Rational Functional Tester scripts for data-driven testing Customizing Rational Functional Tester scripts for data-driven testing Page 1 of 7 Customizing Rational Functional Tester scripts for data-driven testing Level: Intermediate Pradosh Tarkar (pradosht@in.ibm.com),

More information

DATABASE DESIGN I - 1DL300

DATABASE DESIGN I - 1DL300 DATABASE DESIGN I - 1DL300 Fall 2010 An introductory course on database systems http://www.it.uu.se/edu/course/homepage/dbastekn/ht10/ Manivasakan Sabesan Uppsala Database Laboratory Department of Information

More information

while (rs.next()) { String[] temp_array = {"","",""}; int prodid = rs.getint(1); temp_array[0] = ""+prodid;

while (rs.next()) { String[] temp_array = {,,}; int prodid = rs.getint(1); temp_array[0] = +prodid; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.util.arraylist; import java.util.scanner; public

More information

CSC System Development with Java. Database Connection. Department of Statistics and Computer Science. Budditha Hettige

CSC System Development with Java. Database Connection. Department of Statistics and Computer Science. Budditha Hettige CSC 308 2.0 System Development with Java Database Connection Budditha Hettige Department of Statistics and Computer Science Budditha Hettige 1 From database to Java There are many brands of database: Microsoft

More information

Rational Functional Tester - Tips and Tricks

Rational Functional Tester - Tips and Tricks IBM Rational Software Development Conference 2006 Rational Functional Tester - Tips and Tricks Suma Byrappa IBM Rational Swathi Rao 2006 IBM Corporation Agenda IBM Rational Software Development Conference

More information

Tiers (or layers) Separation of concerns

Tiers (or layers) Separation of concerns Tiers (or layers) Separation of concerns Hiding the type of storage from the client class Let s say we have a program that needs to fetch objects from a storage. Should the program have to be concerned

More information

Java Database Connectivity

Java Database Connectivity Java Database Connectivity INTRODUCTION Dr. Syed Imtiyaz Hassan Assistant Professor, Deptt. of CSE, Jamia Hamdard (Deemed to be University), New Delhi, India. s.imtiyaz@jamiahamdard.ac.in Agenda Introduction

More information

Easy Steps to Learn IBM - Rational Functional Tester (RFT) Index

Easy Steps to Learn IBM - Rational Functional Tester (RFT) Index Easy Steps to Learn IBM - Rational Functional Tester (RFT) Index 1) Introduction... 2 2) RFT Menu Items... 3 3) Recording... 11 4) Replay... 13 5) Simple Java Scripting... 14 6) Verification Points...

More information

SQream Connector JDBC SQream Technologies Version 2.9.3

SQream Connector JDBC SQream Technologies Version 2.9.3 SQream Connector JDBC 2.9.3 SQream Technologies 2019-03-27 Version 2.9.3 Table of Contents The SQream JDBC Connector - Overview...................................................... 1 1. API Reference............................................................................

More information

Databases 2012 Embedded SQL

Databases 2012 Embedded SQL Databases 2012 Christian S. Jensen Computer Science, Aarhus University SQL is rarely written as ad-hoc queries using the generic SQL interface The typical scenario: client server database SQL is embedded

More information

DB I. 1 Dr. Ahmed ElShafee, Java course

DB I. 1 Dr. Ahmed ElShafee, Java course Lecture (15) DB I Dr. Ahmed ElShafee 1 Dr. Ahmed ElShafee, Java course Agenda 2 Dr. Ahmed ElShafee, Java course Introduction Java uses something called JDBC (Java Database Connectivity) to connect to databases.

More information

INTRODUCTION TO JDBC - Revised spring

INTRODUCTION TO JDBC - Revised spring INTRODUCTION TO JDBC - Revised spring 2004 - 1 What is JDBC? Java Database Connectivity (JDBC) is a package in the Java programming language and consists of several Java classes that deal with database

More information

JDBC Architecture. JDBC API: This provides the application-to- JDBC Manager connection.

JDBC Architecture. JDBC API: This provides the application-to- JDBC Manager connection. JDBC PROGRAMMING JDBC JDBC Java DataBase Connectivity Useful for database driven applications Standard API for accessing relational databases Compatible with wide range of databases Current Version JDBC

More information

Visit for more.

Visit  for more. Chapter 6: Database Connectivity Informatics Practices Class XII (CBSE Board) Revised as per CBSE Curriculum 2015 Visit www.ip4you.blogspot.com for more. Authored By:- Rajesh Kumar Mishra, PGT (Comp.Sc.)

More information

Accessing a database from Java. Using JDBC

Accessing a database from Java. Using JDBC Accessing a database from Java Using JDBC We ve got a fuzzbox and we re gonna use it Now we know a little about databases and SQL. So how do we access a database from a Java application? There is an API

More information

You write standard JDBC API application and plug in the appropriate JDBC driver for the database the you want to use. Java applet, app or servlets

You write standard JDBC API application and plug in the appropriate JDBC driver for the database the you want to use. Java applet, app or servlets JDBC Stands for Java Database Connectivity, is an API specification that defines the following: 1. How to interact with database/data-source from Java applets, apps, servlets 2. How to use JDBC drivers

More information

INTRODUCTION TO JDBC - Revised Spring

INTRODUCTION TO JDBC - Revised Spring INTRODUCTION TO JDBC - Revised Spring 2006 - 1 What is JDBC? Java Database Connectivity (JDBC) is an Application Programmers Interface (API) that defines how a Java program can connect and exchange data

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

public class Q1 { public int x; public static void main(string[] args) { Q1 a = new Q1(17); Q1 b = new Q1(39); public Q1(int x) { this.

public class Q1 { public int x; public static void main(string[] args) { Q1 a = new Q1(17); Q1 b = new Q1(39); public Q1(int x) { this. CS 201, Fall 2013 Oct 2nd Exam 1 Name: Question 1. [5 points] What output is printed by the following program (which begins on the left and continues on the right)? public class Q1 { public int x; public

More information

Advanced Programming Techniques. Database Systems. Christopher Moretti

Advanced Programming Techniques. Database Systems. Christopher Moretti Advanced Programming Techniques Database Systems Christopher Moretti History Pre-digital libraries Organized by medium, size, shape, content, metadata Record managers (1800s-1950s) manually- indexed punched

More information

Database Application Development

Database Application Development Database Application Development Linda Wu (CMPT 354 2004-2) Topics SQL in application code Embedded SQL JDBC SQLJ Stored procedures Chapter 6 CMPT 354 2004-2 2 SQL in Application Code SQL commands can

More information

Accessing databases in Java using JDBC

Accessing databases in Java using JDBC Accessing databases in Java using JDBC Introduction JDBC is an API for Java that allows working with relational databases. JDBC offers the possibility to use SQL statements for DDL and DML statements.

More information

Instructor: Jinze Liu. Fall 2008

Instructor: Jinze Liu. Fall 2008 Instructor: Jinze Liu Fall 2008 Database Project Database Architecture Database programming 2 Goal Design and implement a real application? Jinze Liu @ University of Kentucky 9/16/2008 3 Goal Design and

More information

COP4540 TUTORIAL PROFESSOR: DR SHU-CHING CHEN TA: H S IN-YU HA

COP4540 TUTORIAL PROFESSOR: DR SHU-CHING CHEN TA: H S IN-YU HA COP4540 TUTORIAL PROFESSOR: DR SHU-CHING CHEN TA: H S IN-YU HA OUTLINE Postgresql installation Introduction of JDBC Stored Procedure POSTGRES INSTALLATION (1) Extract the source file Start the configuration

More information

ERwin and JDBC. Mar. 6, 2007 Myoung Ho Kim

ERwin and JDBC. Mar. 6, 2007 Myoung Ho Kim ERwin and JDBC Mar. 6, 2007 Myoung Ho Kim ERwin ERwin a popular commercial ER modeling tool» other tools: Dia (open source), Visio, ConceptDraw, etc. supports database schema generation 2 ERwin UI 3 Data

More information

Lesson 13 Transcript: User-Defined Functions

Lesson 13 Transcript: User-Defined Functions Lesson 13 Transcript: User-Defined Functions Slide 1: Cover Welcome to Lesson 13 of DB2 ON CAMPUS LECTURE SERIES. Today, we are going to talk about User-defined Functions. My name is Raul Chong, and I'm

More information

JDBC 3.0. Java Database Connectivity. 1 Java

JDBC 3.0. Java Database Connectivity. 1 Java JDBC 3.0 Database Connectivity 1 Contents 1 JDBC API 2 JDBC Architecture 3 Steps to code 4 Code 5 How to configure the DSN for ODBC Driver for MS-Access 6 Driver Types 7 JDBC-ODBC Bridge 8 Disadvantages

More information

EJB - ACCESS DATABASE

EJB - ACCESS DATABASE EJB - ACCESS DATABASE http://www.tutorialspoint.com/ejb/ejb_access_database.htm Copyright tutorialspoint.com EJB 3.0, persistence mechanism is used to access the database in which container manages the

More information

ADF Mobile Code Corner

ADF Mobile Code Corner ADF Mobile Code Corner m05. Caching WS queried data local for create, read, update with refresh from DB and offline capabilities Abstract: The current version of ADF Mobile supports three ADF data controls:

More information

C:/Users/zzaier/Documents/NetBeansProjects/WebApplication4/src/java/mainpackage/MainClass.java

C:/Users/zzaier/Documents/NetBeansProjects/WebApplication4/src/java/mainpackage/MainClass.java package mainpackage; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import javax.ws.rs.core.context; import

More information

Vendor: IBM. Exam Code: C Exam Name: Rational Functional Tester for Java. Version: Demo

Vendor: IBM. Exam Code: C Exam Name: Rational Functional Tester for Java. Version: Demo Vendor: IBM Exam Code: C2140-842 Exam Name: Rational Functional Tester for Java Version: Demo QUESTION 1 How do you start the application under test? A. use the Windows Start menu B. simply begin recording

More information

CS221 Lecture: Java Database Connectivity (JDBC)

CS221 Lecture: Java Database Connectivity (JDBC) CS221 Lecture: Java Database Connectivity (JDBC) Objectives: 1. To introduce using JDBC to access a SQL database revised 10/20/14 Materials: 1. Projectable of registration system architecture. 2. JDBC

More information

Micro Focus The Lawn Old Bath Road Newbury, Berkshire RG14 1QN UK

Micro Focus The Lawn Old Bath Road Newbury, Berkshire RG14 1QN UK Relativity Designer Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com Copyright Micro Focus 2009-2015. All rights reserved. MICRO FOCUS, the Micro Focus

More information

Seam Tools Tutorial. Version: Final-SNAPSHOT

Seam Tools Tutorial. Version: Final-SNAPSHOT Seam Tools Tutorial Version: 4.2.0.Final-SNAPSHOT 1. Create a Seam Application... 1 1.1. Start Development Database... 1 2. 3. 4. 5. 1.2. Create and deploy Seam Web Project... 3 1.3. Start JBoss Application

More information

Getting started with Winstone. Minimal servlet container

Getting started with Winstone. Minimal servlet container Getting started with Winstone Minimal servlet container What is Winstone? Winstone is a small servlet container, consisting of a single JAR file. You can run Winstone on your computer using Java, and get

More information

IBM Rational SoDA Tutorial

IBM Rational SoDA Tutorial IBM Rational SoDA Tutorial Rational SoDA Version 2003.06.00 Exercise 1.4 Verifying the TestManager/RequisitePro Integration TABLE OF CONTENTS INTRODUCTION... 3 PRE-REQUISITE... 3 PC SETUP... 3 DIRECTORY

More information

Bruce Moore Fall 99 Internship September 23, 1999 Supervised by Dr. John P.

Bruce Moore Fall 99 Internship September 23, 1999 Supervised by Dr. John P. Bruce Moore Fall 99 Internship September 23, 1999 Supervised by Dr. John P. Russo Active Server Pages Active Server Pages are Microsoft s newest server-based technology for building dynamic and interactive

More information

Simple Data Source Crawler Plugin to Set the Document Title

Simple Data Source Crawler Plugin to Set the Document Title Simple Data Source Crawler Plugin to Set the Document Title IBM Content Analytics 1 Contents Introduction... 4 Basic FS Crawler behavior.... 8 Using the Customizer Filter to Modify the title Field... 13

More information

Tutorial: Using Java/JSP to Write a Web API

Tutorial: Using Java/JSP to Write a Web API Tutorial: Using Java/JSP to Write a Web API Contents 1. Overview... 1 2. Download and Install the Sample Code... 2 3. Study Code From the First JSP Page (where most of the code is in the JSP Page)... 3

More information

Lab 5: Java IO 12:00 PM, Feb 21, 2018

Lab 5: Java IO 12:00 PM, Feb 21, 2018 CS18 Integrated Introduction to Computer Science Fisler, Nelson Contents Lab 5: Java IO 12:00 PM, Feb 21, 2018 1 The Java IO Library 1 2 Program Arguments 2 3 Readers, Writers, and Buffers 2 3.1 Buffering

More information

Database Programming Overview. COSC 304 Introduction to Database Systems. Database Programming. JDBC Interfaces. JDBC Overview

Database Programming Overview. COSC 304 Introduction to Database Systems. Database Programming. JDBC Interfaces. JDBC Overview COSC 304 Introduction to Database Systems Database Programming Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Database Programming Overview Most user interaction with

More information

Chair of Software Engineering. Java and C# in Depth. Prof. Dr. Bertrand Meyer. Exercise Session 9. Nadia Polikarpova

Chair of Software Engineering. Java and C# in Depth. Prof. Dr. Bertrand Meyer. Exercise Session 9. Nadia Polikarpova Chair of Software Engineering Java and C# in Depth Prof. Dr. Bertrand Meyer Exercise Session 9 Nadia Polikarpova Quiz 1: scrolling a ResultSet (JDBC) How do you assess the following code snippet that iterates

More information

IBM EXAM QUESTIONS & ANSWERS

IBM EXAM QUESTIONS & ANSWERS IBM 000-842 EXAM QUESTIONS & ANSWERS Number: 000-842 Passing Score: 800 Time Limit: 120 min File Version: 55.5 http://www.gratisexam.com/ IBM 000-842 EXAM QUESTIONS & ANSWERS Exam Name: Rational Functional

More information

Using Code Templates in DDE by Julian Robichaux, panagenda originally published on socialbizug.org, July 2013

Using Code Templates in DDE by Julian Robichaux, panagenda originally published on socialbizug.org, July 2013 Using Code Templates in DDE by Julian Robichaux, panagenda originally published on socialbizug.org, July 2013 One of the freebies that came with integrating Domino Designer with the Eclipse platform (DDE)

More information

IBM Atlas Policy Distribution Administrators Guide: IER Connector. for IBM Atlas Suite v6

IBM Atlas Policy Distribution Administrators Guide: IER Connector. for IBM Atlas Suite v6 IBM Atlas Policy Distribution Administrators Guide: IER Connector for IBM Atlas Suite v6 IBM Atlas Policy Distribution: IER Connector This edition applies to version 6.0 of IBM Atlas Suite (product numbers

More information

PART 1. Eclipse IDE Tutorial. 1. What is Eclipse? Eclipse Java IDE

PART 1. Eclipse IDE Tutorial. 1. What is Eclipse? Eclipse Java IDE PART 1 Eclipse IDE Tutorial Eclipse Java IDE This tutorial describes the usage of Eclipse as a Java IDE. It describes the installation of Eclipse, the creation of Java programs and tips for using Eclipse.

More information

Create a functional test

Create a functional test Create a functional test Contents Sr. Title Page Introduction Create a functional test 1 Lesson 1 Setting up Rational Functional Tester Setting logging options Creating a Functional Tester project 2 2

More information

access to a JCA connection in WebSphere Application Server

access to a JCA connection in WebSphere Application Server Understanding connection transitions: Avoiding multithreaded access to a JCA connection in WebSphere Application Server Anoop Ramachandra (anramach@in.ibm.com) Senior Staff Software Engineer IBM 09 May

More information

G51PGP Programming Paradigms. Lecture OO-4 Aggregation

G51PGP Programming Paradigms. Lecture OO-4 Aggregation G51PGP Programming Paradigms Lecture OO-4 Aggregation 1 The story so far We saw that C code can be converted into Java code Note real object oriented code though Hopefully shows you how much you already

More information

Avigilon Control Center 6 System Integration Guide

Avigilon Control Center 6 System Integration Guide Avigilon Control Center 6 System Integration Guide for Paxton Net2 Access Control Systems 2018, Avigilon Corporation. All rights reserved. AVIGILON, the AVIGILON logo, AVIGILON CONTROL CENTER and ACC are

More information

Java Database Connectivity (JDBC) 25.1 What is JDBC?

Java Database Connectivity (JDBC) 25.1 What is JDBC? PART 25 Java Database Connectivity (JDBC) 25.1 What is JDBC? JDBC stands for Java Database Connectivity, which is a standard Java API for database-independent connectivity between the Java programming

More information

CS1092: Tutorial Sheet: No 3 Exceptions and Files. Tutor s Guide

CS1092: Tutorial Sheet: No 3 Exceptions and Files. Tutor s Guide CS1092: Tutorial Sheet: No 3 Exceptions and Files Tutor s Guide Preliminary This tutorial sheet requires that you ve read Chapter 15 on Exceptions (CS1081 lectured material), and followed the recent CS1092

More information

Extending TPTP for Database Unit Testing

Extending TPTP for Database Unit Testing IBM TM Software Group, Information Management Extending TPTP for Database Unit Testing Wei Liu, Hong-Lee Yu, Der-Ping Chou, Don Clare IBM Data Tools Copyright IBM Corp., 2008. All rights reserved. Source

More information

Lesson 17 Transcript: Troubleshooting

Lesson 17 Transcript: Troubleshooting Lesson 17 Transcript: Troubleshooting Slide 1 - Cover Welcome to Lesson 17 of the DB2 on Campus lecture series. Today we're going to talk about troubleshooting. My name is Raul Chong, and I'm the DB2 on

More information

Just Enough Eclipse What is Eclipse(TM)? Why is it important? What is this tutorial about?

Just Enough Eclipse What is Eclipse(TM)? Why is it important? What is this tutorial about? Just Enough Eclipse What is Eclipse(TM)? Eclipse is a kind of universal tool platform that provides a feature-rich development environment. It is particularly useful for providing the developer with an

More information

Enums. In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed.

Enums. In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed. Enums Introduction In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed. The Final Tag To display why this is useful, I m going to

More information

FILE I/O IN JAVA. Prof. Chris Jermaine

FILE I/O IN JAVA. Prof. Chris Jermaine FILE I/O IN JAVA Prof. Chris Jermaine cmj4@cs.rice.edu 1 Our Simple Java Programs So Far Aside from screen I/O......when they are done, they are gone They have no lasting effect on the world When the program

More information

IBM Netezza JDBC 연동가이드

IBM Netezza JDBC 연동가이드 개발및운영 IBM Netezza JDBC 연동가이드 2015. 08. 31 IBM Netezza JDBC 연동가이드 1. Netezza 개요 IBM Netezza 데이터웨어하우스어플라이언스는서버, 스토리지및데이터베이스를어플라이언스에통합하여빅데 이터에대한분석을수행합니다. 2. Netezza JDBC 연동방법 2.1 Netezza JDBC Driver nzjdbc3.jar

More information

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I BASIC COMPUTATION x public static void main(string [] args) Fundamentals of Computer Science I Outline Using Eclipse Data Types Variables Primitive and Class Data Types Expressions Declaration Assignment

More information

COMP102: Introduction to Databases, 23

COMP102: Introduction to Databases, 23 COMP102: Introduction to Databases, 23 Dr Muhammad Sulaiman Khan Department of Computer Science University of Liverpool U.K. 04 April, 2011 Programming with SQL Specific topics for today: Client/Server

More information

Java Programming Unit 7. Error Handling. Excep8ons.

Java Programming Unit 7. Error Handling. Excep8ons. Java Programming Unit 7 Error Handling. Excep8ons. Run8me errors An excep8on is an run- 8me error that may stop the execu8on of your program. For example: - someone deleted a file that a program usually

More information

SQL: Programming Midterm in class next Thursday (October 5)

SQL: Programming Midterm in class next Thursday (October 5) Announcements (September 28) 2 Homework #1 graded Homework #2 due today Solution available this weekend SQL: Programming Midterm in class next Thursday (October 5) Open book, open notes Format similar

More information

Databases and SQL Lab EECS 448

Databases and SQL Lab EECS 448 Databases and SQL Lab EECS 448 Databases A database is an organized collection of data. Data facts are stored as fields. A set of fields that make up an entry in a table is called a record. Server - Database

More information

Brekeke PBX Version 3 IVR Developer s Guide Brekeke Software, Inc.

Brekeke PBX Version 3 IVR Developer s Guide Brekeke Software, Inc. Brekeke PBX Version 3 IVR Developer s Guide Brekeke Software, Inc. Version Brekeke PBX version 3 IVR Script Developer s Guide Copyright This document is copyrighted by Brekeke Software, Inc. Copyright

More information

Module Road Map. 7. Version Control with Subversion Introduction Terminology

Module Road Map. 7. Version Control with Subversion Introduction Terminology Module Road Map 1. Overview 2. Installing and Running 3. Building and Running Java Classes 4. Refactoring 5. Debugging 6. Testing with JUnit 7. Version Control with Subversion Introduction Terminology

More information

Lesson 3: Accepting User Input and Using Different Methods for Output

Lesson 3: Accepting User Input and Using Different Methods for Output Lesson 3: Accepting User Input and Using Different Methods for Output Introduction So far, you have had an overview of the basics in Java. This document will discuss how to put some power in your program

More information

Exploring EJB3 With JBoss Application Server Part - 5

Exploring EJB3 With JBoss Application Server Part - 5 By Swaminathan Bhaskar 12/13/2008 Exploring EJB3 With JBoss Application Server Part - 5 In this part, we will first explore EJB Timer Service and then look at Interceptors. 7. EJB Timer Service A Timer

More information

BUSINESS INTELLIGENCE LABORATORY. Data Access: Relational Data Bases. Business Informatics Degree

BUSINESS INTELLIGENCE LABORATORY. Data Access: Relational Data Bases. Business Informatics Degree BUSINESS INTELLIGENCE LABORATORY Data Access: Relational Data Bases Business Informatics Degree RDBMS data access 2 Protocols and API ODBC, OLE DB, ADO, ADO.NET, JDBC JDBC Programming Java classes java.sql

More information

Unit 3 - Java Data Base Connectivity

Unit 3 - Java Data Base Connectivity Two-Tier Database Design The two-tier is based on Client-Server architecture. The direct communication takes place between client and server. There is no mediator between client and server. Because of

More information

Optimize Enterprise Generation Language (EGL) applications using purequery

Optimize Enterprise Generation Language (EGL) applications using purequery Optimize Enterprise Generation Language (EGL) applications using purequery Venkatesh Gopal, Data Studio Development Team Kathryn Zeidenstein, Data Studio Enablement team 1 About EGL and purequery... 3

More information

G51PGP Programming Paradigms. Lecture OO-5 Inheritance and Class Diagrams

G51PGP Programming Paradigms. Lecture OO-5 Inheritance and Class Diagrams G51PGP Programming Paradigms Lecture OO-5 Inheritance and Class Diagrams 1 Early module feedback response I will leave Graham to comment on the Haskell side Mostly positive, including about speed for Java

More information

Database Explorer Quickstart

Database Explorer Quickstart Database Explorer Quickstart Last Revision: Outline 1. Preface 2. Requirements 3. Introduction 4. Creating a Database Connection 1. Configuring a JDBC Driver 2. Creating a Connection Profile 3. Opening

More information

1. Go to the URL Click on JDK download option

1. Go to the URL   Click on JDK download option Download and installation of java 1. Go to the URL http://www.oracle.com/technetwork/java/javase/downloads/index.html Click on JDK download option 2. Select the java as per your system type (32 bit/ 64

More information

CS11 Java. Fall Lecture 4

CS11 Java. Fall Lecture 4 CS11 Java Fall 2014-2015 Lecture 4 Java File Objects! Java represents files with java.io.file class " Can represent either absolute or relative paths! Absolute paths start at the root directory of the

More information

Defining an ODBC data source

Defining an ODBC data source Defining an ODBC data source Cisco IPIVR and ICM Environment ALINEiT LLC alineit.com OVERVIEW This guideline document provides the steps needed to create an ODBC data source for the Cisco IPIVR application.

More information

Useful stuff in Java 7. New stuff that s actually useful

Useful stuff in Java 7. New stuff that s actually useful Useful stuff in Java 7 New stuff that s actually useful Try with resources Recognize this? try { stmt = con.createstatement(); ResultSet rs = stmt.executequery(query); System.out.println("Coffees bought

More information

SQL: Programming. Announcements (September 25) Motivation. CPS 116 Introduction to Database Systems. Pros and cons of SQL.

SQL: Programming. Announcements (September 25) Motivation. CPS 116 Introduction to Database Systems. Pros and cons of SQL. SQL: Programming CPS 116 Introduction to Database Systems Announcements (September 25) 2 Homework #2 due this Thursday Submit to Yi not through Jun s office door Solution available this weekend No class

More information

Introduction to Databases

Introduction to Databases JAVA JDBC Introduction to Databases Assuming you drove the same number of miles per month, gas is getting pricey - maybe it is time to get a Prius. You are eating out more month to month (or the price

More information

BBM 102 Introduction to Programming II Spring Exceptions

BBM 102 Introduction to Programming II Spring Exceptions BBM 102 Introduction to Programming II Spring 2018 Exceptions 1 Today What is an exception? What is exception handling? Keywords of exception handling try catch finally Throwing exceptions throw Custom

More information

Database Application Programs PL/SQL, Java and the Web

Database Application Programs PL/SQL, Java and the Web Database Application Programs PL/SQL, Java and the Web As well as setting up the database and running queries, it is vital to be able to build programs which manage the database although they will only

More information

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc.

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc. Putting the Pedal to the Metal RDi from *ZERO to *SIXTY Charles Guarino Central Park Data Systems, Inc. About the Speaker With an IT career spanning over 30 years, Charles Guarino has been a consultant

More information

Configure Eclipse with Selenium Webdriver

Configure Eclipse with Selenium Webdriver Configure Eclipse with Selenium Webdriver To configure Eclipse with Selenium webdriver, we need to launch the Eclipse IDE, create a Workspace, create a Project, create a Package, create a Class and add

More information

CSPP : Introduction to Object-Oriented Programming

CSPP : Introduction to Object-Oriented Programming CSPP 511-01: Introduction to Object-Oriented Programming Harri Hakula Ryerson 256, tel. 773-702-8584 hhakula@cs.uchicago.edu August 7, 2000 CSPP 511-01: Lecture 15, August 7, 2000 1 Exceptions Files: Text

More information

CSIS 10B Lab 2 Bags and Stacks

CSIS 10B Lab 2 Bags and Stacks CSIS 10B Lab 2 Bags and Stacks Part A Bags and Inheritance In this part of the lab we will be exploring the use of the Bag ADT to manage quantities of data of a certain generic type (listed as T in the

More information

Eclipse. JVM, main method and using Eclipse. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics

Eclipse. JVM, main method and using Eclipse. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics Eclipse JVM, main method and using Eclipse Produced by: Dr. Siobhán Drohan Department of Computing and Mathematics http://www.wit.ie/ Topics list Files in Java. Java Virtual Machine. main method. Eclipse

More information

Vendor: IBM. Exam Code: Exam Name: Rational Developer for System z v7.6. Version: Demo

Vendor: IBM. Exam Code: Exam Name: Rational Developer for System z v7.6. Version: Demo Vendor: IBM Exam Code: 000-051 Exam Name: Rational Developer for System z v7.6 Version: Demo QUESTION NO: 1 In Rational Developer for System z File Manager, which template is constructed without the use

More information

Creating the Data Layer

Creating the Data Layer Creating the Data Layer When interacting with any system it is always useful if it remembers all the settings and changes between visits. For example, Facebook has the details of your login and any conversations

More information

SilkTest 2010 R2. Installation Guide

SilkTest 2010 R2. Installation Guide SilkTest 2010 R2 Installation Guide Borland Software Corporation 4 Hutton Centre Dr., Suite 900 Santa Ana, CA 92707 Copyright 2009-2010 Micro Focus (IP) Limited. All Rights Reserved. SilkTest contains

More information

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently.

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple magazine data system. Milestones:

More information

Linking Reports to your Database in Crystal Reports 2008

Linking Reports to your Database in Crystal Reports 2008 Linking Reports to your Database in Crystal Reports 2008 After downloading and saving a report on your PC, either (1) browse-to the report using Windows Explorer and double-click on the report file or

More information

COMP 110/401 APPENDIX: INSTALLING AND USING ECLIPSE. Instructor: Prasun Dewan (FB 150,

COMP 110/401 APPENDIX: INSTALLING AND USING ECLIPSE. Instructor: Prasun Dewan (FB 150, COMP 110/401 APPENDIX: INSTALLING AND USING ECLIPSE Instructor: Prasun Dewan (FB 150, dewan@unc.edu) SCOPE: BASICS AND BEYOND Basic use: CS 1 Beyond basic use: CS2 2 DOWNLOAD FROM WWW.ECLIPSE.ORG Get the

More information

7. Java Input/Output. User Input/Console Output, File Input and Output (I/O)

7. Java Input/Output. User Input/Console Output, File Input and Output (I/O) 116 7. Java Input/Output User Input/Console Output, File Input and Output (I/O) 117 User Input (half the truth) e.g. reading a number: int i = In.readInt(); Our class In provides various such methods.

More information

USING DIRECT DATABASE DRIVERS

USING DIRECT DATABASE DRIVERS USING DIRECT DATABASE 1 DRIVERS Overview 2 S-PLUS Commands for Importing and Exporting 3 Dialogs for Importing and Exporting 6 Import From Database 6 Export to Database 10 How Direct Data Sources are Stored

More information

Java E-Commerce Martin Cooke,

Java E-Commerce Martin Cooke, Java E-Commerce Martin Cooke, 2002 1 Java Database Connectivity (JDBC) Plan Java database connectivity API (JDBC) Examples Advanced features JNDI JDBC 13/02/2004 Java E-Commerce Martin Cooke, 2003 2 Design

More information

Dealing with Bugs. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 27 04/21/2009

Dealing with Bugs. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 27 04/21/2009 Dealing with Bugs Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 27 04/21/2009 University of Colorado, 2009 1 Goals 2 Review material from Chapter 11 of Pilone & Miles Dealing with

More information

Project #1 Computer Science 2334 Fall 2008

Project #1 Computer Science 2334 Fall 2008 Project #1 Computer Science 2334 Fall 2008 User Request: Create a Word Verification System. Milestones: 1. Use program arguments to specify a file name. 10 points 2. Use simple File I/O to read a file.

More information

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc.

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc. Putting the Pedal to the Metal RDi from *ZERO to *SIXTY Charles Guarino Central Park Data Systems, Inc. About the Speaker With an IT career spanning over 30 years, Charles Guarino has been a consultant

More information

Importing source database objects from a database

Importing source database objects from a database Importing source database objects from a database We are now at the point where we can finally import our source database objects, source database objects. We ll walk through the process of importing from

More information

Introduction to IBM Rational Functional Tester 6.1 Mike Kelly

Introduction to IBM Rational Functional Tester 6.1 Mike Kelly Introduction to IBM Rational Functional Tester 6.1 Mike Kelly (Mike@MichaelDKelly.com) First published on IBM developerworks: http://www-130.ibm.com/developerworks/ IBM Rational Functional Tester is an

More information

JDBC [Java DataBase Connectivity]

JDBC [Java DataBase Connectivity] JDBC [Java DataBase Connectivity] Introduction Almost all the web applications need to work with the data stored in the databases. JDBC is Java specification that allows the Java programs to access the

More information