文章目录

Ch1 引论Ch2 软件测试的基本概念Ch3 软件测试方法Ch4 软件测试流程和规范Ch5 单元测试与集成测试Ch6 系统测试Ch7 验收测试Ch10 测试需求分析与测试计划Ch13 测试执行与缺陷报告、跟踪

章节重要程度 3 > 1、2、4、5、6、7 > 10、13

Ch1 引论

软件测试的价值

全面评估产品质量,获得有关产品质量的全面、客观的信息发现问题,督促问题解决,提高产品质量持续提供质量反馈、及时揭示质量风险,有助于控制项目风险,提高构建的质量通过缺陷分析,获得缺陷模式,有助于缺陷预防 软件测试的观点 正反两个方向的思维:

正向思维:验证软件正常工作 -> 评价一个程序或系统的特性或能力并确定是否达到预期的结果 -> 在设计规定的环境下运行软件的所有功能,直至全部通过。逆向思维:假定软件有错误 -> 测试是为发现错误而针对某个程序或系统的执行过程 -> 寻找容易犯错误的地方和系统的薄弱环节,试图破坏系统,直至找不出问题。 测试与开发的关系 测试与开发有一对一的关系 V模型从4个层次完成软件的验证,即对需求、系统架构设计、详细的产品设计和代码的验证

需求验证对应验收测试,客户需求的确认测试系统架构设计的验证对应系统非功能性测试产品详细设计的验证对应功能测试代码的验证对应单元测试和集成测试

Ch2 软件测试的基本概念

测试的分类

按测试的对象或范围分类,如单元测试、文档测试、系统测试等)按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等根据测试过程中被测软件是否被执行,分为静态测试和动态测试根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试 静态、动态、白盒、黑盒测试以及不同的测试的组合

静态测试包括对软件产品的需求和设计规格说明书的评审、对程序代码的复审等。静态分析的查错和分析功能是其他方法所不能替代的,可以采用人工检测和计算机辅助静态分析手段进行检测,但越来越多地采用工具进行自动化分析动态测试是通过真正运行程序发现错误,通过观察代码运行过程,来获取系统信息,对系统行为进行验证。白盒测试,也称结构化测试或逻辑驱动测试,也就是已知产品的内部工作过程,清楚最终生成软件产品的计算机程序结构及其语句,按照程序内部的结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行黑盒测试方法,也称数据驱动测试方法,在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下﹐测试人员针对软件直接进行测试,检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当地接收输入数据而输出正确的结果等,检查相应的文档是否采用了正确的模板、是否满足规范要求。

Ch3 软件测试方法

等价类划分测试 等价类是某个输入域的子集,在该子集中每个输入数据的作用是等效的。分为有效等价类和无效等价类。

确定等价类的方法:

在输入条件规定了取值范围或者个数的前提下,则可以确定一个有效等价类和两个无效等价类。例如,程序输入条件为满足小于100大于10的整数α,则有效等价类为10 < α < 100,两个无效等价类为 α < 10和 α > 100。在输入条件规定了输入值的集合或者规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类。例如,程序输入条件为 α = 10,则有效等价类为 α = 10,无效等价类为 α ≠ 10。在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。例如,程序输入条件为 BOOL α = true,则有效等价类为 α = true,无效等价类为 α = false。 根据等价类创建测试用例的步骤 a) 建立等价类表,列出所有划分出的等价类 b) 为每个等价类规定一个唯一的编号 c) 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类 d) 重复c),最后使得所有有效等价类均被测试用例所覆盖 e) 设计一个新的测试用例,使其只覆盖一个无效等价类 f) 重复e)使所有无效等价类均被覆盖 判定表方法——如何构造判定表

列出所有的条件桩和动作桩;填入条件项;填入动作项,制定初始判定表;简化、合并相似规则或者相同动作 各种覆盖测试之间的关系

判定覆盖法的基本思想是设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。条件覆盖的基本思想是设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。判定-条件覆盖是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次。条件组合覆盖的基本思想是设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。 大致上:语句覆盖 -> 判定覆盖 -> 条件覆盖 -> 判定-条件覆盖 -> 条件组合覆盖 -> 路径覆盖 路径覆盖:画出程序流图、控制流图、圈复杂度计算、确定基本路径 程序流图: 控制流图: 圈复杂度V(G)计算:

