作业4
1、选择一个测试要素 (Lec.10, slide 9),以你实现的或者熟悉的一个软件作品为例,分别讨论该要素在软件生命周期的需求、设计、编程、测试、安装、验收和维护各阶段的测试目标和内容。
答:
- 选择软件作品: 腾讯会议
- 选择测试要素: 系统运行的连续性
- 需求阶段:
- 测试目标:
- 部分需求失效后,能够控制失效影响,使系统的关键需求仍然能被满足,对应的关键任务仍能运行。
- 测试内容:
- 审查需求分析文档、产品规格说明书,定义需求失效后的影响,尽量保证关键需求不会被其它非关键的需求的失效所影响。
- 比如当腾讯会议的聊天室功能失效后,最关键的会议直播功能应该要不受影响,继续运行,使聊天室功能的需求对应的功能和会议直播需求对应的功能尽可能分开,保证即使会议成员通过文字方式进行交流的需求失效,通过会议直播方式进行交流的关键需求不会受太大影响。
- 测试目标:
- 设计阶段:
- 测试目标:
- 针对有可能出现的非致命性问题导致的系统中断事件,保证这些中断不会影响到系统关键事件的运行。
- 测试内容:
- 审查系统设计文档、程序设计流程图、数据流图等,针对系统运行过程中有可能由非致命性问题导致的问题和中断,设计中断计划,使中断尽可能地不会影响系统继续运行关键任务。
- 比如腾讯会议进行会议的过程为创建会议、邀请成员、成员通过复制内容中的链接或搜索会议号等方式进入后,即可进行会议,在这个过程中,有可能出现邀请链接失效等情况,此时就需要设计相应的中断计划,比如当用户点击链接失效时向系统发送错误信息,使系统可以及时检查链接的情况并修复链接指向,或在复制内容中提供除链接外的其它进入会议方式,使用户即使链接失效,仍然可以通过其它方式进入会议等。
- 测试目标:
- 编程阶段:
- 测试目标:
- 检查代码根据可能引发中断的问题,编写了相应的解决计划和过程。
- 测试内容:
- 审查代码,编写中断计划和过程,验证当发生这些中断时,程序可以进行处理这些非致命性问题,保证系统关键任务继续运行。
- 比如针对腾讯会议的链接失效问题,可以检查系统代码中有关错误处理的部分,观察代码中有关链接失效问题是否有相应部分进行处理,处理逻辑是否正确,处理后返回的结果是否符合系统要求。
- 测试目标:
- 测试阶段:
- 测试目标:
- 检查系统的容错能力,当系统发生非致命性问题后,可以继续运行关键任务,在指定时间间隔内修正错误并恢复系统,使系统的运行不受太大影响。
- 测试内容:
- 进行恢复性测试,以人工干预的方式强制性地使系统出错,保证即使发生非致命性问题后,系统的关键任务仍能继续运行,并且可以很快修复错误,恢复系统。
- 比如针对腾讯会议的链接失效问题,可以编写与链接失效有关的代码和测试用例,例如直接给一个空指针,检测系统代码是否可以检测问题,抛出异常并进行错误处理,及时修复这个错误,保证仍然可以进入到相应的会议。
- 测试目标:
- 安装阶段:
- 测试目标:
- 将已经测试的系统部署运行之后,之前进行的测试可以保存完整性,安装中断时,对应不同环境有不同的解决方案。
- 测试内容:
- 保证以前测试的完整性,针对不同环境都有不同的测试提供的中断方案,在安装阶段可以保证安装的正常进行,已经测试的系统在部署运行之后也有对应的完整中断方案,保证系统正常运行。
- 比如腾讯会议在苹果或安卓系统上进行安装时可能会因为兼容性、版本等问题出现安装错误,或安装后发生问题,当发生问题后,就需要之前在各个环境、版本下进行的完整测试,提供中断方案,保证安装成功,系统可以正确运行。
- 测试目标:
- 验收和维护阶段:
- 测试目标:
- 在发生改变重新测试时,中断计划是否仍然可以满足发生非致命性问题后仍然有能力继续运行关键任务的要求。
- 测试内容:
- 修改中断计划,使中断计划随系统变化进行更新和迭代,重新测试时,确定改变的部分和未改变的部分能够继续工作。
- 比如腾讯会议在版本进行更新后,可能由于兼容性或新代码而出现新的问题,这时就需要修改中断计划,处理这些新问题导致的中断,并重新来测试,使新版本中的改动和之前没有改变的部分都有相应的中断计划,在发生问题是,仍然可以正常工作。
- 测试目标: