Sun Microsystems / Rave QA

Query Editor Test Specification

Contents
Test Specification Identifier

Features to be tested

Approach Refinements

Test Identification

Test Cases

Approvals

Revision History

Test Specification identifier http://rave-sol.eng.sun.com/dev/documents/test_specs/thresher/data_services/QueryEditor_TestSpec.html

(F) Features to be tested

References/Related Documents

Features that are Implemented and will be Tested

  • All Panes: Diagram, Grid, SQL & Result panes
  • Add/Remove tables/Views/Columns
  • Specifying Search Criteria
  • Specifying Sort Criteria
  • Parse/Execute Query
  • View ResultSet
  • Thresher specific features/fixes include
  • Defining
  • Support for LIKE in Criteria
  • Ability to drag table/view from Server navigator into diagram pane (5075573)
  • Usability Improvement for Adding parameter criteria (fix for 5073040)
  • Target
  • Ability to add joins not in metadata by dragging columns
  • Organize digram layout manually

Features tested but outside the scope of this test spec

  • Performance Testing
  • End to End Testing
  • Samples/Turorials verification involving Query Builder

(A) Approach refinements

   Testing would comprise of the scenarios like Test for Valid Inputs, test for invalid inputs, tests that involve visual inspection, tests that are DB server specific.

(T) Test Identification (Test Areas)

Full Test Suite

  • Acceptance Test Suite

Test Cases Detail/Procedure

NOTE:  Test cases at the bottom of the table with no test-id's include the features that are not implemented/spec'd out . It is merely used for tracking and these are not to be executed for now. Some of them may have Bug id references also.  Comments from Jim Davidson are in Notes column specified against "JD>” which would help in tracking the features/facility.

Invoking Query Editor

Test Id

(t) Test Item

(i) Input Spec

(o) Output Spec

(e) Env needs

(d) Dependencies /Notes

qb_invoke_01

Add rowset to the page

- Add table/view by dragging n dropping from Runtime window to Page Designer
- Add Table/View to Page using the context menu on table/view
- Add Same table/view twice to ensure there are no naming conflicts

 RowSet and DataProvider for this table appear in Navigator window under SessionBean1 and Page's name nodes respectively

 


qb_invoke_02

Verify Invoking Query Editor

- double clicking on the rowset in the Navigator window
- using 'Edit SQL Statement' context menu option on the rowset

- Double click on a rowset which is already open in the editor pane

- Choose 'Edit SQL Statement' on a rowset for which the QE is already open in the editor pane


- Opens the Query Editor

- Sets Editor focus to the session, if the rowset is already open

 


qb_invoke_03

Verify Switching between Other Editors(Page, Source) to Query Editor

 - Open Query Editor Sessions for a couple rowsets and Other editor session for designer, java source editor. Verify switching between editor tabs/sessions

 

 

 

qb_invoke_04

Verify switching between different query editor instances

 - Open Query editor sessions for a few rowsets and click between those using editor tabs. Verify the outcome.

 

 

 

qb_invoke_05

Verify the default/Initial/First View when opened from jdbcRowSet

 

 Table(s) shown? 
Columns appropariately selected? 
grid pane correct? 
SQL Pane correct?

 

 

qb_invoke_06

Create a Query from View

 

View shown in the diagram pane,  
Columns appropriately selected, grid pane,
SQL Pane. Use Run Query to verify the result pane

 

 

qb_invoke_07

Save, Close & Reopen Query 

 

 

 

Query saved automatically in Longfin. Undo/discard changes not implemented.

qb_invoke_08

Verify Online Help for QB and Context Sensitive Help for all components 

 

 

 

Only online help for QB available in EA. No help for components in EA.

qb_invoke_09

Verify Tool Tips wherever applicable/implememented

 

 

 

No tooltips implemented in Thresher.

qb_invoke_10

Verify that changes to Query are updated immediately in the backing bean (java file)

- Drop a table and verify the default query in query editor and java files

- add a table to the query and verify it in Page1.java

- add a constraint/criteria and verify it in Page1.java

 

 


qb_invoke_11

Verify Save, Save All

 

 

 

Undo is not supported.

qb_invoke_12

Verify the ability to drag and resize all the four panes in the query editor 

namely graph pane, grid pane, sql pane and result pane.

 

 

 


qb_invoke_13

Close project


All query editors for this projects should be closed



qb_invoke_14

Verify command property

  • Open query editor, enter some query
  • Close query editor
  • Check 'command' property of rowset

