《软件测试与质量保证 (19).pdf》由会员分享,可在线阅读,更多相关《软件测试与质量保证 (19).pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2018-5-311软件测试模型知识点2:单元测试2内容软件单元单元测试目标单元测试任务单元测试环境单元测试流程2018-5-312单元测试软件单元是软件设计说明中一个可独立测试的元素是程序中一个逻辑上独立的部分 它不能再分解为其他软件成分单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为,是对单个的软件单元或者一组相关的软件单元所进行的测试,是代码级的测试按照软件生命周期对软件测试所进行的级别划分单元测试是最初始级别的测试然后是集成测试、确认测试和系统测试3单元测试概况定义:检验程
2、序最小单位有无错误。一般在编码之后,由开发人员完成。单元:软件开发中的最小的独立部分 C语言中的单元:函数或者是子过程 C+语言中的单元:类目前状况:实施效果非常好,但是实施阻力比较大(主要是人员和管理因素),一般只在关键的程序单元中实施有比较系统的理论和方法,但也依赖于系统的特殊性和开发人员的经验有大量的辅助工具,开发人员也经常自己开发测试代码和测试工具主要使用白盒测试和静态分析,也使用黑盒测试单元测试目标1、检查代码实现是否符合设计 不能检查设计是否正确2、尽早发现错误 Microsoft applications 10-20 defects/KLOC during unit testin
3、g 0.5 defects/KLOC after release 性价比最好单元测试任务1模块接口测试对通过被测模块的数据流进行测试。测试项目包括:模块实际输入与定义的输入是否一致 个数、类型、顺序调用所测模块时的输入参数与模块的形式参数是否匹配 个数、属性、顺序是否修改了只做输入用的形式参数模块中对于非内部/局部变量是否合理使用,全局变量的定义在各模块中是否一致使用外部资源时,是否检查可用性并及时释放资源 内存、文件、硬盘、端口等单元测试任务2模块局部数据结构测试检查局部数据结构能否保持完整性Checklist:变量从来没有被使用 可能别的地方使用了错误的变量名变量没有初始化错误的类型转换数
4、组越界非法指针变量或函数名称拼写错误 使用了外部变量或函数其他单元测试任务3模块边界条件测试检查临界数据是否正确处理Checklist:普通合法数据是否正确处理 普通非法数据是否正确处理 边界内最接近边界的(合法)数据是否正确处理 边界外最接近边界的(非法)数据是否正确处理 其他单元测试任务4模块独立执行通路(路径)测试检查由于计算错误、判定错误、控制流错误导致的程序错误Checklist:死代码 错误的计算优先级 精度错误 比较运算错误 赋值错误 表达式的不正确符号、=;=、=、!=循环变量的使用错误 错误赋值 其他单元测试任务5模块内部错误处理测试检查内部错误处理设施是否有效Checkli
5、st:是否检查错误出现 资源使用前后 其他模块使用前后 出现错误,是否进行错误处理 抛出错误 通知用户 进行记录 错误处理是否有效 在系统干预前处理 报告和记录的错误真实详细 其他单元测试静态分析技术定义:不实际运行程序,而是通过检查和阅读等手段来发现错误并评估代码质量的软件测试技术。也称为静态测试技术。方法:走查:WalkThrough 审查:Inspection 评审:ReviewMichael Fagan IBM(1976)单元测试环境基本单元本身不是一个独立的程序,自己不能运行,要靠其它部分来调用和驱动,必须为每个基本单元开发驱动模块或桩模块。驱动模块(driver)桩模块(stub)
6、存根模块单元测试环境驱动模块(Driver):被测基本单元的主程序,它接收测试数据,并把数据传送给被测单元,最后输出实测结果。桩模块(Stub):用来代替被测基本单元调用的其他基本单元。驱动模块和桩模块是测试使用的软件,而不是软件产品的组成部分,但它需要一定的开发费用。单元测试环境测试结果驱动模块桩模块1被测单元测试用例桩模块3桩模块2单元测试流程管理流程主要指动态测试应用流程测试计划测试设计测试执行测试记录分析测试总结完毕缺陷跟踪针对测试目标,规定测试任务、资源分配、人员角色、进度安排等。根据测试计划,设计测试用例,包括:测试步骤、测试场景、测试代码、测试数据(包括预期结果)。根据测试计划,配置测试环境,并手动或者自动执行测试设计。根据测试计划,忠实地记录测试执行的过程和结果。分析测试记录,如果发现与预期结果不同,确定并重现缺陷。检查测试设计是否全部执行完毕,缺陷是否全部关闭。记录、分发、评估、关闭缺陷报告。分析测试过程和缺陷报告,评估测试质量和测试效果,给出是否通过测试的建议。谢 谢16