区域数量(由节点、连线包围的区域,包括图形外部区域)连线数量 - 节点数量 + 2简单可预测节点(判断节点)数量 + 1 哪些用例设计技术适用于黑盒和白盒 黑盒:等价类划分法、边界值分析法、判定表方法、因果图法、正交试验法、功能图法、错误推测法 白盒:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和基本路径覆盖

Ch4 软件测试流程和规范

V模型和W模型之间的关系 W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系,测试伴随着整个软件开发周期,而且测试的对象不仅是程序,还包括需求定义文档、设计文档等,这和上面所扩展的V模型有相同的内涵。 TPI模型具体内容

TPI模型考虑了测试过程的各个方面,如测试工具的使用,设计技术或报告,这些方面被称为关键域为了了解过程在每个关键域所处的状态,即对关键域的评估结果,通过级别来体现为了能客观地决定各个关键域的级别,TPI模型提供了一种度量工具——检查点。每个级别都有若干个检查点,测试过程只有在满足了这些检查点的要求之后,才意味着它达到了特定的级别检查点帮助我们发现测试过程中的问题,而建议会帮助我们解决问题,最终改进测试过程。建议不仅包含对如何达到下个级别的指导,而且还包括一些具体的操作技巧、注意事项等。

Ch5 单元测试与集成测试

单元测试主要内容

单元测试是对软件基本的组成单元进行独立的测试。单元测试和编码是同步进行,但在TDD中,强调测试在先,编码在后。单元测试一般由开发人员完成,QA人员辅助。单元表现为:一个对象/类/函数/模块/组件 集成测试基本方法、关注要点 两种模式:

非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。比较:渐增模式工作量大于非渐增模式;渐增模式发现错误比非渐增模式早;渐增模式易于诊断错误位置;渐增模式测试更彻底;渐增模式测试时间长;非渐增模式可并行测试

Ch6 系统测试

功能测试的依据 实现产品规格说明书上所要求的功能,特别需要模拟用户完成从头到尾(End-to-End,端到端)的业务测试,确保系统可以完成事先设计的功能,满足用户的实际业务需求。不同阶段测试的特点 详见 软件测试的分类_CSDN非功能性测试的内容 压力测试、容量测试、性能测试、安全性测试、容错性测试、兼容性测试、可靠性测试

Ch7 验收测试

验收测试的特点 验收测试是在软件产品完成了系统功能和非功能测试之后、产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段,也称为交付测试。进行验收测试的前提是系统或软件产品已通过了系统测试。验收测试的对象 验收测试主要包括易用性测试、兼容性测试、安装测试、代码、文档(如用户手册、操作手册等)测试等几个方面的内容。UI测试关键点、与设计之间的关系 用户界面的7个要素:符合标准和规范、直观性、一致性、灵活性、舒适性、正确性、实用性

Ch10 测试需求分析与测试计划

测试需求分析的内容 确定测试范围,测试项和测试子项,测试优先级,测试风险编制测试计划的作用、目的 软件测试计划是指导测试过程的纲领性文件,描述测试活动的范围、方法、策略、资源、任务安排和进度等,并确定测试项、哪些功能特性将被测试、哪些功能特性将无需测试,识别测试过程中的风险。软件测试计划内容主要集中在测试目标和需求说明、测试工作量估算、测试策略、测试资源配置、进度表、测试风险等开展测试的停止条件 满足某个阶段结束/里程碑达到的事先定义的要求。对于非严格系统可以采用“基于测试用例”的准则,对于严格系统,应当补充“基于缺陷密度”的规则

Ch13 测试执行与缺陷报告、跟踪

缺陷描述包含的内容和信息有哪些

步骤:提供了如何重复当前缺陷的准确描述,应简明而完备、清楚而准确。这些信息对开发人员是关键的,视为修复缺陷的向导期望结果:与测试用例标准或设计规格说明书或用户需求等一致,达到软件预期的功能。是验证缺陷的依据。实际结果:实际执行测试的结果,不同于期望结果,从而确认缺陷的存在软件缺陷相关的信息包括软件缺陷的图片、记录信息和如何再现和分离软件缺陷,使开发人员和其他的测试人员更容易分离和重现它。

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: