本文根据课程ppt整理而成,仅供参考
二、Testing and Test-First Programming
1. Software Testing
软件测试是为向利益相关者提供有关被测产品或服务的稳定性的信息而进行的调查。它是执行程序或应用程序的过程,目的是发现错误(错误或其他缺陷),并验证软件产品是否为我们提供了它。它涉及执行软件组件以评估或更多感兴趣的属性。
单元测试:指验证特定代码段功能的测试,通常在功能级别。
集成测试:由多个程序员或编程团队创建的两个或多个类、包、组件、子系统的组合执行。
系统测试:测试一个完全集成的系统,以验证系统是否满足其要求,从而在其最终配置中执行软件。
静态测试在没有实际执行程序的情况下执行。静态测试通常是隐式的,作为校对,加上当编程工具/文本编辑器检查源代码结构或编译器时(pre-compilers)检查语法和数据流作为静态程序分析。审查、演练或检查称为静态测试。
动态测试描述了对代码动态行为的测试,它实际上使用一组给定的测试用例执行编程代码。动态测试可以在程序100%完成之前开始,以便测试代码的特定部分并应用于离散函数或模块。典型的技术是使用存根/驱动程序或从调试器环境执行。
白盒测试通过查看源代码来测试程序的内部结构或工作原理。
黑盒测试将软件视为“黑匣子”,在没有任何内部实现知识的情况下检查功能,而无需查看源代码。
2.Test Case
测试用例是一组测试输入、执行条件和预期结果。测试用例是为特定目标开发的,例如执行特定的程序路径或验证是否符合特定要求。测试用例可能只是向程序提出的问题。 运行测试的目的是获取信息,例如程序是否通过测试。测试用例是质量保证的基石,而它们的开发是为了验证产品的质量和行为。E.g., test cases:{2,4}, {0,0}, {-2,4} for program y =x^2
3.Test-First Programming
步骤:
写一个函数的规格说明(spec)
编写执行规范的测试
编写实际代码。 一旦你的代码通过了你编写的测试,你就完成了。
spec描述函数的输入和输出行为。它给出了参数的类型以及对它们的任何其他约束(例如 sqrt() 的参数必须是非负数)。它还给出了返回值的类型以及返回值与输入的关系。在代码中,规范由方法签名和它上面的注释组成,这些注释描述了它的作用。
函数的规范是对函数行为的描述:
•参数的类型
•返回值的类型
•约束以及它们之间的关系。
测试驱动开发(TDD)是一个依赖于重复非常短的开发周期的开发过程:将需求转化为非常具体的测试用例,然后改进软件以通过新的测试。
代码覆盖率(Code Coverage)是一种度量,用于描述特定测试套件运行时程序源代码的执行程度。许多不同的指标可用于计算代码覆盖率; 一些最基本的是程序子例程的百分比和在执行测试套件期间调用的程序语句的百分比。
测试效果:路径覆盖>分支覆盖>语句覆盖
测试难度:路径覆盖>分支覆盖>语句覆盖
单元测试策略(Strategy)是ADT设计的补充文档。 测试策略(根据什么来选择测试用例)非常重要,需要在程序中显式记录下来。
4万+



被折叠的 条评论
为什么被折叠?



