Jump to: navigation, search

MagnetoDB/QA/Test cases

< MagnetoDB
Revision as of 15:05, 28 March 2014 by Max U (talk | contribs)

KVSaaS Test Cases and Ideas

BatchGetItem

BatchWriteItem

#
Description
Results
T
Imp
Notes

General



BWI-1

Complete set of correct options


P


PutRequest



BWI-10

Correct Item string AND

"N" : "string" value


P


BWI-11

Non-existent Item string AND

"N" : "string" value

Error + UnprocessedItems contains unprocessed PutRequest Items

N


BWI-12

EMPTY Item string AND

"N" : "string"

Error + UnprocessedItems contains unprocessed PutRequest Items

N


BWI-13

Correct Item string and

"NS" : ["string"] values



BWI-14

Correct Item string and

"B" : "string" value



BWI-15

Correct Item string and

"BS" : ["string"] values



BWI-16

Correct Item string and

"S" : "string" value



BWI-17

Correct Item string and

"N" : EMPTY value

ValidationException + UnprocessedItems contains unprocessed PutRequest Items


BWI-18

Correct Item string and

"<SOME_STRANGE_OR_EMPTY_VALUE>" : "string" value

ValidationException + UnprocessedItems contains unprocessed PutRequest Items


BWI-19

Correct Item string and

"NS" : "non-existent_string" value

ValidationException + UnprocessedItems contains unprocessed PutRequest Items


BWI-20




DeleteRequest



BWI-30

Correct Key string and

"N" : "string" value



BWI-31

Non-existent Key string and

"N" : "string" value

Error + UnprocessedItems contains unprocessed DeleteRequest Items


BWI-32

EMPTY Key string and

"N" : "string" value

Error + UnprocessedItems contains unprocessed DeleteRequest Items


BWI-33

correct Key string and

"NS" : ["string"] values



BWI-34

correct Key string and

"B" : "string" value



BWI-35

correct Key string and

"BS" : ["string"] values



BWI-36

correct Key string and

"S" : "string" value



BWI-37

Correct Key string and

"SS" : ["string"] values



CombinedRequest



BWI-40

Specify in one statement:

correct Key string for

DeleteRequest "N" : "string" value AND

correct Item string for

PutRequest "N" : "string" value



BWI-41

Specify in one statement:

correct Key string for

DeleteRequest "B" : "string" value AND

correct Key string for

DeleteRequest "SS" : "string" values AND

correct Item string for

PutRequest "NS" : "string" values AND

(!!!) INcorrect Item string for

PutRequest "S" : "string" value



BWI-42

Specify in one statement:

correct Item string for

PutRequest "N" : "string_A" value

correct Key string for

DeleteRequest "N" : "string_A" value

An error: you can't put and delete the same item in the same BatchWriteItem request


RequestItems (TableName)



BWI-50

correct table name and

correct PutRequest parameters for the Item

Line(s) added correctly


BWI-51

Specify 25 correct table names and

correct PutRequest parameters for the Items

Line(s) added correctly into all 25 tables


BWI-52

Specify 26 correct table names and

correct PutRequest parameters for the Items

error/exception (?)


BWI-53

correct table name and

correct DeleteRequest parameters for the Key

Line(s) deleted correctly


BWI-54

INcorrect table name

correct PutRequest parameters for an Item

Check that UnprocessedItems contains unprocessed PutRequest Items:

  • TableName < 3 symbols
  • TableName > 255 symbols
  • Non-existent table name

Exception


BWI-55

Correct table name and

correct PutRequest parameters for the Item

Make total request size more than 1 MB (how to?)

error


BWI-56

correct table name and

correct PutRequest parameters for the Item

Any individual item in a batch exceeds 64 KB (how to?)

error


ReturnItemCollectionMetrics



BWI-60

is NONE (by default)

no statistics returned


BWI-61

is SIZE

statistics about item collections, if any, that were modified during the operation are returned in the response


BWI-62

is <Something_else>

error/exception


ReturnConsumedCapacity



BWI-63

is NONE (by default)


ConsumedCapacity is not included in the response


BWI-64

is TOTAL

the response includes ConsumedCapacity data for tables and indexes


BWI-65

is INDEXES

the response includes ConsumedCapacity for indexes only


BWI-66

is <Something_else> (and empty)

error/exception


Exceptions



BWI-70

Simulate InternalServerError



BWI-71

Simulate ItemCollectionSizeLimitExceededException



BWI-72

Simulate ProvisionedThroughputExceededException



BWI-73

Simulate ResourceNotFoundException



BWI-





CreateTable

#
Description
Results
T
Imp
Notes

General



CreT-1

Create table without any optional attributes, only all mandatory


P


CreT-2

Create a table specifying ALL (including mandatory) the correct parameters


P


CreT-3

Try to create two tables with the same name in the same region

ResourceInUseException expected.

N


CreT-

Try to create two tables with the same name in two different regions.


N


CreT-

Verify first status is CREATING, then ACTIVE


P


CreT-

What happens if read/write to/from table in CREATING state? Possible to reproduce?


N


CreT-

Create one table with sec. indexes and then try to create one more table while the first one is in CREATING state.

- Possible to reproduce?

- How much time the table should be in CREATING state?

- Can I manage this time anyhow?



CreT-

Try to create table w/o some mandatory attribute: AttributeDefinitions, KeySchema, ProvisionedThroughput, TableName.


N


AttributeDefinitions



Number of attributes



CreT-

create table with 1 attr


P


CreT-

What is upper limit? Try max and max+1

"Individual items in an DynamoDB table can have any number of attributes, although there is a limit of 64 KB on the item size. An item size is the sum of lengths of its attribute names and values (binary and UTF-8 lengths)."

So, number of attr is limited only by item size. Can be tested only via PutItem?



CreT-

Create a table with key and non-key (and non-index also) attributes. It should fail. Non-key attrs are unacceptable.

Note:

Test for PutItem: PutItem not containing values for non-key/non-indexed attributes of the table to ensure these attrs are not required.

Error/exception ?


AttrName



CreT-

Try length of 1 symbol, 255 (upper limit) - these limits are applicable only for key attrs and index projections. Other attrs can have longer names, without explicit limits (just size of the whole item).


P


CreT-

Try lengh 255+1 for key and indexes attr.


N


CreT-

Check size of non-key / non-index-projected attr names


N


CreT-

Try to send attr names without attr types.


N


CreT-

Create table with attrs of each type: S, N, B. Ensure the data types are applied on put/get operations (it could be covered in Put/Get tests).


P


CreT-

AWS says regarding local indexes creation: “You can project attributes of any data type, including scalar data types and multi-valued sets.” But how to define projection of Set types if they cannot be assigned to the attributes on table creation stage?



CreT-

Try to create a table with attribute of some SET type. It should not be allowed.



KeySchema



CreT-

Create table with a key of HASH type.


P


CreT-

Create table with a key of HASH and RANGE type.


P


CreT-

Try to enumerate key attrs in wrong order: RANGE and then HASH attrs in the KeySchema list


N


CreT-

Try to create a table only with RANGE key


N


CreT-

Try to leave the list empty


N


CreT-

Try to add more than one HASH and/or RANGE attr. In general, add more than 2 attrs to the list.


N


CreT-

Try keytype different from HASH and RANGE.


N


CreT-

Try not to mention key attr in Definitions but only in KeySchema.


N


CreT-

Try to mention attr names not defined in AttrDefinitions.


N


ProvisionedThroughput

(for now, MagnetoDB ignores these values.)



CreT-

Set positive values.


P


CreT-

Try to mention not all mandatory attrs


N


CreT-

Try to pass non-number, negative number


N


TableName



CreT-

Name length is 3


P


CreT-

Name length is 255


P


CreT-

Name length < 3


N


CreT-

Name length > 255


N


CreT-

What are the limitations regarding lower and upper case, hyphen and other symbols? Do they correspond to DynamoDB rules?

AWS says: “For table and secondary index names, allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot). Names can be between 3 and 255 characters long.”



CreT-

Provide an empty table name.

exception ?

N


LocalSecondaryIndexes



CreT-

Create index without some of mandatory attributes.


N


Number of indexes



CreT-

Create 1 index for a table


P


CreT-

Create 5 indexes for the table


P


CreT-

Create 6 indexes for the table


N


CreT-

Set LSI attribute as an empty list



CreT-

“There is a 10 GB size limit per hash key” - how to evaluate it? Generate so many items that size of all hash key value is about 10 GB?



IndexName



CreT-

Create an index having 3 characters long name


P


CreT-

Create an index having 255 characters long name


P


CreT-

Create an index having 2 characters long name


N


CreT-

Create an index having 256 characters long name


N


CreT-