'command' property should contain query text



qb_invoke_15

Open query editor with empty command

Unset command for rowset, then open querybuilder for it

Query Builder should invoke add table dialog. After adding table it should work as usual



qb_invoke_16

Verify that query in source page is updated

Switch to page source, find query text (search by "SELECT" keyword, for example)

Text should be same as current query text in query editor



qb_invoke_17

Change command property when query is open

  1. Open query
  2. Select rowset in outline
  3. Change 'command' property

Query is updated correspondingly




Diagram Pane verification

Test Id

(t) Test Item

(i) Input Spec

(o) Output Spec

(e) Env needs

(d) Dependencies /Notes

 qb_diag_001

Verifiy the ability to select-deselect columns

Check/uncheck columns in the table frame.

Grid pane and SQL pane updated

 

 

 qb_diag_002

Verify the PK/FK columns for appropriate icons

Check for icon in the table frame

Grid pane and SQL pane updated

 


 qb_diag_003

Verify the usability for Add tables/Views.

- Right click on diagram pane, it should have 'Add Table' option

- Add Table dialog should list all tables/views in the data source

- With Horizontal & verticall scroll bars and scrollable to see the full content .

- Should be able to select multiple tables using shift/ctrl-click

- Select table(s) using shitf+click/Ctrl+click and click OK

- Select table(s) and click Cancel

- Double click on a table/view should add the table/view

- Verify that add table dialog is modal and the title is 'Select Table(s) to Add '

Shows table and relationships, if any. Grid pane and SQL pane updated appropriately.

 


 qb_diag_004

Horizontal/veritcall bar is enabled in diagram pane when required (as more tables/views are added)

 



 


 qb_diag_005

Remove tables/views from query. 

Select "Remove from Query" from the table context menu.

Table should be dropped in Diagram pane and all other panes be updated accordingly.

 

 

 qb_diag_006

Verify properties /context menu for Diagram Pane

 

 

 

No properties defined

 qb_diag_007

Verify Properties /context menu for for table/view/stored-procedure

 

 

 


 qb_diag_008

Verify Properties /context menu for for relation

 

 

 

No context menu defined

 qb_diag_009

Verify Properties /context menu for for column/all-columns

 

 

 

No properties menu defined

 qb_diag_010

Verify Group by

Select "Group By" from the diagram pane context menu.

SQL updated appropriately.

 

 

qb_diag_011

 Verify appearance of cursor after deselecing the column component from the designer and clicking in the SQL Pane

Unselect any one of the column from the diagram pane and click in the sql pane, the cursor should appear in the pane with a single click

Cursor in the SQL Pane should appear in the SQL pane after with a single click



qb_diag_012

Verify dragging tables from Server navigator to add tables in query

- Dragging tables/views from rowset datasource to diagram pane should work fine. For adding tables/view to the query.

- Dragging tables/views from a different data source to the diagram pane should be disabled. Verify the message for approrpriateness.

Verify that only table/view nodes can be dragged into diagram pane


 


qb_diag_013

Verify dragging tables from Palette to QB

Verify that codeclips/pallette-components/any-other-nodes of Palette could not be dragged into diagram pane including the table/view-column nodes.




qb_diag_014

Verify the ability to create joins by dragging columns from one table to an other table in diagram pane

- Add a table to the query which does not have PK/FK defined with the existing table. Add a join using dragging the column from first table and dropping it on the related colum on the second table. Verify that this operation generates appropriate where clause.

- Delete an existing join/arrrow (using del key) and try to re-add the join manually using this feature


 

 

Joins not in Metadata

- (Not Supported for now)Try a composite PK/FK Join like OrderDetails(orderid, productid) to OrderDetails_Extended(orderid, productid)

qb_diag_015

Verify the usability of the diagram pane which lays-out/organizes tables/ automatically

- Add a table to the query, remove the table and re-add the table. Verify the position of the table in the diagram pane (located close by to the existing tables in the pane)

- Select multiple tables to add and verify the placing of these tables on the diagram pane


 

Organize diagram layout manually

Reef Target feature QueryEditor-03

qb_diag_016

Verify the ability to change join columns using property sheet

Select a join arrow and change the columns associated in the property sheet. Verify that the SQL is updated appropriately.

  

 


qb_diag_017

Verify usage DELETE key in diagram pane

- Delete the arrow (for Join) in the diagram pane using Delete key

- select/click-on a table in diagram pane and press Delete key

All panes should be updated for the removal of table/view/join



qb_diag_018

