diff --git a/README.md b/README.md index cd6b08ba3806c19da7cbe1e94dcfac4becf72bc2..a044f719705dee07148f48623e7bdb75a74e88e8 100644 --- a/README.md +++ b/README.md @@ -1264,7 +1264,7 @@ MC/DC具有如下优点: 上图中包含的不同执行路径数达5的20次方条,假定对每一条路径进行测试需要1毫秒,一年工作365 × 24小时,要想把所有路径测试完,需3170年。 -测试中做到完全的路径覆盖是无法实现的,为解决这一难题只得把覆盖的路径数压缩到一定限度内。 +测试中做到完全的路径覆盖是目前无法实现的,为解决这一难题只得把覆盖的路径数尽量压缩到一定限度内。 路径分析测试法,是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,设计测试用例的方法。该方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。 @@ -1296,7 +1296,7 @@ MC/DC具有如下优点: #### 4.6.3 Z路径覆盖 -路径覆盖是路径覆盖的一个变体。不考虑循环的形式和复杂度,也不考虑实际执行循环体的次数是多少,只考虑通过循环体零次和一次这两种情况,零次循环式指跳过循环体,从循环体的入口直接到循环体的出口。通过一次循环体是指检查循环初始值,根据简化循环的思路,循环要么执行,要么跳过,这和判定分支的效果一样。这样就大大减少了循环的个数,将循环结构简化为选择结构。 +路径的覆盖是路径覆盖的一个变体。不考虑循环的形式和复杂度,也不考虑实际执行循环体的次数是多少,只考虑通过循环体零次和一次这两种情况,零次循环式指跳过循环体,从循环体的入口直接到循环体出口。通过一次循环体是指检查循环的初始值,根据简化循环的思路,循环要么执行,要么跳过,这和判定分支的效果相同。这样就大大减少了循环的个数,将循环结构简化为选择结构。 ### 4.7 数据流测试 #### 4.7.1 变量定义/使用分析 @@ -1309,11 +1309,11 @@ MC/DC具有如下优点: 它是借助于往被测程序中插入操作来实现测试目的的方法,即向源程序中添加一些语句,实现对程序语句的执行、变量的变化等情况进行检查。 #### 4.8.1 插桩位置 -插桩位置主要解决的是在哪儿插的问题,为此将程序按“块”划分,探针主要插桩在其“路口”的位置,主要考虑以下4种位置: +插桩位置主要解决的是在哪儿插的问题,为此将程序按“块”划分,探针主要插桩在其“路口”的位置,主要考虑以下5种位置: 1. 程序的开始,即程序块的第1个可执行语句之前; 2. for、do、do-while、do until 等循环语句开始、结束处。 3. if、else if、else及end if等条件语句各分支开始、结束处。 -4. 函数、过程、子程序调用语句之后, +4. 函数、过程、子程序调用语句之后可以插桩。 5. 程序的出口,return、call之后。 #### 4.8.2 插桩策略 @@ -1378,7 +1378,7 @@ C ̂≈ C+ 3√C #### 5.1.3 吞吐量 吞吐量是指单位时间内成功在网络上传输数据量的总和,用请求数/秒或页面数/秒来衡量,吞吐量有如下两个作用: 1. 协助设计性能测试场景,以及衡量性能测试场景是否达到了预期设计目标,在设计性能测试场景时,根据吞吐量数据测试场景中的事务发生频率等。 -2. 协助分析性能瓶颈。吞吐量是性能瓶颈的重要表现形式。因此,有针对性地测试吞吐量,可以尽快定位到性能瓶颈所在位置。 +2. 协助分析性能瓶颈。吞吐量是性能瓶颈的重要表现形式。因此,有针对性地测试吞吐量,可以尽快定位到性能瓶颈所在需求位置。 吞吐量和并发用户数之间存在一定的联系,计算公式如下所示: ``` @@ -1441,7 +1441,7 @@ T:性能测试所用的时间。 例如,通过用户自定义完整性将员工的年龄限制在20~35岁之间,如果用户输入的年龄不在这个范围之内,就违反了“用户自定义完整性”的原则。 2. 数据库容量测试 -数据库容量测试是指数据库是否能存储数据量的极限,还用于确定在给定时间内能够持续处理的最大负载。 +数据库容量测试是指数据库是否能存储数据量的极限,还可以用于确定在给定时间内能够持续处理的最大负载。 #### 5.2.5 安全性测试 安全性测试是测试系统在应付非授权的内部/外部访问、非法侵入或故意的损块时的系统防护能力,检验系统是否有能力使可能存在的内/外部伤害或损害的风险限制在可接变的水平内,可靠性通常包括安全性,但是软件的可靠性不能完全取代软件的安全性,安全性还涉及数据加密、保密、存取权限等多个方面。 @@ -1486,7 +1486,7 @@ T:性能测试所用的时间。 提高可用性的办法: 1. 使用群集 -集群包括至少将两个系统连接到一起,使两个服务器能够像一台机器那样工作。集群是高可用性的关键技术,因为它是在出现失败时,提供即时故障转移的应用程序服务。 +集群包括至少将两个系统连接到一起,使两个服务器能够像一台机器那样稳定工作。集群是高可用性的关键技术,因为它是在出现失败时,提供即时故障转移的应用程序服务。 2. 使用网络负载平衡 网络负载平衡通过检测某服务器失败后,自动将通信量重新分发给仍然运行的服务器。 @@ -1525,7 +1525,7 @@ T:性能测试所用的时间。 性能测试是通过测试工具模拟大量用户操作,对系统增加负载,所以必须熟练地掌握和运用测试工具,由于性能测试工具一般基于不同的软件系统架构实现,脚本语言也不同,只有经过工具评估才能选择符合现有软件架构的性能测试工具。确定测试工具后,需要组织测试人员学习测试工具,培调相关的测试技术。 #### 5.3.4 制定评估标准 -任何测试的目的是确保软件符合预先规定的目标和要求。通常性能测试有线性投射、分析模型、模仿和基准4种模型技术用于评估。 +任何测试的目的是确保软件符合预先规定的目标和要求。通常性能测试有线性投射、分析模型、模仿和基准4种模型技术用于评估测试。 1. 线性投射 通过大量过去的、扩展的或者将来可能发生的数据组成散布图,利用这个图表不断和系统的当前状况进行对比。 @@ -1891,7 +1891,7 @@ eg. 登录功能描述 * 错误处理:非合理输入和系统错误 #### 6.5.2 集成测试 -集成测试与单元测试相反,原理为将部分需测试部分作为整体进行集成,随后针对此类集成部分进行测试。测试要求为此类被测试集成题应具有一定的结构,且属于非渐增方式集成。对于较大软件而言,集成测试方式较单元测试方式而言较为繁琐,多数大型软件的测试皆采取渐增方式进行测试。渐增测试方式为集成测试方式的衍生,其能够按照不同次序对软件进行测试,日常测试中,常将两类方式进行集成测试,随后按照次序展开选择。 +集成测试与单元测试相反,原理为将部分需测试部分作为整体进行集成,随后针对此类集成部分进行测试。测试要求可被此类被测试集成题应具有一定的结构,且属于非渐增方式集成。对于较大软件而言,集成测试方式较单元测试方式而言较为繁琐,多数大型软件的测试皆采取渐增方式进行测试。渐增测试方式为集成测试方式的衍生,其能够按照不同次序对软件进行测试,日常测试中,常将两类方式进行集成测试,随后按照次序展开选择。 集成测试也称联合测试、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。主要目的是检查软件单位之间的接口是否正确。 @@ -2016,7 +2016,7 @@ eg. 登录功能描述 影响较小,很容易获悉影响范围,以及回归测试用例的选择。 2. 版本发布 -每次版本的发布或者更新,都必须保障原有功能的正确性以及新功能的正确性;因此回归测试的范围必须是全面的。 +每次版本的发布或者更新,都必须保障原有功能的正确性以及新功能的正确性;因此回归测试的范围必须是覆盖整体的。 3. 新功能提测 新上线的功能,我们首先要保障新功能的正确性;另外保障它没有影响与其相关联的功能,即保障其相关功能的正确性。 @@ -2090,7 +2090,7 @@ eg. 登录功能描述 | 发现总计 | 42 | 76 | 152 | 270 | | 本阶段缺陷移除率 | 19% | 82% | 8% | | -矩阵的每行表示该阶段或活动发现的各阶段产生的缺陷数;矩阵的每列表示该阶段或活动注入的缺陷泄漏到后续各环节的缺陷数。 +矩阵的每行表示该阶段或活动发现的各阶段产生的缺陷数;矩阵的每列表示该阶段或活动新注入的缺陷泄漏到后续各环节的缺陷数量。 表中的参数解释如下: **缺陷移除率=(本阶段发现的缺陷数/本阶段注入的缺陷数)×100%** @@ -2142,7 +2142,7 @@ eg. 登录功能描述 2. 界面和用户体验测试:审美观和心理体验是不可替代的; 3. 正确性检查:对是否的判断、逻辑推理能力是工具不可替代的; 4. 手工测试比自动化测试发现的缺陷更多; -5. 不能用于测试周期很短的项目; +5. 不能用于测试周期没有达到时间要求的项目; 6. 不能保证100%的测试覆盖率; 7. 不能测试不稳定的软件; 8. 不能测试软件易用性。 @@ -2157,7 +2157,7 @@ eg. 登录功能描述 该阶段有针对性地引入了不同的测试准则和测试策略,指导测试的自动化过程以及对测试的结果进行评估。 3. 面向目标的自动测试技术 -面向目标的自动测试技术并不是机械和随机地发现错误的活动。由于各种高性能的算法,如进化计算和人工智能等领域被引入到自动测试技术中,因此测试具有很强的目的性。 +面向目标的自动测试技术并不是机械和随机地发现错误的活动。由于各种高性能的算法,如进化计算和人工智能等领域被引入到自动测试技术中,因此测试具有很强的目的性和针对性。 4. 智能应用的自动测试技术 引入能力成熟度模型后,不同的自动测试等级成为测试能力的一个衡量依据。 @@ -2527,7 +2527,7 @@ postman.setGlobalVariable("username", "tester"); #### 7.8.5 添加需求 -产品经理可能都习惯了写需求设计文档,或者规格说明书,通过一个非常完整的word文档将某一个产品的需求都定义出来。但在禅道里面,提倡按照功能点的方式来写需求。简单来讲,就是将原来需求设计文档中的每一个功能点摘出来,录在禅道里面,作为一个个独立的功能点。如果按照scrum标准走的话,我们可以称之为 用户故事(user story)。所谓用户故事,就是来描述一件事情,作为什么用户,希望如何,这样做的目的或者价值何在,这样有用户角色,有行为,也有目的和价值所在,非常方便与团队成员进行沟通。 +产品经理可能都习惯了写需求设计文档,或者规格说明书,通过一个非常完整的word文档将某一个产品的重要需求都定义出来。但在禅道里面,提倡按照功能点的方式来写需求。简单来讲,就是将原来需求设计文档中的每一个功能点摘出来,录在禅道里面,作为一个个独立的功能点。如果按照scrum标准走的话,我们可以称之为 用户故事(user story)。所谓用户故事,就是来描述一件事情,作为什么用户,希望如何,这样做的目的或者价值何在,这样有用户角色,有行为,也有目的和价值所在,非常方便与团队成员进行沟通。 创建需求的步骤如下: 1. 使用产品经理角色登录系统。