TO BE CLARIFIED: Is it case-sensitive? non-letters?



CreT-

Create 2 tables with similar index names.

successful

P


CreT-

Try to create 2 indexes with the same name in one table

error

N


KeySchema



CreT-

Create LSI with Hash different from table hash key (table should have H+R key).



CreT-

Create LSI for table with HASH w/o RANGE. Should fail. But will work for global indexes.



CreT-

Create similar indexes with different names (the same keys, etc)



CreT-

create an index just with HASH key, w/o RANGE



CreT-

‘Repeat’ key schema of the table. “For a local secondary index, the hash key must be the same as the table's hash key, and the range key must be a non-key table attribute.”



CreT-

Test for PutItem: Ensure range key of LSI is not a mandatory attribute.



Projection



CreT-

Check usage of all projection types: KEYS_ONLY, INCLUDE, ALL. Query tests verify that it works as expected.


P


CreT-

Use NonKeyAttributes but skip ProjectionType


N


CreT-

Use NonKeyAttributes list with one attribute in it


P


CreT-

Use key attrs in the NonKeyAttributes list


N


CreT-

Make NonKeyAttributes list empty



N


CreT-

Insert some non-key attrs in NonKeyAttributes list when Pr.Type is KEYS_ONLY. Then - similar but with ALL case.


N


CreT-

Create a table with 20 non-key attrs in one LSI.


P


CreT-

Create a table with 21 non-key attrs in one LSI.


N


CreT-

Create a table with 20 non-key attrs in multiple LSIs.


P


CreT-

Create a table with 21 non-key attrs in diff. LSIs, without repetitions of attr names.


N


CreT-

Create a table with 21 non-key attrs in diff. LSIs, with repetitions of attr names between LSI’s.


N


GlobalSecondaryIndexes



(out of scope now)



Response



CreT-

Most of key-values in TableDescription are equal to data from Request

Check and verify:

  • AttributeDefinitions
  • KeySchema
  • LocalSecondaryIndexes (also new attrs appear: IndexSizeBytes, IndexStatus, ItemCount)
  • ProvisionedThroughput (also new attrs appear: LastDecreaseDateTime, LastIncreaseDateTime - these two should be absent on creation, NumberOfDecreasesToday - should be 0 on creation)
  • TableName


P


CreT-

Attrs not present in Request but should be present in Response

  • CreationDateTime
  • ItemCount (should be 0 just after table creation)
  • TableSizeBytes (should be 0 on creation)
  • TableStatus (should be CREATING, then ACTIVE)
P


CreT-

If LSI are not created, should this attr be present in response as empty list?



CreT-

Think how to check TableSizeBytes value.



CreT-

CreationDateTime verification: Find a way to get current time from the target system



Exceptions



CreT-

LimitExceededException:

Is related to in-progress states. Not possible to reproduce for now.


N


CreT-

ResourceInUseException:

Recreate existing table (the case was mentioned above)


N


CreT-

InternalServerError:

When this error [500] is expected and when some other error should appear?


N


Additional



CreT-

Create more than 255 tables


N


CreT-





DeleteItem

DeleteTable

#
Description
Results
T
Imp
Notes

General



DelT-1

Delete an existing table. Check if all the Response’s fields (see Table Description object) are equal to the appropriate table parameters


P


DelT-

Delete a non-existent table

ResourceNotFoundException

N


DelT-

Delete a table specifying “” as a name


N


DelT-

Delete a table specifying NULL as a name


N


DelT-

Delete a table w/o specifying any parameters


N


DelT-

Delete a table having a name that contains only 2 or 1 symbol


N


DelT-

Delete a table specifying a name that contains more than 255 symbols

ResourceNotFoundException ?

N


DelT-

Delete an existing table and, while the status is DELETING, run DeleteTable operation for the same table once again


P


Results Verification



DelT-




Exceptions



DelT-

Simulate InternalServerError exception. Ideas?


N


DelT-

Simulate LimitExceededException exception. Ideas?

Delete more than 10 tables in the same time


N


DelT-

Simulate ResourceInUseException exception. Ideas?

Delete a table while it is in use by some other operation


N


DelT-

Simulate ResourceNotFoundException exception. Other ideas?


N


DelT-




DelT-






DescribeTable

#
Description
Results
T
Imp
Notes

General



DesT-1

Run DescribeTable against the existing table. Check that all the required params are described correctly (see “Response Syntax” for DescribeTable statement)


