1. 什么是软件测试?软件测试的目的是什么??
使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预算结果与实际结果之间的差别。1确保产品完成了它所承诺或公布的功能,并且所有用户可以访问到的功能都有明确的书面说明。2确保产品满足性能和效率的要求3确保产品是健壮的和适应用户环境的 2. 简述软件测试的发展和意义。
经验阶段、理论总结阶段、测试技术与测试工具发展阶段
随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 3. 简述软件测试的六条基本原则。
原则1:穷尽测试是不可能的。
原则2:测试工作具有创造性,但很困难。 原则3:测试旨在防止错误的发生。 原则4:测试是有风险的。 原则5:测试需要有计划性。 原则6:测试需要有独立性。 4. 软件测试有何局限性?
输入/状态空间的无限性 故障巧合性
系统缺陷的不确定
5. 软件测试和软件开发有何关系?
需求 规格说明 设计 实现 单元测试 试 集成测试 测 系统测试 归 验收测试 回
6. 软件测试的生命周期是什么?各阶段的任务是什么?
计划:标志测试条件(确定测试什么)和测试的优先级 设计:设计测试用例(确定怎么测试) 开发:测试开发(设计脚本、数据等) 执行:执行测试用例
评估:将测试结果与预算结果进行比较 7. 什么是测试用例?测试用例有哪些类型?
在软件测试中,我们将测试输入数据的定义和对预期测试结果的描述称为测试用例。 纯数据型测试用例、文件型测试用例、操作序列型测试用例、程序性测试用例。 8. 软件测试分为几个步骤?每一步骤的任务是什么?
9. 什么是黑盒测试和白盒测试?
黑盒测试:黑盒测试又称功能测试、数据驱动测试或基于规格说明的测试,是一种从用户观点出发的测试,被用来证实软件功能的正确性和可操作性。
白盒测试:白盒测试又称结构测试、逻辑驱动测试或基于程序的测试,用来分析程序的内部结构。
10. 什么是回归测试?回归测试的方法有哪些?
一方面检查错误是否真的修改,另一方面还要检查此错误的修改是否引入新的错误,这就需要将已经测试过的测试用例拿来重新进行测试,这就是回归测试。
方法:线性方程技术、符号执行技术、路径分析技术、基于程序流图的技术、选择回归测试技术、改错性回归测试、增量性回归测试 11. 软件审查有哪些步骤?审查的内容有哪些?
步骤:制定计划、预审、准备、审查会、返工、终审
1验证是保证软件正确地实现了一些特定功能的一系列活动,○即保证软件以正确的方式来做了这个事件。
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程。 2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程。
3.评审、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。 2确认是一系列的活动和过程,○目的是想证实在一个给定的外部环境中软件的逻辑正确
性。即保证软件做了你所期望的事情。
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。 2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。 12. 什么是自动化测试?自动化测试包括几个阶段?
自动测试就是通过计算机运行来进行测试。
测试需求分析阶段、测试计划阶段、测试方案设计阶段、测试用例实现阶段、测试执行阶段、评估与关闭阶段。
13. 黑盒测试的主要方法有哪些?
等价类划分、因果图、正交实验设计法、边值分析、判定表驱动法等 14. 边界值选择有几种方法?
五点法:选择最大值、略低于最大值、正常值、最高于最小值、最小值。 七点法:选择略大于最大值、最大值、略低于最大值、正常值、略高于最小值、最小值、略低于最小值。
15. 针对三角形问题,假设a, b, c3个边的边界都是1~200,应用健壮性测试的方法,基于单
缺陷假设,设计边界值测试数据,同时给出每一组数据的预期结果 a = {0,1,2,100,199,200,201} b = {0,1,2,100,199,200,201} c = {0,1,2,100,199,200,201} 用例 A B 2 3 4 5 6 7 8 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 0 100 0 1 2 C 非法输入 预期输出 199 200 201 100 100 等腰三角形 等边三角形 等腰三角形 非三角形 非法输入 非法输入 等腰三角形 10 11 12 13 14 9 100 100 100 100 100 100 2 1 199 200 201 100 100 100 100 100 100 100 等腰三角形 等边三角形 等腰三角形 非三角形 非法输入 等腰三角形 16 17 18 19 20 21 15 1 2 0 199 200 201 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100非法输入 等腰三角形 等边三角形 等腰三角形 非三角形 非法输入 等腰三角形
16.写出白盒测试的所有逻辑覆盖准则。 FOSTER的ESTCA覆盖准则
[规则1] 对于A rel B(rel可以是<, = 和>)型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,A < B, A = B和A > B的情况分别出现一次。
[规则2] 对于A rel1 C(rel1可以是>或是<,A是变量,C是常量)型的分支谓词,当rel1为<时,应适当地选择A的值,使: A = C–M(M是距C最小的容器容许正数,若A和C均为整型时,M = 1)。同样,当rel1为>时,应适当地选择A,使:A = C + M。
[规则3] 对外部输入变量赋值,使其在每一测试用例中均有不同的值与符号,并与同一组测试用例中其它变量的值与符合不一致。 WOODWARD等人的层次LCSAJ覆盖准则 第一层:语句覆盖 第二层:分支覆盖
第三层:LCSAJ覆盖,即程序中每个LCSAJ至少测试一次 第四层:两两LCSAJ覆盖 ?
第n+2层:每n个首尾相连的LCSAJ组合测试一次。
17.从供选择的答案中选出应填入下面有关软件测试的叙述的()内的正确答案。
软件测试方法可分为黑盒测试和白盒测试两种。黑盒测试是通过分析程序的(功能)来设计测试用例的方法。除了测试程序外,它还适用于对(需求分析)阶段的软件文档进行测试。 白盒测试是根据程序的(内部逻辑)来设计测试用例的方法。除了测试程序外,它也适用于对(软件详细设计)阶段的软件文档进行测试。
白盒法测试程序时常按照给定的覆盖条件选取测试用例。(判定)覆盖比(语句)覆盖严格,它使得每一个判定的每一条分支至少经历一次。(判定/条件)覆盖既是判定覆盖,又是条件覆盖,但它不保证使各种条件都能取到所有可能的值。(多重条件)覆盖比其他条件都要严格,但它不能保证覆盖程序中的每一条路径。
单元测试一般以(白盒法)为主,测试的依据是(模块功能规格说明)
18.画出下列伪代码程序的程序框图,设计语句覆盖和路径覆盖的测试用例。
19.针对图4.36,写出路径表达式(不循环、循环一次);再根据路径表达式计算路径数(不循环、循环一次)。
20.下面是快速排序算法中的一趟划分算法,其中datalist是数据表,它有两个数据成员:一个是元素类型为Element的数据V,另一个是数组大小n。算法中用到两个操作:一是取某元素V[i]的关键码操作getKey(),一是交换两数组的操作Swap()。 nt Partition(datalist &list, int low, int high){
/在区间[low, high]以第一个对象为基础进行一次划分,k为返回基准对象回放位置 nt k=low;Element pivot=list.V[low]; //基准对象 or (int i=low+1;i<=high;i++) //检测整个序列,进行划分 if (list.V[i].getKey() (1) 试画出它的程序流程图;