Verify dragging tables on diagram pane

Add several tables and joins, then drag some of tables to another locations

Table frames, scrollbars, join lines should be shown appropriately




Grid Pane Verification

Test Id

(t) Test Item

(i) Input Spec

(o) Output Spec

(e) Env needs

(d) Dependencies /Notes

qb_grid_001

Ability to Select/Deselect output columns

Check/uncheck "Output " checkbox in the grid.

Diagram pane and SQL pane updated.

 

 

qb_grid_002


 Add Criteria via context menu

- Select "Add Query Criteria..." from the grid pane context menu from anywhere on the row in gridpane

- Verify with criteria value (radiobutton) & run the query to see results

- Set parameter criteria (radiobutton for =?)

- Verify for each of the comparison operator =, <, <=, >, >=, <>, LIKE, IN

-Verify (F1 and context sensitive) Help for this dialog

-Verify that this dialog is modal and the title

Grid pane and SQL pane updated.

 


qb_grid_003

Verify setting Alias for Tables/columns/views

Verify adding alias to a table/view in SQL pane

Verify adding alias to a column in grid pane

Verify setting alias for the table via property sheet

Verify using alias in WHERE clause


SQL, grid and diagram panes updated.

 

Added feature to check the alias name as per the following :

As per the SQL 92,
SQL syntax requires users to supply names for elements such as
tables, aliases, views, cursors, and columns when they define
them. SQL statements must use those names to refer to the table,
view, or other element.

The maximum length for SQL identifiers is 32 characters.

There are two types of SQL identifiers:

* Conventional identifiers
 
Conventional SQL identifiers must:
  
* Begin with an uppercase or lowercase letter.
  
* Contain only letters, digits, or the underscore character ( _ ).
  
* Not be reserved words.
  
* Use ASCII characters only.
  
* SQL does not distinguish between uppercase and lowercase
    
letters in SQL identifiers. It converts all names specified
    
as conventional identifiers to uppercase, but statements
    
can refer to the names in mixed case.

* Delimited identifiers enclosed in double quotation marks
  
* Delimited identifiers are strings of no more than 32 ASCII
    
characters enclosed in double quotation marks ( " " ).
    
Enclosing a name in double quotation marks preserves the
    
case of the name and allows it to be a reserved word or to
    
contain special characters. Special characters are any
    
characters other than letters, digits, or the underscore
    
character. Subsequent references to a delimited identifier
    
must also use enclosing double quotation marks. To include
    
a double quotation mark character in a delimited identifier,
    
precede it with another double quotation mark.  

qb_grid_004

 Column Name /table Name should not be editable

 

 

 

 

qb_grid_005

Verify Setting arguments/parameters

Add criterion with parameter via gridpane context menu and manually in the Criteria cell.

SQL updated properly.

 

 

qb_grid_006

Verify Specifying  Sort Type

Set sort type in the grid pane. Run the query.

SQL updated properly. Result pane shows ordered results.

 

 

qb_grid_007

Verify Specifying Sort Order

Set sort type for two columns in the grid pane. Change sort order. Run the query.

SQL updated. Result pane shows results ordered properly.

 

 

qb_grid_008

Verify specifying simple criteria (via grid pane).

Change "Criteria" column in the grid pane.

SQL pane updated.

 

 

qb_grid_009

Verify  Cut/Copy/Paste functionality

 Copy ("Ctrl-C" for Win) from one cell some text, paste it ("Ctrl-V" for Win) to another cell

 

 


qb_grid_010

Verify  Delete

 Select some text in cell and press "Del" to delete it

 

 


qb_grid_011

Verify  Cut/Copy/Paste/Delete menu items functionality

Try to select/deselect text in editor - items should be enabled/disabled correspondingly

Use these items to execute appropriate operations



Added for Thresher

Currently not implemented

qb_grid_012

Verify Properties with selecting items/columns in grid pane




No properties defined

qb_grid_013

What if column is required twice (select empno, empno, name ...)

Type in query like this: SELECT PERSON.PERSONID, PERSON.PERSONID
FROM PERSON. Parse and run the query.

Diagram and grid pane updated. Result pane contains the output column twice.

 

Another way to provide multiple output for the one column is not implemented 

qb_grid_014

 Verify the appearance of popup menu which has one menu item "Add Query Criteria..."

Right click in the the grid on any column, the popup menu with single menu item "Add Query Criteria..." should appear on all the columns.  Try with more than one column. 

Popup menu with element "Add Query Criteria..." should appear

 


