软件测试课程复习
👉 题型:
选择20
填空20
判断20
简答20
设计20
👉第一类重点:
- 软件测试不是一个穷举过程,而是一个抽样过程。所以尽可能选取有代表性的用例进行测试。
- 导致软件缺陷的最大原因是软件规格说明书
- 软件测试是软件质量体系中的重要组成部分。
- 软件测试的成本越到开发后期,成本越高。需求分析阶段最低,发布阶段最高
- 能够检测出错误的几率越大越好
- 更新或修改之后,重复测试以前的用例是回归测试
- Web网站的功能测试中,重要的一项是链接测试
- 选择子集进行测试时,对应的测试方法是等价类划分法
- 等价类划分法:用一组有限的数据去代表近似无限的数据。(黑盒测试)
- 测试某等价类的代表值就等于对这一类其它值的测试。
- 等价类测试方法是把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。使用等价类划分方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。
- 等价类划分可有两种不同的情况:有效等价类和无效等价类。
- 有效等价类
- 有效等价类指输入完全满足程序输入的规格说明、有意义的输入数据所构成的集合
- 无效等价类(与有效等价类的定义恰巧相反)
- 无效等价类与有效等价类相反,不满足程序输入要求或者无效的输入数据构成集合
- 有效等价类
👉第二类重点:
-
按测试阶段分类:
-
单元测试
-
单元测试中的驱动程序指调用被测程序的模块。
-
桩程序指调用的程序。
-
-
集成测试
-
集成测试的测试计划通常在概要设计的阶段完成。
集成测试包含自底向上,自顶向下两种基础方式。前者需要写驱动,后者需要写桩。
-
-
系统测试
-
性能测试
-
性能测试指为了发现系统性能问题或获取系统性能相关指标而进行的测试。根据不同的测试目的分为
1、 性能验证测试:验证系统是否达到事先已定义的系统性能指标、能否满足系统的性能需求
2、 性能基准测试:在系统标准配置下获得有关的性能指标数据,作为将来性能改进的基准线
3、 性能规划测试:多种特定环境下,获得不同配置的系统的性能指标,从而决定在系统部署时采用什么样的软硬件配置
4、容量测试:系统容量可以看作系统性能指标之一
-
常见的有负载测试、压力测试、可靠性、稳定性等测试。
-
负载方式如教材图6-6
-
-
验收测试
-
-
按是否看见源代码测试:
-
白盒测试:
-
逻辑覆盖
语句覆盖:使程序中的每个可执行语句至少被执行一次
判定覆盖(分支):每个判断的取真分支和取假分支至少经历一次
条件覆盖:每个判断中每个条件的可能取值至少满足一次
判定-条件覆盖:所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次
条件组合覆盖等:使得程序中每个判断的所有可能的条件取值组合都至少出现一次
-
基本路径测试
路径覆盖:设计所有的测试用例,来覆盖程序中的所有可能的执行路径。
-
-
黑盒测试:
-
等价类划分法
-
边界值分析法:
边界值分析法就是在某个输入输出变量范围的边界上,验证系统功能是否正常运行的测试方法(黑盒)
-
决策表法
决策表(判定表)法是借助表格方式完成对输入条件的组合设计,以达到完全组合覆盖的测试效果。(黑盒)
由条件桩和动作桩组成。一般步骤为:
1、列出所有条件桩和动作桩;
2、填入条件项;
3、填入动作项,指定初始判定表;
4、简化合并相似规则或者相同动作
-
-
-
👉按是否执行代码测试:
- 静态测试:
- 动态测试:
-
按目的测试:
-
性能测试
-
压力测试
-
功能测试
-
功能测试主要是按照产品规格说明书来检验被测试的系统是否满足各方面功能的使用要求
-
-
可靠性测试
-
灾难恢复性测试
-
安全性测试
-
安全测试中,基于漏洞的测试是指从软件内部出发找到的安全缺陷。
漏洞指软件内部的安全性问题,威胁是软件外部的安全性问题
-
-
兼容性测试
-
兼容性测试是指软件之间能否正确地交互和共享信息。多版本时,包含以前版本内容是向前兼容,包含未来版本是向后兼容
-
-
回归测试
-
安装测试
-
验收测试
-
验收测试是指性能测试完成,上市之前这个阶段进行的测试,其中需要客户参与
-
-
👉第三类重点
-
软件国际化是软件工程,完成软件国际化之后才能完成软件本地化
-
I18N指软件国际化,L10N指软件本地化。
-
软件本地化是对原始语言(例如,英文)开发的软件进行语言转换和工程处理,生成不同语言版本的技术。
-
“国际化软件测试”的内容分为“软件国际化测试”和“本地化软件测试”,“软件国际化测试”是“国际化软件测试”的子集。
-
国际化软件测试首先要经过软件国际化测试,等到本地化软件开发出来后,再进行本地化软件测试。
软件国际化测试的对象是采用国际化方法进行设计的软件,例如英文的Word 2003。 测试的环境是各种不同语言的操作系统,例如简体中文、繁体中文、德语、日语等的Windows 操作系统。
-
-
自动化测试指由计算机系统或软件工具、程序来承担并自动执行。
-
自动化测试不能完全代替手工测试
-
软件质量保证中包含了软件测试
-
β测试指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本
-
单元测试中常见的缺陷:
-
空指针保护
-
数据格式化异常
-
字符串或数组越界错误
-
资源不合理使用
-
不当使用synchronized导致系统性能下降
获得的外部数据在使用时,通常要考虑到是否为空,是否符合需求格式,是否符合长度要求等等。即在使用equals,包装类转换,数组和字符串长度、synchronized时,需要注意
-
👉第四类重点
-
软件测试管理体系中,TPI next由关键域,级别,测试成熟度矩阵,检查点,改进建议构成。
关键域指软件测试过程的各个方面,通过对不同方面的评估,测试过程的优缺点都变得清晰,这些方面为关键域
级别指每个关键域所处的状态,即对关键域的评估结果
测试成熟度矩阵指关键域各个等级和总体测试过程成熟度等级的映射关系
检查点指为了客观决定各个关键域的级别而提供的度量工具
改进建议指检查点为我们发现的问题
👉第五类重点
-
待测试代码:
public int add(int a,int b) { return a+b; } -
测试代码:
public class TestAAA { static int[] cases; //被beforeClass赋值,由静态使用静态。测试用例 int[] results; //由before赋值。预期结果 @BeforeClass public static void setCases() { cases = new int[]{1,3,-1,-3,1,-3,-1,3}; } @Before public void before(){ results = new int[]{4,-4,-2,-2}; } @Test //单元测试的主体 public void testAdd(){ Calc c = new Calc(); for (int i = 0;i<cases.length; i+=2 ){ //两个一组进行加法 //断言判断运行结果和预期结果 Assert. assertEquals(c.add(cases[i],cases[i+1]),result[i/2]); } } }
👉第六类重点
-
基本路径组分析方法:1、先画出流程控制图;2、计算环复杂度;3、写出基本路径,和环复杂度数量相等。





-
常见流程控制图


浙公网安备 33010602011771号