什么是软件测试?软件测试的目的与原则答案如下:
a) 使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
b) 软件测试的目的:
i. 测试是程序的执行过程,目的在于发现错误
ii. 一个成功的测试用例在于发现至今未发现的错误
iii. 一个成功的测试是发现了至今未发现的错误的测试
iv. 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
v. 确保产品满足性能和效率的要求
vi. 确保产品是健壮的和适应用户环境的
c) 软件测试的原则:
i. 软件测试应尽早执行,并贯穿于整个软件生命周期
ii. 软件测试应追溯需求
iii. 测试应由第三方来构造
iv. 穷举测试是不可能的,要遵循Good-enough原则
v. 必须确定预期输出(或结果)
vi. 必须彻底检查每个测试结果
vii. 充分注意测试中的群集现象
viii. 缺陷的二八定理
ix. 严格执行测试计划,排除测试的随意性
x. 注意合法合理的输入,也要注意非法的非预期的输入
xi. 检查程序是否是否做了不该做的
xii. 测试应从“小规模”开始,逐步转向“大规模”
xiii. 反复使用同样的测试会使软件具有抵抗力
xiv. 关注缺陷的修复
软件生存周期及其模型是什么?
d) 软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。
e) 在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。
目前主要的测试用例设计方法是什么?
f) 白盒测试:
i. 逻辑覆盖
ii. 循环覆盖
iii. 基本路径覆盖
g) 黑盒测试:
i. 边界值分析法
ii. 等价类划分
iii. 错误猜测法
iv. 因果图法
v. 状态图法
vi. 测试大纲法
vii. 随机测试
viii. 场景法
黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
黑盒测试的优点有:
l 比较简单,不需要了解程序内部的代码及实现;
l 与软件的内部实现无关;
l 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
l 基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
l 在做软件自动化测试时较为方便。
黑盒测试的缺点有:
l 不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
l 自动化测试的复用性较低。
白盒测试的优点有:
l 帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试的缺点有:
l 程序运行会有很多不同的路径,不可能测试所有的运行路径;