P


DesT-

Run DescribeTable against the non-existent table (ResourceNotFoundException exception)


N


DesT-

Run DescribeTable specifying “” as a table name


N


DesT-

Run DescribeTable specifying NULL as a name


N


DesT-

Run DescribeTable w/o specifying any parameters


N


DesT-

Run DescribeTable specifying a name that contains only 2 or 1 symbol (causes an exception?)


N


DesT-

Run DescribeTable specifying a name that contains more than 255 symbols


N


DesT-

Simulate InternalServerError exception


N


DesT-




DesT-




DesT-





GetItem

#
Description
Results
T
Imp
Notes

General



GI-1

Get an item specifying correct mandatory attributes


P


GI-

Get an item specifying all the correct mandatory and optional ttributes


P


TableName



GI-

Valid (existing) table name


P
Y


GI-

Existing table name of 3 symbols


P
Y


GI-

Existing table name of 255 symbols


P
Y


GI-

From non-existent table name


N


GI-

Empty name (“”)


N


GI-

Less than 3 symbols long


N


GI-

More than 255 symbols long


N


AttributesToGet:



GI-

Specified, correct items in the list


P
Y


GI-

Section not specified


P
Y


GI-

“AttributesToGet” term not specified, but there is a list of items in the section

Exception/error

N


GI-

Section AttributesToGet is specified, but there is just an empty list (no items)

Exception/error

N


GI-

Specified more attributes than exist in the table

Exception/error

N


GI-

Incorrect attributes: Wrong names

Exception/error


GI-

Incorrect attributes: Empty values like ""

Exception/error

N


Key



GI-

One Key specified: “B”


P


GI-

One Key specified: “N”


P


GI-

One Key specified: “S”


P


GI-

One key: “BS”



GI-

One key: “NS”



GI-

One key: “SS”



GI-

Combination of "B", "N", "S" types



GI-

Combination of "B", "N", "S", "BS", "NS", "SS" types



GI-

Combination of “B”, “B”, "N", "N", “S”, “S”, “BS”, “BS”, "NS", "NS", “SS”, “SS” types



GI-

The whole section “Key” not specified

Exception/error

N


GI-

Section “Key” specified, but the section content is empty

Exception/error

N


GI-

One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")

Exception/error

N


GI-

In section “Key” there is a key of type “N” but a non-existent value specified for it

No items returned in Response

N
Y


ConsistentRead



GI-

= True


P


GI-

= False


P


GI-

Not specified


P


GI-

= <Something_else>


N


ReturnConsumedCapacity



GI-

= INDEXES


P


GI-

= TOTAL


P


GI-

= NONE


P


GI-

= <Something_else>


N


Exceptions



GI-

Simulate ConditionalCheckFailedException


N


GI-

Simulate InternalServerError


N


GI-

Simulate ItemCollectionSizeLimitExceededException


N


GI-

Simulate ProvisionedThroughputExceededException


N


GI-

Simulate ResourceNotFoundException


N


GI-





ListTables

#
Description
Results
T
Imp
Notes

General



LisT-1

Neither Limit nor ExclusiveStartTableName specified:

Empty result (if there are no tables in this Tenant and Datacenter were created)


P


LisT-2

Neither Limit nor ExclusiveStartTableName specified:

A list of existing tables in this Tenant and Datacenter (if there are some in this Tenant and Datacenter tables)


P


LisT-3

Neither Limit nor ExclusiveStartTableName specified:

The List does not contain the tables having “CREATING” status


P


LisT-4

Incorrect spelling of ListTables specified like: LisTables or Listables or ListTable, etc


N


LisT-

There is no “{” or “}” in the statement


N


Limit



LisT-
The limit option is not specified and

The number of existing tables is 5

1 page containing all 5 tables

P


LisT-

The limit option is not specified and

The number of tables is 100

1 page containing all 100 tables

P


LisT-

Limit = 3 and

number of existing tables is 100

The number of tables on the page is 3 and

"LastEvaluatedTableName" parameter in Response contains the 3rd (last displayed on the 1st page) table name and

There are 34 result pages in total

P


LisT-

Limit = 3 and

"LastEvaluatedTableName" = <3d_table_name_in_the_table_list_of_the_previous_TC> and

number of existing tables is 100

The number of tables on the second page is 3 and

"LastEvaluatedTableName" parameter in Response contains the 3d (last on the second page) table name and

There are 32 yet other pages able to be displayed

