系统测试 是为了发现错误而执行程序的过程,成功的测试发现了至今尚未发现的错误。
测试原则:
1尽早并不断进行测试。
2测试工作避免原开发人员承担。
3在设计测试方案时候,不仅确定输入数据,而且根据系统功能确定预期输出结果。
4即包含有效合理的测试用例,也要包含无效不合理的用例。
5检验程序是否做了该做的事,是否做了不该做的事。
软件测试可以分为 静态测试 和 动态测试。
静态测试
被测试程序不在机器上运行,采用 人工检测和计算机辅助静态分析手段,对文档主要和代码主要检查的方式,桌面检查,代码审查,代码走查 的方式。
动态测试
黑盒测试
功能性测试,不了解内部结构。
黑盒测试用例
等价类划分:
1设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类。(尽可能多)
2设计一个新的测试用例,覆盖一个尚未被覆盖的无效等价类。
边界值分析:范围两端值以及范围之外与范围最接近的值。
错误推测:没有固定的方法,凭借经验。
因果图:因为一个结果,反推原因。
白盒测试
结构性测试,明确代码流程。
白盒测试用例
1语句覆盖SC:所有语句执行一遍,覆盖层级最低。
2判定覆盖DC:所有判定都要执行,true or false。
3条件覆盖CC:每个判定里每一个条件都要执行一遍。
4条件组合判定覆盖CDC:同时满足判定覆盖和条件覆盖。
5路径覆盖:整个代码里所有路径(线)都走遍了,不同路径的组合也走遍了。层级最高。
灰盒测试
这两者结合,既看内部结构,又看输出输入。
测试阶段
单元测试、集成测试、确认测试。
1单元测试:也叫模块测试,可独立编译或汇编的程序模块,测试依据是软件详细设计说明书。
2集成测试:检查模块之间,以及模块和已集成的软件之间接口关系。测试依据是概要设计文档。
3系统测试:测试系统的完整、集成到计算机环境。(安全性、健壮性)
4确认测试:主要验证软件功能、性能是否和用户需求一致。
内部测试主要开发组织在SRS进行测试。
Alpha(α)测试用户在开发环境下进行测试。
Beta测试(β)用户在实际环境中进行测试。
验收测试针对SRS,在交付前以用户为主体进行测试。
5配置项测试的测试对象是软件配置项。
6回归测试软件变更之后,变更后的正确性。
测试策略
自底向上,需要编写驱动程序。
自顶向下,需要编写桩程序。
三明治,两者都包括,但是测试工作量大。