The vast majority of applications are closely related to data, such as WEIXIN,QQ, which need to store large amounts of data: contact information, messages sent, friends ' circles, etc. Most of this information is stored in a relational database.
Therefore, the Software Test Engineer's understanding of the database is the basic requirement. Specifically, what knowledge should a test engineer have? Let's go through every step of the test.
first, you need to understand the needs of the software. The requirements of the software relate to the part of the data, such as the definition of the field, type, length, especially consistency (for example, a user name, which is used at the time of the input, used in the printout, and used in the contact information of other contacts). Therefore, in understanding the software requirements, we need a "data dictionary" as the basis for future testing.
Beginning to design the test case, we need to know how to get the embedded data of the basic test environment. For example, if you want to test the deposit function, how do you get an account? --Find from the database. You need to know: 1) How to Access database, database configuration information, 2) database access client, 3) SQL statement, 4) database definition (that is, you look up data from that table); 5) How to "fetch" the data from the query to the local. In contrast to data dictionaries, and requirements, you also need to know the limitations of these fields, such as whether the database limits are consistent with the requirements, or whether the interface of the software conforms to the requirements of the data dictionary (consistency).
Also, when designing checkpoints-especially database checkpoints-you need to know how your checkpoint data is being looked up from the database. Sometimes not a table can contain, you need multiple tables, or even filtering, processing data to compare.
The test case is then reviewed and needs to be executed. You need to know how to prepare a test environment, and the most important part is to prepare the benchmark data environment for testing. Perhaps the user will give you an existing database, then you need to do data cleansing (possibly), to ensure that the customer information is not compromised, the existing data, the possible problem is that many boundary conditions have no data, so also need to "build" a lot of data, which requires you to use the CREATE statement for the creation of data, This includes using the ER Diagram tool to view the database structure. After the creation of the underlying data environment, we need to back up the database (hit him base), you need to be familiar with the backup command of the database-backup is to recover, because we often do not just test a round, at least need to return. Therefore, you also need to restore the command statement for the database.
If you want to do automated testing, then you have to do is the manual test in the preparation of data, database checkpoints, written into SQL statements, commonly known as embed, sneak into the scripting language.
From the above, we need to master the knowledge of the database, including: Data dictionary, ER diagram, query statement, create DATA statement, and how to use these statements in the script to access the database.
What database knowledge does a software Test engineer need