P


LisT-

Limit = 0

Error/exception

N


LisT-

Limit = -2

Error/exception

N


LisT-

Limit = "Some_strange_string"

Error/exception

N


LisT-

Limit = ""

Error/exception

N


LisT-

Limit = <nothing>

Error/exception

N


LisT-

Case sensitivity (?)



ExclusiveStartTableName



LisT-

The "ExclusiveStartTableName" option not specified


P


LisT-

An existing "ExclusiveStartTableName" specified


P


LisT-

An existing "ExclusiveStartTableName" specified when:

There were no previous runs of ListTables statement


P


LisT-

An existing "ExclusiveStartTableName" specified when:

Previous run of ListTables statement returned just one page


P


LisT-

"ExclusiveStartTableName" is 3 symbols long


P


LisT-

Table name is 255 symbols long


P


LisT-

Table name is 1 or 2 symbols long


N


LisT-

Table name is 256 or more symbols long


N


LisT-

A non-existent table name specified


N


LisT-

No table names specified


N


LisT-

An empty (like "ExclusiveStartTableName" :) table name specified


N


Tenant



LisT-

Switch to another tenant and

Perform ListTables operations:

The "ExclusiveStartTableName" option not specified

A unique (pertinent to this specific Tenant) list of tables returned

P


LisT-

Switch to another tenant and

Perform ListTables operations:

An existing table name specified in "ExclusiveStartTableName"

A unique (pertinent to this specific Tenant) list of tables returned starting from the specified table name

P


DataCenter (endpoint)

Switch to another Datacenter and

Perform ListTables operations:



LisT-

The "ExclusiveStartTableName" option not specified

A unique (pertinent to this specific Datacenter) list of tables returned

P


LisT-

An existing table name specified in "ExclusiveStartTableName"

A unique (pertinent to this specific Datacenter) list of tables returned starting from the specified table name

P


LisT-





PutItem

Note: For each test, check the ResponseValue for required options and values

#
Description
Results
T
Imp
Notes

General



PI-1

Specify correct required fields only


P


PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-





Query