qb_grid_015

Verify that popup menu does not appear when the components state is intermediate(eg: we are not done with the selection process, drop down list of sort order) appearance of popup menu which has one menu item "Add Query Criteria"

click in the the grid on sort any column, the drop down list should  appear, without selecting the order, now right click the popup menu should not appear.
After selecting the sort order right clicking should bring up popup menu with single menu item "Add Query Criteria".

Popup menu appearance depends on the state of the component.

 


qb_grid_016

Adding criterion with parameter


 

 

Some usability issues are not yet fixed/implemented

http://bt2ws.central.sun.com/CrPrint?id=5073040

Still not implemented in Thresher

qb_grid_017

Adding several AND criteria

Add AND query criteria several times to one column (with different values).

After every adding new criteria new row should appear, while current row should contain added criteria.


Added for Thresher
Currently feature is removed

qb_grid_018

Adding several OR criteria

Add OR query criteria several times to on column (with different values).

After every adding new criteria new column should appear, while current column should contain added criteria


Added for Thresher

Currently feature is removed

qb_grid_019

Verify Enter effect

Type text in column and press Enter 

Query is updated



qb_grid_020

Verify Esc effect

Type text in column and press Esc

Cell returns to previous state



qb_grid_21

* mark for complex criteria

Type query with complex criteria, for example

SELECT PERSON.PERSONID FROM PERSON

WHERE (PERSON_ID> 10 OR PERSON_ID <5)

Parse query

*** mark appears in criteria cell (PERSON_ID column in example)



qb_grid_22

Verify grid table size 

Check if  table fits query editor pane by horizontal





 

SQL Pane Verification

Test Id

(t) Test Item

(i) Input Spec

(o) Output Spec

(e) Env needs

(d) Dependencies /Notes

qb_sql_01

Change SQL and verify if this parsed and other panes are updated accordingly. Also Run the Query

E.g. SELECT PERSON.PERSONID FROM PERSON

All other panes updated.

 

 

qb_sql_02

Type “Select * from Person” and verify “Parse Query”


* should be parsed as ALL <list of fields>



qb_sql_03

Type SQL embedded with newline/enter characters and try “Run Query”

 

 

 


qb_sql_04

Change the case (upper to lower) in SQL and verify that it works






qb_sql_05

Change columnnames as columnnames w/o prefixes, tablename.columnname, schemaname.tablename.columnname and verify that it works as expected





qb_sql_06

Verify syntax highlight

Enter query with lots of different keywords, parse it

Keywords, column names, schema name  should be highlighted with corresponding colors



qb_sql_07

Verify case auto-change

Type query manually

Keywords should be automatically converted to uppercase. Keywords inside of string literal shouldn't.





Results Pane verification

Test Id

(t) Test Item

(i) Input Spec

(o) Output Spec

(e) Env needs

(d) Dependencies /Notes

qb_res_01

Verify Horizontal/verticall bar for viewing the result set

Type in query like this: SELECT * FROM PERSON CROSS JOIN TRIP CROSS JOIN PERSONTRIP

Horizontal/verticall scroll bars enabled.

 

 

qb_res_02

Verify if the column can be stretched to view the full data

 

 

 

 

qb_res_03

Verify the format of Date, Time, Timestamp, BLOB/CLOB shown

 

 

 


qb_res_04

Verify Run Query on table with more rows

 

 Results truncated to 40 rows displayed

 


qb_res_05

Verify Run Query with zero/no rows in table

 

 

 


qb_res_06

Running query with parameter criteria

  • Add 2 parameter query criteria and run query.
  • Enter values for parameters and choose OK
  • Dialog for entering values should appears
  •  Query must be executed with entered values as parameters

- Specifying Parame



qb_res_07

Verify dialog for specifying query parameters

  • Add 2 parameter query criteria and run query.
  • Verify Enter, Esc, F1 effects, dialog modality, etc.


  • Dialog for entering values should appears
  • Dialog works correctly



qb_res_08

Verify that the result pane rows displayed are not editable

 

 

 


qb_res_09

Verify the error message when columnname, tablename, viewname or schema name is mis-spelt





qb_res_10

Verify results pane for INSERT/UPDATE/DELETE operators

Run INSERT/UPDATE/DELETE query

Result pane should be empty


Added for Thresher

Currently not implemented


 

