Dwh 简明教程
Data Warehousing - Testing
测试对于数据仓库系统使其正确有效地工作非常重要。对数据仓库执行三项基本的测试级别:
Testing is very important for data warehouse systems to make them work correctly and efficiently. There are three basic levels of testing performed on a data warehouse −
-
Unit testing
-
Integration testing
-
System testing
Unit Testing
-
In unit testing, each component is separately tested.
-
Each module, i.e., procedure, program, SQL Script, Unix shell is tested.
-
This test is performed by the developer.
Integration Testing
-
In integration testing, the various modules of the application are brought together and then tested against the number of inputs.
-
It is performed to test whether the various components do well after integration.
System Testing
-
In system testing, the whole data warehouse application is tested together.
-
The purpose of system testing is to check whether the entire system works correctly together or not.
-
System testing is performed by the testing team.
-
Since the size of the whole data warehouse is very large, it is usually possible to perform minimal system testing before the test plan can be enacted.
Test Schedule
首先,在制定测试计划的过程中创建测试计划。在此计划中,我们预测测试整个数据仓库系统所需的时间。
First of all, the test schedule is created in the process of developing the test plan. In this schedule, we predict the estimated time required for the testing of the entire data warehouse system.
有不同的方法可用于创建测试计划,但没有一个是完美的,因为数据仓库非常复杂且庞大。此外,数据仓库系统本质上也在不断演变。在创建测试计划时可能面临以下问题:
There are different methodologies available to create a test schedule, but none of them are perfect because the data warehouse is very complex and large. Also the data warehouse system is evolving in nature. One may face the following issues while creating a test schedule −
-
A simple problem may have a large size of query that can take a day or more to complete, i.e., the query does not complete in a desired time scale.
-
There may be hardware failures such as losing a disk or human errors such as accidentally deleting a table or overwriting a large table.
Note -由于上述困难,建议将您通常为测试分配的时间加倍。
Note − Due to the above-mentioned difficulties, it is recommended to always double the amount of time you would normally allow for testing.
Testing Backup Recovery
测试备份恢复策略极其重要。这是需要该测试的情况列表-
Testing the backup recovery strategy is extremely important. Here is the list of scenarios for which this testing is needed −
-
Media failure
-
Loss or damage of table space or data file
-
Loss or damage of redo log file
-
Loss or damage of control file
-
Instance failure
-
Loss or damage of archive file
-
Loss or damage of table
-
Failure during data failure
Testing Operational Environment
需要测试大量方面。这些方面列在下面。
There are a number of aspects that need to be tested. These aspects are listed below.
-
Security − A separate security document is required for security testing. This document contains a list of disallowed operations and devising tests for each.
-
Scheduler − Scheduling software is required to control the daily operations of a data warehouse. It needs to be tested during system testing. The scheduling software requires an interface with the data warehouse, which will need the scheduler to control overnight processing and the management of aggregations.
-
Disk Configuration. − Disk configuration also needs to be tested to identify I/O bottlenecks. The test should be performed with multiple times with different settings.
-
Management Tools. − It is required to test all the management tools during system testing. Here is the list of tools that need to be tested. Event managerSystem managerDatabase managerConfiguration managerBackup recovery manager
Testing the Database
数据库通过以下三种方式进行测试-
The database is tested in the following three ways −
-
Testing the database manager and monitoring tools − To test the database manager and the monitoring tools, they should be used in the creation, running, and management of test database.
-
Testing database features − Here is the list of features that we have to test − Querying in parallel Create index in parallel Data load in parallel
-
Testing database performance − Query execution plays a very important role in data warehouse performance measures. There are sets of fixed queries that need to be run regularly and they should be tested. To test ad hoc queries, one should go through the user requirement document and understand the business completely. Take time to test the most awkward queries that the business is likely to ask against different index and aggregation strategies.
Testing the Application
-
All the managers should be integrated correctly and work in order to ensure that the end-to-end load, index, aggregate and queries work as per the expectations.
-
Each function of each manager should work correctly
-
It is also necessary to test the application over a period of time.
-
Week end and month-end tasks should also be tested.
Logistic of the Test
系统测试的目标是测试以下所有领域−
The aim of system test is to test all of the following areas −
-
Scheduling software
-
Day-to-day operational procedures
-
Backup recovery strategy
-
Management and scheduling tools
-
Overnight processing
-
Query performance
Note − 最重要的一点是测试可伸缩性。如果不这样做,我们的系统设计在系统增长时将无法正常工作。
Note − The most important point is to test the scalability. Failure to do so will leave us a system design that does not work when the system grows.