''''#
Description
Results
T
Imp
Notes

General



Q-1

Query statement contains the correct mandatory parameters only


P


Q-

Query statement contains ALL the correct parameters


P


TableName



Q-

Valid name specified


P
Y


Q-

Non-existent name


N
Y


Q-

Empty name


N


Q-

Less than 3 symbols long


N


Q-

More than 255 symbols long


N


Q-

Exactly 3 and 255 symbols long


P


Q-

Upper and lower cases



AttributesToGet



Q-

Specified correct attributes


P


Q-

Not specified



Q-

Specified more attributes than exist in the table


N


Q-

Specified incorrect attributes: wrong names


N


Q-

Specified incorrect attributes: empty values like ""


N


Q-

Exact correct list:

Select = SPECIFIC_ATTRIBUTES

Correct result

P


Q-

Exact correct list:

Select = ALL_ATTRIBUTES

error

N


Q-

Exact correct list:

Select = ALL_PROJECTED_ATTRIBUTES

error

N


Q-

Exact correct list:

Select = COUNT

error

N


Q-

Exact correct list:

Select = “”

error

N


Q-

Exact correct list:

Select = “something_else”

error

N


Q-

The option is not specified



Q-

Completely incorrect list


N


Q-

Some correct and some incorrect names in the list


N


Q-

Empty list


N


Q-

Not specified


P


KeyConditions



Q-

Key "B" specified


P


Q-

Key "N" specified


P


Q-

Key "S" specified


P


Q-

Key "BS" specified


P


Q-

Key "NS" specified


P


Q-

Key "SS" specified


P


Q-

Combination of "B" + "N" + "S"


P


Q-

Combination of all 6 types ("B" + "N" + "S" + "BS" + "NS" + "SS")


P


Q-

Not specified


P
Y


Q-

One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")


N


ConsistentRead



Q-

= True


P


Q-

Option not specified


P


Q-

= “Something else”

error

N


ReturnConsumedCapacity



Q-

= "INDEXES"


P


Q-

= "TOTAL"


P


Q-

= "NONE"


P


Q-

= “Something_else”


N


Q-

= “”


N


Q-

= <Empty value>


N


ExclusiveStartKey



Q-

is String

Records are taken starting by LastKeyValue of the previous operation

P


Q-

is Number

Records are taken starting by LastKeyValue of the previous operation

P


Q-

is Binary

Records are taken starting by LastKeyValue of the previous operation

P


is S or N or B, but there was no previous operations

What’s the content of ExclusiveStartKey?


Q-

is Set of S or N or B

error

N


Q-

Not specified


P


Q-

Incorrect ExclusiveStartKey

Error

N


IndexName



Q-

correct Local SI (Secondary Index)


P


Q-

correct Global SI


P


Q-

non-existent LSI


N


Q-

non-existent GSI


N


Q-

Not specified


P


Q-

Name length < 3 symbols

error

N


Q-

Name length > 255 symbols

error

N


Q-

Empty index name

error


Q-

Upper case index name

?


Q-

Lower case index name

?


Q-

Mix of Upper/lower case letters in index name

?


Limit



Q-

Valid statement that returns > 10 lines,

Limit = 5

5 lines returned and LastEvaluatedKey points to the last returned line

P


Q-

Valid statement that returns N lines

Limit = N*2

N lines returned and LastEvaluatedKey points to the last returned line

P


Q-

Valid statement that returns N (< 5) lines

Limit = 5

N lines returned and LastEvaluatedKey points to the last returned line

P


Q-

Valid statement that returns N (< 5) lines

Limit = 0

?


Q-

Valid statement that returns data size > 1 MB

Limit = 100 000 (that is more than 1 MB data size)

Check that obtained data size is not more than 1 MB and LastEvaluatedKey points to the last returned line that does not exceed 1 MB


ScanIndexForward



Q-

= TRUE (by default)

data are sorted by ascending of the index key

P


Q-

= FALSE

data are sorted by descending of the index key

P


Q-

= “Another value”

error

N


Q-

= <empty value>

?


Select



Q-

= ALL_ATTRIBUTES

Returns all of the item attributes from the specified table or index

P


Q-

= ALL_PROJECTED_ATTRIBUTES

Retrieves all attributes which have been projected into the index

P


Q-

= COUNT

Returns the number of matching items, rather than the matching items themselves


Q-

= SPECIFIC_ATTRIBUTES

Returns only the attributes listed in AttributesToGet

P


Q-

= <empty value>

error

N


Q-

= “”

error

N


Q-

= “Something else”

error

N


KeyConditions



Q-

One correct field name

ComparisonOperator = "EQ"

Existing record should be returned (STRING, NUMBER, BOOLEAN)

P


Q-

One correct field name

ComparisonOperator = "EQ"

AttributeValue is SET of Number or String or Boolean


P


Q-

One correct field name

ComparisonOperator = "EQ"

Two AttributeValues specified (NUMBER and STRING)


P


Q-

One correct field name (BINARY)

ComparisonOperator = "EQ"

AttributeValue is of type NUMBER or STRING

error?

N


Q-

One INcorrect field name

ComparisonOperator = "EQ"

Valid comparison value

error ?

N


Q-

One correct field name

ComparisonOperator = "EQ"

Comparison expression represents a combination thet does not exist in the actual table

No records returned

P


Q-

One correct field name

INVALID ComparisonOperator

Valid comparison value

error?

N


Q-

One correct field name (Number or String or Boolean)

ComparisonOperator = "LE"

Valid comparison value (STRING or NUMBER or BOOLEAN)

ok

P


Q-

One correct field name

ComparisonOperator = "LE"

Two AttributeValues specified

error?

N


Q-

One correct field name

ComparisonOperator = "LE"

AttributeValue is SET of Number or String or Boolean

error?

N


Q-

One correct field name (Number or String or Boolean)

ComparisonOperator = "LT"

Valid comparison value (STRING or NUMBER or BOOLEAN)

ok

P


Q-

One correct field name

ComparisonOperator = "LT"

Two AttributeValues specified

error?

N


Q-

One correct field name (a set)

ComparisonOperator = "LT"

AttributeValue is SET of the same type

error?

N


Q-

One correct field name

ComparisonOperator = "GE"

Valid comparison value (STRING or NUMBER or BOOLEAN)

ok

P


Q-

One correct field name (N type)

ComparisonOperator = "GE"

Two (N and S) AttributeValues specified

error

N


Q-

One correct field name

ComparisonOperator = "GE"

AttributeValue is SET of Number or String or Boolean

error

N


Q-

One correct field name (Number or String or Boolean)

ComparisonOperator = "GT"

Valid comparison value (STRING or NUMBER or BOOLEAN)

ok

P


Q-

One correct field name

ComparisonOperator = "GT"

Two AttributeValues specified

error?

N


Q-

One correct field name (Number or String or Boolean)

ComparisonOperator = "GT"

AttributeValue is SET of Number or String or Boolean

ok

P


Q-

One correct field name

ComparisonOperator = "BEGINS_WITH"

Valid comparison value (STRING, BOOLEAN)

ok

P


Q-

One non-existent field name

ComparisonOperator = "BEGINS_WITH"

Valid comparison value (STRING, BOOLEAN)


P


Q-

One correct field name

ComparisonOperator = "BEGINS_WITH"

Two AttributeValues specified

error

N


Q-

One correct field name

ComparisonOperator = "BEGINS_WITH"

AttributeValue is SET of Number or String or Boolean

error

N


Q-

One correct field name

ComparisonOperator = "BETWEEN"

Two valid comparison values

ok

P


Q-

One non-existent field name

ComparisonOperator = "BETWEEN"

Two valid comparison values

error

N


Q-

One correct field name

ComparisonOperator = "BETWEEN"

Only one AttributeValue specified

error

N


Q-

One correct field name

ComparisonOperator = "BETWEEN"

AttributeValue is SET of Number or String or Boolean

error

N


Q-

One correct field name

ComparisonOperator = ""

error

N


Q-

One correct field name

ComparisonOperator = <empty_value>

error

N


Q-

One correct field name

ComparisonOperator = “something_else”

error

N


Q-





Scan

#
Description
Results
T
Imp
Notes

General



Sc-1

scan stops and returns results if processed data size exceeds 1 MB


P


Sc-

Reproduce: Scan result is empty


P


Sc-

Parallel scan topic - out of scope for now



TableName



Sc-

scan with only required parameter (table name)


P


Sc-

scan if name length is 3


P


Sc-

scan if name length is 255


P


Sc-

scan with name length < 3

error?

N


Sc-

scan with name length is > 255

error?

N


Sc-

upper-lower case in t.name

?


Sc-

non-existent table name


N


Sc-

diff. symbols in t. name


N


Sc-

scan request without required parameter - table name


N


AttributesToGet



Sc-

Skip it: all attrs should be returned


P


Sc-

include all params

?

P


Sc-

empty list of attrs


N


Sc-

the only attr in the list is non-key attr


P


Sc-

the only attr in the list is attr that does not participate in a filter


P


Sc-

try nonexistent attrs

should not be displayed in results?


Sc-

Filter can find items, but selected attrs are not present in those items:

selected attrs are present in some other items



Sc-

Filter can find items, but selected attrs are not present in those items:

selected attrs are not present in any items



Sc-

Repeat the same attr[s] in this list


N


ExclusiveStartKey



Sc-

Use LastEvaluatedKey from the previous scan. How to ensure that the scan really starts from this item?


P


Sc-

What if assign some existing key but scan operation was not executed before? No difference I think.


N


Sc-

Assign nonexistent value of key attr.


N


Sc-

Assign non-key attributes and their values. Try attrs of SET type?


N


Limit



Sc-

Verify just the Limit number of items was scanned and LastEvaluatedKey is present in response


P


Sc-

Set Limit value so that scan processes more than 1 Mb of data before Limit value exceeds. Ensure it stops due to 1 Mb but not continue till Limit items processed


P


Sc-

Try empty, negative value, zero.


P


ReturnConsumedCapacity



Sc-

Ensure response does not contain ConsumedCapacity (neither for table nor index(es)) if ReturnConsumedCapacity not present or equal to None in request


P


Sc-

Ensure response contains Capacity for table and indexes if TOTAL in request


P


Sc-

Ensure response contains Capacity for indexes only (not table) if INDEXES in request


P


Sc-

Try empty, invalid values.


N


ScanFilter



Sc-

Ensure ScanFilter really filters?



Sc-

Ensure multiple conditions are treated as "AND" operations


P


Sc-

Try nonexistent attribute name (let’s assume it will be added with some item later)


N


Sc-

Try empty line instead of attribute name


N


Sc-

Assign empty line, None to ScanFilter


N


(AttributeValueList)



Sc-

Use single value for appropriate comparison


P


Sc-

Use 2-element list for BETWEEN and IN


P


Sc-

Try to use 2+ element for IN

?


Sc-

Try to use 2-element-list for operation like EQ


N


Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-




Sc-





UpdateItem

UpdateTable

==