Common Query Design Scenarios

  • Performing Basic Operations with Queries
  • Specifying Search Criteria
  • Querying on Groups of Rows
  • Querying Using Multiple Tables
  • Creating General Purpose Queries
  • Expressions in Queries
  • Including User-Defined Functions in a Query
  • Manipulating Data in Results Pane
  • Creating Insert/Update/Delete Query
  • Miscellaneous

NOTE:

  • Each of the scenario could be done in different ways. Not all possible operations are implemented.  Scenarios with Test ID "Not implemented" are not to be executed
  • We should try out each of the scenario against all supported databases (Oracle 9i/8i, MS SQL Server, DB2, Sybase, MySQL & PointBase).
  • Most of the scenarios below have been updated for Reef - please review this and suggest any missing scenarios/cases.
     

     

 

Test Id

(t) Test Item

(i) Input Spec

(o) Output Spec

(e) Env needs

(d) Dependencies /Notes

qb_01

 Add a table/ view to query

In the Diagram pane, right-click the background and choose Add Table from the shortcut menu. In the Select Table(s) to Add... dialog box, select the one or more tables/views you want to add to the query and click OK.

- Select tables/views with PK/FK join/relationship in metadata
- Select tables/view w/o PK/FK relations defined in metadata

 Query updated for the table/view in SELECT, FROM, WHERE  

 

 

qb_02

 Remove a table/view from a query

In the Diagram pane, select the table/view and right-click the object and then choose Remove from Query

O/P: When you remove a table/view, the Query Editor automatically removes joins that involve that table/view and removes references to the object's columns in the SQL pane and Grid pane. However, if the query contains complex expressions involving the object, the object is not automatically removed until all references to it are removed

 Query updated for the table/view in SELECT, FROM, WHERE

 


- Multiple selection not supported.


qb_03

 Add a column to a query

To add an individual column 
- In the Diagram pane, select the check box next to the data column that you want to include. 

- In the SQL pane, add the column name and parse/run query should select the column in the diagram pane.

- Use a column in criteria but not in ouput like select name from person where personid> 2. Add Colum, Add Criteria and uncheck ouput in grid pane.


 

 Oracle Specific

Note : Table.* is removed


qb_04

 Remove a column from the query output

 - In the Diagram pane, clear the check box next to the name of the column you want to remove. 
- Remove the column from the output list in the SQL pane. 

- Uncheck proper "output" checkbox in the grid pane.

 

 

 

qb_05

 Change the order of columns in query output

 Edit the order of the column names in the SQL pane. 

 

 

JD>  Not in Spec:
Cannot reorder columns in Diagram or Grid.

qb_06

 Verify a query

 Right-click in the SQL pane, and select  "Parse Query" from the context menu. See information about parsing incorrect queries in qb_neg_002.

 

 

 All types of queries not supported. Should show appropriate message when parsing unsupported ones.

SD> Implemented in RR. If the QE is unable to parse SQL, user is given a choice to continue ahead with the query (in which case the diagram and grid pane will stop responding) or to cancel (in which case the previous valid query will be restored)

qb_07

 Execute a query

 Right-click anywhere in the query window, and select Run from the context menu 
The Query Editor returns results truncated to 40 rows, if the result has more rows or all rows, if the result has fewer than 40 rows.

 

 

 

JD> Keyboard shortcut not supported.

For LS - only first 40 rows can be returned. Number of rows and time spent for query execution not shown.

 

qb_08

Order result rows of a query

In the Grid pane, locate the row containing the first data column or expression to sort by, and then in the Sort Type grid column, choose Ascending or Descending
If you are sorting by multiple columns or expressions, specify the sort order in the Sort Order column of the grid. 

 

 



qb_09

Specifying search conditions in the Query Editor

Add the columns or expressions that you want to use within your search condition to the Grid pane.Locate the row containing the data column or expression to search, and then in the Criteria grid column, enter a search condition. Note   By default, the Query Editor automatically inserts the equality operator "=". The Query Editor updates the SQL statement in the SQL pane by adding or modifying the WHERE clause.

 

 

 

IS NULL is not supported now.


qb_10

Creating expressions that you can use in search conditions

To find rows that do not match a value, use the NOT operator. For example, to find all the rows in a products table where the values in the product code column begin with a character other than "A," you can enter a search condition such as the following: 

NOT LIKE 'A%' or empid <> 123

 

 

 

JD> NOT not implemented.

Expressions not supported.

SD> No change.

 

qb_11

Using operators in search conditions

Comparison Operators, Logical Operators 

