1、2018/9/26,1,第三讲 测试产品说明书,软件测试的一般理论 黑盒测试 白盒测试 静态测试和动态测试 测试产品说明书 使用检查表,2018/9/26,2,测试的基本理论,2018/9/26,3,软件测试的目标,测试是一个执行一个程序或者文件,去发现缺陷和错误的过程. 好的测试是尽可能发现迄今为止尚未发现的错误的测试方案 成功的测试是发现了至今为止尚未发现的错误。 所以,设计测试的目标是系统地发现各种等级的缺陷和错误,同时花费最少的时间和成本,并且做到: 证明软件的功能是按照说明书的要求实现的 性能的要求也达到了 测试中收集的数据足以指明了软件的可靠性,在某种程度上表明了软件的质量. 但是
2、,测试不能展示潜在的缺陷,只能展示表现出来的缺陷,2018/9/26,4,软件测试的流程,测试,软件配置,测试配置,评价,测试结果,预期结果,调试,可靠性模型,错误,错误率数据,正确,可靠性预测,2018/9/26,5,测试用例设计,开始是比较难的 能够测试组件是否符合规格说明书 - Black Box Testing. 能够测试组件是否符合设计 - White box testing. 如果没有对所有的路径测试,则不能证明程序的正确性,2018/9/26,6,测试方案,设计测试方案 设计测试方案是测试阶段的关键技术问题。 测试方案包括要测试的功能,应该输入的测试数据和预期的结果。 设计技术主
3、要有两种方法:黑盒法与白盒法。一般用黑盒法设计基本的测试方案,再用白盒法补充一些方案。,2018/9/26,7,测试方案技术黑盒和白盒测试,1.黑盒法 测试人员将程序看成是一个“黑盒”,即不关心程序内部是什么,只要检查程序是否符合它的“功能说明”。黑盒法可分为下列几种方法(关键在于确定测试数据):,输入,输出,2018/9/26,8,测试方案技术黑盒,(1)等价分类法 等价分类法是将输入数据的可能值分成若干“等价类”,每一类以一个代表性的测试数据进行测试,这个数据就等价于这一类中的其它数据。 该法的关键在于如何将输入数据分类。 例如:输入的数据范围是1999,我们可以划分三类:x=999,20
4、18/9/26,9,测试方案技术黑盒,(2)边缘值分析法 用边缘特殊值测试。 经验表明:程序往往在边缘情况时犯错误,故测试边缘情况比较有效。 例如:输入数据的值的范围是:-1.0至1.0,则可选-1.0,1.0,-1.001,1.001等数据作为测试数据。,2018/9/26,10,测试方案技术黑盒,(3)因果图法 等价类法与边缘值分析法的缺点是没有检查各种输入条件的组合。 因果图法则着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。,2018/9/26,11,测试方案技术黑盒,(4)错误推测法 通过经验或直觉推测程序中可能存在的各种错误,从而有针对性设
5、计测试用例。 使用常见错误清单、判定表等,2018/9/26,12,测试方案技术白盒测试,2.白盒法 白盒法需要了解程序的功能与结构,测试用例必须根据程序内部的逻辑来设计。如果想用白盒法发现程序中的所有错误,则至少必须使程序中每种可能的路径都执行一次。 “彻底地测试”是不可能的,故策略是:在一定的研制时间、研制经费的限制下,通过执行有限的测试用例,尽可能多地发现一些错误。 白盒法又称为逻辑覆盖法,目前常用的覆盖法有:,输入,输出,2018/9/26,13,测试方案技术白盒测试,(1)语句覆盖 即每个语句至少能执行一次,问题:若AND错写为OR,或X1错写为X1,则错误无法由上例测出。,Test
6、 case : A=2 , B=0 , X=4.,2018/9/26,14,测试方案技术白盒测试,(2)判定覆盖 判定覆盖又叫分支覆盖,含义是:每个判定的分支至少执行一次。,Test cases: A=3 , B=0 , X=3 A=2 , B=1 , X=1,问题:若X1错写为X1,仍然无法被测出。,2018/9/26,15,测试方案技术白盒测试,(3)条件覆盖 即一个判断语句中往往包含了若干条件。通过给出测试用例,使判断中的每个条件都获得各种可能的结果。,Test cases: A=2 , B=0 , X=4 (满足A1, B=0; A=2, X1) A=1, B=1, X=1 (满足A1
7、, B0; A 2, X1),问:条件覆盖 ? 判定覆盖,答: 不一定。反例: A=2, B=0, X=1A=1, B=1, X=2,2018/9/26,16,测试方案技术白盒测试,(4)判断/条件覆盖 选取足够多的测试数据,使判断中每个条件都取得各种可能值,并使每个判断表达式也取到各种可能的结果。,Test cases: A=2 , B=0 , X=4 (满足A1, B=0; A=2, X1) A=1, B=1, X=1 (满足A1, B0; A 2, X1),2018/9/26,17,测试方案技术白盒测试,(5)条件组合覆盖 使得每个判断中条件的各种可能组合都至少出现一次。,全部可能的条件
8、组合为: A1, B=0 A1, B 0 A1, B=0 A1, B 0 A=2, X1 A=2, X 1 A 2, X1 A 2,X 1,Test cases: A=2, B=0, X=4 (T T) A=2. B=1, X=1 (F T) A=1, B=0, X=2 (F T) A=1, B=1, X=1 (F F),问题:没有测试到(T F)的情形,2018/9/26,18,测试方案技术测试策略,实用测试策略 (1)在任何情况下都使用边界值分析的方法。 (2)必要时用等价划分法补充测试方案。 (3)必要时再用错误推测法补充测试方案。 (4)对照程序逻辑,检查已经设计出的测试方案。可以根据
9、对程序可靠性的要求采用不同的逻辑覆盖标准,如果现有测试方案的逻辑覆盖程度没达到要求的覆盖标准,则应再补充一些测试方案。 注意:即使采用综合策略设计方案,仍不能保证测试将发现一切程序错误。,2018/9/26,19,静态测试和动态测试,静态测试(static testing):测试不运行的部分,只是检查和审阅 动态测试(dynamic testing):运行和使用软件,测试软件的缺陷,2018/9/26,20,产品说明书,产品说明书:对产品最终需要实现的功能的描述。这些功能是最终确定的需要满足的客户需求,也包括是一些软件必须具备的能力。 在规范的软件生成的流程中,产品功能说明书应在用户需求评审会
10、议召开后确定。,2018/9/26,21,测试软件产品说明书静态黑盒,特点 是书面文档,不是软件 是软件需求和功能的说明描述 形成的符号是:文字、图表 根据细致、准确地描述,测试缺陷 使用的测试方法 静态黑盒 SB 测试 先总体测试,在详细测试,2018/9/26,22,总体测试审查,在总体上,审查文档是否有原则上的重大问题、疏忽或遗漏 选择的测试人员需要有一定的系统经验,或者软件应用领域的背景知识,也可以请其他的需求定义和系统分析人员帮助 审查的原则 站在客户角度,从总体上看需求是否满足 尽可能多的了解应用领域的背景知识 对照现有的标准和规范去审查,比如习惯用语和约定、行业要求、国家标准、图
11、形用户界面需求、硬件和网络标准 借鉴类似的成熟软件,确定测试的标准。比如规模、复杂性、测试性、质量和可靠性等,2018/9/26,23,详细测试追根问底,产品需求说明书的根本要求 完整:说明要完全,不能有遗漏和丢失 准确:说明是否正确、有没有错误 精确、清晰:描述是否清楚、容易看懂和理解 一致:描述是否自相矛盾、与其他功能有没有冲突 贴切:功能是否符合客户的要求、信息描述是否多余 合理:资源的使用与预算和进度是否相配 代码无关:只写说明,与实现无关 可测:功能和性能是否可测,2018/9/26,24,详细测试用语检查,文档中的用语需要规范 有些用语会造成误解和理解困难,有些是个人的习惯 需要重
12、点审查带有如下用词的描述,是否确切表达 不确切、不可测的说法:比如,良好、迅速、廉价、高效、稳定等 缺乏必要考证,而下结论的描述:比如,因此、显然、当然等 极端的描述:比如,总是、所有、没有、从不等 没有说明的描述:比如,已处理、已忽略、已消除等 条件的假设缺陷:比如条件中缺少“否则” 不可测的模糊信息:比如,有时、通常、几乎、诸如此类、依此类推。,2018/9/26,25,使用检查表,检查表是测试文档缺陷最有效的手段之一 检查表的建立是需要深思熟滤的提问,针对不同类型的文档建立的潜在缺陷的查找清单 检查表需要不断的维护 如何使用检查表 获取需要测试的文档 获取相关的检查表,阅读检查表中的每一
13、项 审查文档,对照检查表中的每一项测试说明描述的符合程度 记录不符合项,作出合适的说明和解决措施,2018/9/26,26,检查表举例,见文件CheckList_requirement.xls,2018/9/26,27,不符合项(缺陷)的处理,反映产品的缺陷,不需要也不能修正产品, 发现产品说明书的缺陷后,应该把它们如实并详细的记录下来,呈报给此软件的最终负责人,对并此缺陷的处理情况进行跟踪 缺陷列表应该呈报给软件的最终负责人,而不是给相关技术人员或技术主管,因为技术人员可能会以在技术的实现上有难度为推托,拒绝对缺陷的修改。 测试一个软件最首要也是最重要的是测试其产品说明书,在产品说明书明确后,再制定具体的测试案例,2018/9/26,28,软件文档测试举例,1. COPY功能是将数值复制到剪贴板中 2. PASTE功能是将剪贴板中的数值粘帖回来 3. SQRT按钮是将输入框中的数字开平方,并将结果显示在数字输入框中,2018/9/26,29,软件文档测试举例,4。当用户选择Compact Memory选项时,程序将邮件列表数据压缩到可能与Huffman解析矩阵方法同样大小的尺寸5。尽管使用的模拟连接通常不超过一百万个,但是该软件最多允许一亿个。,没有量化,不精确 没有作到与代码无关,涉及到了算法,不可测,2018/9/26,30,小结,黑盒和白盒测试 产品描述文档的测试,