条件覆盖

单元测试实战(一)

梦想与她 提交于 2019-11-28 20:10:59
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 如果觉得我的文章对您有用,请随意打赏,您的支持将鼓励我继续创作 : WeChat 丶 Alipay 丶 Add me 目录 一、为什么要做单元测试,以及适用项目 1.回顾 2.价值 3.适用项目 二、UT开展 1.UT计划 2.UT设计 3.UT实现 一、为什么要做单元测试,以及适用项目 1.回顾 说明: 测试方法中的白盒测试就是本项目的单元测试 2.价值 提前介入测试,发现代码级别的bug 3.适用项目 1.大型的、项目周期长 2.新系统、新团队 3.涉及财产、生命的项目 二、UT开展 1.UT计划 1.确定单元测试范围 1)依据标准:二八原则 20%的代码中隐藏了80%的缺陷 2)如何确定20%的代码 使用频率:高 复用性:全新的丶部分复用丶全部复用 开发人员背景:技术(强 一般 弱)丶业务(熟悉 一般 不熟) 复杂度:一般认为复杂度在7级以上的为20%的代码 优先级高的那么也就是那20%的代码,当对项目某个模块进行单元测试时,则需要进行制测试范围表进行如下分析 2.确定评估标准 逻辑覆盖率: 1) 语句覆盖率 什么是语句:非分支,分判断 计算方式:被测的语句/全部的语句 示例:通过代码实现用户输入一个数字,判断是否大于0,如果大于0那么对该数字-1,否则+1 将如上代码编写流程图 从流程图中开始到结束

Java面试经典题目合集

我的梦境 提交于 2019-11-28 15:41:14
32 1.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?   “static”关键字表明一个成员变量或者是成员方法与类相关,可以在没有所属的类的实例变量的情况下被访问。   Java中static方法不能被覆盖,因为方法覆盖是 基于运行时动态绑定的 ,而static方法是 编译时静态绑定的 。static方法跟类的任何实例都不相关,所以概念上不适用。   java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能覆盖。 2.是否可以在static环境中访问非static变量? 因为静态的成员属于类,随着类的加载而加载到 静态方法区内存 ,当类加载时,此时不一定有实例创建,没有实例,就不可以访问非静态的成员。 3.Java支持的数据类型有哪些?什么是自动拆装箱? Java语言支持的8种基本数据类型是: byte short int long float double boolean char 自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成Integer,double转化成Double,等等。反之就是自动拆箱。 Java支持的数据类型包括两种

【转】白盒测试及其基本方法

核能气质少年 提交于 2019-11-27 12:44:17
一、 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 二、概述 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例的设计方法,盒子对应的是被测试的测试,"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。 三、基本方法 强度由低到高:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 (1)语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。 (2)判定覆盖:使设计的测试用例保证程序中每个判断的每个取值分支至少经历一次。 (3)条件覆盖:条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支 (4)判定条件覆盖:判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次

MySQL 索引选择原则

自古美人都是妖i 提交于 2019-11-27 11:42:22
目的 MySQL 查询优化器是基于代价( cost-based )的查询方式。因此,在查询过程中,最重要的一部分是根据查询的 SQL 语句,依据多种索引,计算查询需要的代价,从而选择最优的索引方式生成查询计划。 然而,在分析 MySQL 查询优化器过程中,是以查询优化器主线的原则进行研究,而忽略了很多细节的内容。因此,对 MySQL 索引选择进行进一步的研究和分析,给出创建和使用索引的规则,从而有助于分析 SQL 查询。 设计 设计原则主要依据为尽可能的测试索引,而不考虑索引的合理性。一方面可以更加全面的测试在多种索引存在的情况下,查询优化器是如何进行选择的。另一方面可以根据选择索引的原则,评估索引的合理性。 1 、数据表设计 数据表设计如下所示,其中 students_origin 表中只有主键索引, students 表设计主键索引( Primary Key )、唯一索引( Unique Key )、 B+ 索引、联合索引等。 点击( 此处 )折叠或打开 CREATE TABLE `students_origin` ( `id` int ( 11 ) NOT NULL , `name` varchar ( 30 ) DEFAULT NULL , `age` int ( 11 ) DEFAULT NULL , `major` varchar ( 20 ) DEFAULT NULL

MySQL 索引选择原则

为君一笑 提交于 2019-11-27 09:50:04
目的 MySQL查询优化器是基于代价(cost-based)的查询方式。因此,在查询过程中,最重要的一部分是根据查询的SQL语句,依据多种索引,计算查询需要的代价,从而选择最优的索引方式生成查询计划。 然而,在分析MySQL查询优化器过程中,是以查询优化器主线的原则进行研究,而忽略了很多细节的内容。因此,对MySQL索引选择进行进一步的研究和分析,给出创建和使用索引的规则,从而有助于分析SQL查询。 设计 设计原则主要依据为尽可能的测试索引,而不考虑索引的合理性。一方面可以更加全面的测试在多种索引存在的情况下,查询优化器是如何进行选择的。另一方面可以根据选择索引的原则,评估索引的合理性。 1.数据表设计 数据表设计如下所示,其中students_origin表中只有主键索引,students表设计主键索引(Primary Key)、唯一索引(Unique Key)、B+索引、联合索引等。 CREATE TABLE `students_origin` ( `id` int(11) NOT NULL, `name` varchar(30) DEFAULT NULL, `age` int(11) DEFAULT NULL, `major` varchar(20) DEFAULT NULL, `rank` int(11) DEFAULT NULL, `total` int(11)

覆盖率测试

心已入冬 提交于 2019-11-27 01:27:57
覆盖率测试分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。 1、语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错误。 2、判定覆盖是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次,但若程序中的判定是有几个条件联合构成时,它未必能发现每个条件的错误。 3、条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支。 4、判定/条件覆盖是使判定中每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次。 5、条件组合覆盖是使每个判定中条件结果的所有可能组合至少出现一次,因此判定本身的所有可能解说也至少出现一次,同时也是每个条件的所有可能结果至少出现一次。 6、路径覆盖是每条可能执行到的路径至少执行一次。 结合具体程序说明: View Code 1 if (a> 0 || b> 0 ) 2 { 3 // ... 4 } 5 else 6 { 7 // ... 8 } 1、测试用例设计为 (1,-1)、(-1,-1),即可满足语句覆盖率为100% 2、同样(1,-1)、(-1,-1),也能满足判定覆盖率为100%,但是不满足条件覆盖率为100% 3

软件测试

自作多情 提交于 2019-11-27 01:18:38
1、整个流程:需求分析-->概要设计-->详细设计-->编码实现-->单元测试-->集成测试-->系统测试-->验收测试。 2、单元测试覆盖率包括:语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖。 转载于:https://www.cnblogs.com/nzbbody/p/3558397.html 来源: https://blog.csdn.net/weixin_30751947/article/details/99234669

暑假学习进度报告6

吃可爱长大的小学妹 提交于 2019-11-26 22:28:54
本周主要学习了Java方法的重载和覆盖的判断标准。 重载:a) 属于同一个类中的多个成员方法。b) 这些方法具有相同的方法名称。c) 方法中的参数个数或类型不同。d) 方法的返回值不能单独作为方法重载的判断条件。而覆盖:a) 只存在于有继承关系的父类和子类中的方法。b) 方法都具有相同的方法名称。c) 方法中的参数个数以及类型相同。d) 方法中的返回值也必须相同。虽然经过了部分练习,但是还是有点生疏。这周还做了pta上的习题。 来源: https://www.cnblogs.com/wind-and-sky/p/11333970.html