To specify an OR condition

  1. In the Grid pane, add the column to search.
  2. In the Criteria column for the data column you just added, specify the first condition.
  3. Note: Or ... column has been removed. So, specify the second condition/criteria against an other column.
  4. -or- type in the query in SQL Pane, and Parse /Run Query

To specify an AND condition

  1. In the Grid pane, add the column to search.
  2. In the Criteria column for the data column you just added, specify the first condition.
  3. Add the same data column to the Grid pane again, placing it in an empty row of the grid.
  4. In the Criteria column for the second instance of the data column, specify the second condition.
  5. -or- type in the query in SQL Pane and Parse/Run Query

To specify AND and OR condition

  1. In the Grid pane, add the column to search.
  2. In the Criteria column for the data column you just added, specify the first condition.
  3. Add the same data column to the Grid pane again, placing it in an empty row of the grid.
  4. In the Criteria column for the second instance of the data column, specify the second condition.
  5. -or- type in the query in SQL Pane and Parse/Run Query. W/ Northwind SQLServer Data source, using books table surname like [A-M]%' OR (id<203 and id > 205)

 

 

JD> OR not implemented. No plans for AND 

SD> No change.

We can't specifiy multiple criteria against the same column like id > 200 and id< 205 in the criteria cell.

qb_12

Entering text, numbers, dates, or logical value

Embedding apostrophe 'Swan''s Way' 
ANSI date format { d '1990-12-31' } 
ANSI timestamp fromat {ts '1990-12-31 00:00:00'}

 

 

 JD> Not implemented

SD> No change.

qb_13

Removing duplicate rows from Select queries

Add DISTINCT thru SQL Pane

 

 


qb_14

Applying multiple search conditions to the same data column

In the Grid pane, add the column to search. In the Criteria column for the data column you just added, specify the first condition. In the Or ... column for the same data column, specify the second condition. 
The Query Designer creates a WHERE clause that contains an OR condition such as the following: 

Examples: SELECT fname, lname FROM employees WHERE (salary < 30000) OR (salary > 100000)

SELECT title_id, title FROM titles WHERE (title LIKE '%Cook%') AND (title LIKE '%Recipe%')

 

 

 JD> Not implemented yet

SD> No change.

qb_15

Including several data columns as part of the search condition for a query

Examples:

SELECT title_id, title FROM titles WHERE (title LIKE '%Cook%') AND (title LIKE '%Recipe%')

SELECT pub_id, title FROM titles WHERE (pub_id = '0877') AND (title LIKE '%Cook%')

 

 

JD> Not Implemented yet

qb_16

Linking search conditions with AND and OR operators

Precedence of AND and OR :When a query is executed, it evaluates first the clauses linked with AND, and then those linked with OR 
Ex:  A AND (B OR C)    , (A  AND B) OR (C AND D)

 

 

 JD> Not Implemented yet

SD> No change.

 qb_17

Verify Querying with Parameters

Set criteria with parameters and execute the query.

Message which says that running queries with parameters is not supported should be displayed.

 

Execution of parameterised queries not implemented in EA.

SD> Same as EA

but now an appropriate message is displayed.

qb_18

Verify GROUP BY

Add table, check GROUP BY in the context menu of the diagram pane. Select/deselect column in the diagram pane. Run the query.

 

  

 

qb_19

Verify that alias could be removed properly.

Add alias for table and then remove it. Check that SQL query is still correct.

Add alias for column name in gridpane and run query to verify that alias name given is seen the results pane as the column name.


 

 

 Embedded spaces in alias name gives error. Does it need to be quoted?

qb_20

Check generated query in java class.

Open appropriate java class and check that there's a correct query in code (no special symbols like \n added, etc.).

 

 

 

qb_21

Verify changing JOIN type.

Click on JOIN arrow in the diagram pane and change its type in the propertysheet from INNER to LEFT/RIGHT OUTER. Run the query. Try to set the type back to INNER.

 

 


qb_22

Parsing some specific queries.

Parse a query which contains names without prefixed scheme name (e.g. PERSON instead of ROOT.PERSON).

 Scheme name should be added, no errors should appear.

 

 

qb_23

Parsing case-insensitive names

Parse a query which contains names in the wrong case (e.g. lowercase instead of uppercase). 

 Case should be corrected, no errors should appear.

 


qb_24

Parsing queries with simplified names.

Parse a query like SELECT PERSONID FROM PERSON (here PERSONID used instead of PERSON.PERSONID).

Names in the query should be changed to full qualified and the query should be parsed without errors.

 


qb_25

Querying Using Multiple Tables

