分类:
2008-10-15 16:43:38
很幸运能上这节'云'老师的课,一是在数据库、这方面听到了很多思路,一天的课一定不会涉及到很多具体的内容,思路就在足够了;另外更了解了自己一个很严重的缺陷,就是不擅长把简单的问题考虑周全,做深做好,学习也一样,不善于把东西学得更深入一些,不好的本性,得改;还有就是上课本身也很愉快~
数据库测试
范式
范式:范式是关系数据库在设计的时候要遵守的一些规则,最常用的有1NF,2NF,3NF,还有BCNF
1NF:数据库的每个字段都是单一属性,不可再分。(很好理解)
2NF:数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖,也就是任何的非关键字段都依赖于任何一组关键字段。(也就是当骷?辛礁鲆陨献侄问保?渲幸桓霾荒艿ザ谰龆ㄎㄒ环侵骷?侄危?BR>3NF:在2NF的基础上,不存在任意非关键字段对其他非关键字段的函数依赖(所有非关键字段都必须是由主键来决定的,而不能一部分非关键字段有某个非关键字段决定)
数据库建模
待学习…………
想要发现数据库设计的问题,必须要很好的了解数据库设计,这是必然。
数据库系统测试的对象
数据库设计是否与实现相同。这是最容易做到的一点。如果没有数据库设计文档怎么办?逆向工程,可以用工具将数据库sql导出,再转换成关系图
数据库设计是否符合范式
数据库设计是否合理 经验
数据库安装、配置测试
数据库集成测试对象
数据库的增删改操作
数据表加满(这里的加满是指加满数据文件所在磁盘空间,可以为其分配一个小的磁盘空间,逆向思维)
数据表空
删除空表记录
数据表的并发操作(即使数据库做了主键约束,在并发很多的时候也会导致插入重复主键的数据,就会导致数据库的死锁,down掉)
针对过程的接口测试:也可以编写驱动和桩
结合业务逻辑做关联表的接口测试
数据库单元测试的重点
语句覆盖
走读
eg:已知yx表,包括id,salary字段,中间2~10省略,另有yg表中的salary字段与yx.id有外键约束,要更新yg中的salary,为每个人加1级,如何写sql语句
update yg set salary = salary + 1 对吗?
id
salary
0 面议
1 1500以下
… …
11 20000以上
1)11不能再加
2)0不能加 update yg set salary = salary + 1 where salary > 0 and salary < 11;
3)如果有4.5这样的数据怎么办?
update yg set salary = salary + 1 where salary in (1,2,3,4,5,6,7,8,9,10);
4)如果更新错了怎么办?写成一个事务,可以commit,rollback
5)假设yx表中的数据发生变化了怎么办?还需要修改sql语句
(讨厌,死机了)
最后俺写的是
select * from yg;
update yg set salary = salary + 1
where salary in ( select id from yx)
and salary > ( select min(id) from yx)
and salary < ( select max(id) from yx);
关于第4)数据库事务,sqlserver有三种事务类型,隐式,显示,自动提交,默认为自动提交,可以设置
set implicit_transactions on设置为隐式事务,就是需要另外输入commit 或rollback 来结束事务
数据库功能测试
DataFactory 自动数据库数据生成器
数据库性能测试
Loadrunner
Swingbench 专门针对
性能优化考虑的顺序
磁盘
数据库设置
数据库设计
sql语句
数据库测试
sql注入
数据库的健壮性 严格的检查约束,主外键约束等
数据库的容错性
数据库自身的恢复能力