Chinaunix首页 | 论坛 | 博客
  • 博客访问: 743291
  • 博文数量: 769
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4985
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:37
文章分类

全部博文(769)

文章存档

2011年(1)

2008年(768)

我的朋友

分类:

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注入
        数据库的健壮性  严格的检查约束,主外键约束等
        数据库的容错性
        数据库自身的恢复能力

【责编:michael】

--------------------next---------------------

阅读(360) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~