Inner Joins 
Outer Joins 
Self Joins  (not implemented now)
Verify removing tables involved in joins 

 

 


qb_26

Verify joins in combination with aliased tables.

Add two related tables to the query (e.g. PERSON and TRIP) to create join. Than specify an alias for one of them or for both. Try to remove one of the tables from the query. Try to remove alias back. Check that SQL pane is still correct.

 

 

 

qb_31

Verify default order Ascending is selected when Sort Order is selected

In the Grid pane select Sort order drop down list and select the Sort order number.  The order should change to Ascending automatically.  Select the next column in the grid pane under Sort order and select the next available sort order number, Ascending order should appear automatically.  Change the ascending order to descending and execute the query and make sure that data appears in the above said order.

Ascending order should appear by default.



qb_32

Queries with computed columns 

Verify that queries like 'select a , a*b, c+' '+d...' works fine 

 

 


qb_33

Queries with aggregate functions usage

Verify that queries using AVG | MAX | MIN | SUM | COUNT functions works fine 


Examples: SELECT COUNT(*) FROM Person

                 SELECT AVG(COL1) FROM NoRelation



Added for Thresher

qb_34

Verify using multiple criteria with Criteria Order

Add multiple criteria to the query. Use Criteria order to set the order of criteria and verify the result.

WHERE clause needs to reflect the criteria per the order set

 


 Not implemented

Querying on Groups of Rows

Create subsets of summary information by organizing data into groups -  avg, sum 
Count the number of rows that meet specific conditions - count(*) 
Create search conditions that apply to groups of rows /both individual rows and on groups of rows 

 

 

Grouping
Counting

Aggregating

Conditions

 HAVING

qb_35

Queries with parameters

Create queries with parameters 
Creating a Query with Unnamed Parameters 
Creating a Query with Named Parameters 
Specifying Parameter Marker Characters - You may want use char like "%"

 

 

.NET
JD> Only Unnamed parameters using ?

SD> No change.

qb_36

Multiply AND and OR conditions

Enter and run query with mutiply conditions connected with AND for specific field. Use parenthesis around composite condition.

Same for OR. 

Same for combination of AND and OR.

Same for 2 fields simultaneously

Parse is OK, *** in Criteria column of grid pane, query execution is successful.


Added for Thresher

qb_37

Verify Cut/Copy/Paste 

  1. Copy some text from Notepad or other external program
  2. Paste (Ctrl-C) in into query text pane
  3. Cut another text from query text pane
  4. Paste it to external program 

Cut/Copy/Paste operations are successful


Added for Thresher

qb_38

Verify strings with keywords

Parse query 

SELECT ALL TRAVEL.PERSON.PERSONID, 

                    TRAVEL.PERSON.NAME, 

                    TRAVEL.PERSON.JOBTITLE, 

                    TRAVEL.PERSON.FREQUENTFLYER 

FROM TRAVEL.PERSON

WHERE TRAVEL.PERSON.NAME  like  'select' 

'select' should remain in  lowercase, while like should become uppercase


Added for Thresher

qb_39

Verify mouse pointer states

Execute several long operations (adding several tables at once, running query with much of output, etc.)

Mouse pointer should become hourglass at start and become normal when operation is finished 


Added for Thresher

qb_40

Check Tab order

Press Tab in main QB window and in all dialogs. 

All enabled components should be able to get focus with Tab, and disabled components shouldn't receive focus


Added for Thresher

qb_41

Check spaces in table name

Add table with spaces in name to query. Unselect some fields, add query criteria, sorting order, join to other table, alias. Parse and run query.

Also check manual typing query for such table.



Added for Thresher

 Not implemented

Create Make Table Query

Select * into 
Create table name as select * 

 

Database  specific


 Not implemented

forced used of indexes in the query? 

 select * from tablename { with index(indexname) }

 

 



 
 
 
 

Negative Tests

 

Test Id

(t) Test Item

(i) Input Spec

(o) Output Spec

(e) Env needs

(d) Dependencies /Notes

 qb_neg_01

 what if connection gets disconnected or the datasource is unavailable

 

 

 

 

qb_neg_ 02

 what if SQL is not syntactically correct 

Input incorrect query in the SQL pane and parse it. Try to run it.

Dialog in which user is given a choice to continue ahead with the query (in this case the diagram and grid pane will stop responding) or to cancel (in this case the previous valid query will be restored) should appear. When user tries to run incorrect query, appropriate error message should appear.

 

 

