1. What are the problems which arise when the Database state is ignored while testing a database application? Answer: Database state plays an important role in database application testing. Ignoring it will cause following issues in tesint database application. 1). both expected value and actual value of executing a database application on a given input are depedent on the database state before execution. If we don't consider the database states, we can't get information of what would be expected value of execution just based on the input and output. 2). After exeuction, if we don't have the database state information, we can't tell whether the ouput of execution is actually right or not. In all, if we don't consider database state before and after execution of database application, the relationship between input and output of database application is non-determinstic, which makes testing impossible. 2. One of the important issues in testing databases is the role of the database state. Discuss three possible approaches to dealing with this. Answer: there are three ways to deal with it. 1). ignore database state. This way is easy and simple. However, it's not useful for testing database application. 2). treat database state as an aspect of environment of the application. When testing database application, we need to explicitly consider the impact of environment on input and output. 3). treat database states as a part of input and output space. The second way and third way are equivalent if we can model environment in sufficient detail. However, these two ways would cause "controllability" and "oberservability" prolem which can be solved by poplating databse states with meaningful values before execuation and checking database states after execution. 3. What's the difference between testing database management system and testing database application? Answer: This paper deal with testing database application. Testing database application focus on testing database. There is difference between database and DBMS. Database is a collection of interrelated data. DBMS is an application which provides an interface for querying and/or updating data in a database. Testing database is to focus on the data stored in the database, the relationship between the data. Testing DBMS (such as MySQL, Oracle) covers more, which includes testing the interface of DBMS, testing the query lanaguage, triggers, views ect.