qb_neg_ 03

 what if no rows are returned -- any message indicating that query has been executed 

 

 

 

 

qb_neg_04

 Error messages from DB Server shown appropriately - For instance, error due to permission problems

  For instance

- error due to permission problems

- When DB Server is down

 

 

 

 qb_neg_05

what if Resultset has unsupported datatypes (BLOB) 

 

 

 

 

 qb_neg_06

 Run the ide with “-fontsize 18” and verify that all query editor UI interface/text are usable and dialogs are resizable. This is sort of A11y test.

 

 

 

 

 qb_neg_07

 Queries that can't be represented diagrammatically

- Group by using aggregate functions like sum/avg/count

- Sub Queries

- BETWEEN in criteria (unsupported now)


 Diagram pane is greyed/disabled but should be able to execute the query still and verify the results.

 

 



Insert/Update/Delete Tests

Test Id

(t) Test Item

(i) Input Spec

(o) Output Spec

(e) Env needs

(d) Dependencies /Notes

 qb_iud_01

INSERT statement



Change query type to INSERT
Parse query
Run query.

 Grid pane looks as follows:

Column | Table  | New Value | 

 Query can be executed successfully.

 


 qb_iud_02

UPDATE statement



hange query type to UPDATE

Parse query

Run query.

 Grid pane looks as follows:

Column | Output | Table  | New Value | Criteria | Criteria Order 

Query can be executed successfully.



 qb_iud_03

Editing "New Value" field

Enter some value for New Value field and run query again




 qb_iud_04

DELETE statement



Change query type to DELETE

Parse query

Run query.

 Grid and diagram pane looks as follows

Column | Table  | Criteria  | Criteria Order

Query can be executed successfully.



qb_iud_05

Manual input query

Type INSERT/UPDATE/DELETE query manually

Parse query

Parse successful, panes look OK.



qb_iud_06

Changing query type for multiply tables

Enter SELECT query for 2 tables

Change its type to INSERT. 

Same for UPDATE and DELETE.

Prompt for choosing table appears



Acceptance Test Suite

(t) Test Item

Test Id

(d) Dependencies /Notes

Invoking QB - Add table/rowset to the page and invoke Query Editor

qb_invoke_01 & qb_invoke_02

 

Design Scenario: Add a table/View or a column to a query

qb_001 

 

Design Scenario: Remove a table/column source from a query

qb_002

 

Design Scenario: Verify Parsing Query

qb_006

 

Design Scenario:  Verify Executing a Query

qb_007

 

Design Scenario: Verify creating search criteria

qb_009

 

Design Scenario: Verify Ordering Result Set

qb_ 008

 

Invoke QB: Verify Save, Close & Reopen Query

qb_invoke_006

 

 

 

 

 

 

 

 

 

 

Approvals

Reviewer Name & Title

Date

Status

Jim Davidson, RAVE Engineering

Oct-16-2003

Approved for TP

Sanjay Dhamankar, RAVE Engineering

May-12-2004

Approved for RR

Jim Davidson, Runtime Lead


Approval Needed for Reef

Sanjay Dhamankar, Query Editor Engineering

Nov-09-2004

Approved for Reef

Joel Brown, Database Support Engineering


Approval Needed for Reef

Revision History

Author

Date

Description

Sakthivel Gopal

Sep-22-2003

First Draft

Sakthivel Gopal

Oct-07-2003

Feedback from Steve Fleming incorporated

Sakthivel Gopal

Oct-17-2003

Feedback from Jim Davidson Incorporated

Khashchanskiy Oleg

Apr-23-2004

Added new testcases, updated some of already existing ones.

Khashchanskiy Oleg

May-12-2004

Feedback from Sanjay Dhamankar incorporated

Sakthivel Gopal

Nov-08-2004

Updates for Reef (Notes column have been updated for cases added/updated for Reef)

Sakthivel Gopal

Nov-09-2004

Comments from Sanjay incorporated

Sakthivel Gopal

Nov-11-2004

Comments from Mikhail Matveev incorporated

Mikhail Matveev

Feb-15-2005

Version for Thresher

Mikhail Matveev

Oct-05-2005

Test cases for significant bugs after Thresher EA 2

Alexey Butenko

Apr-16-2007

Updated for Longfin





Project Features

About this Project

QA was started in November 2009, is owned by Jiří Kovalský, and has 97 members.
By use of this website, you agree to the NetBeans Policies and Terms of Use (revision 20160708.bf2ac18). © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo
 
 
Close
loading
Please Confirm
Close