深入了解软件测试基础01


本篇博客

一、开发模型—瀑布模型
二、开发快速原型模型
三、测试v模型
四、测试v模型优缺点
五、w模型
六、黑盒测试
七、白盒测试
八、黑盒测试分类(背下来)
九、随机测试
十、软件测试分类:(基础要背下来)
十一、测试用例
十二、等价类划分法
十三、等价类细节

一、开发模型—瀑布模型

优点:开发阶段,各个阶段比较清晰;强调早期计划及需求调查;适合稳定需求的产品开发;

改良:每个阶段都可以融入小的迭代工作!

二、开发快速原型模型

实现一个基本原型,让用户对原型进行评价,逐步调整,使其满足用户最终需求;

优点:适合不能确定需求的软件;

缺点:不适合开发大型系统。

三、测试v模型 

 

需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试;

1、  单元测试:又称模块测试,针对单一的程序模块进行的测试

2、  集成测试:又叫组装测试,在单元测试的基础上,对所有模块进行测试。

3、  系统测试:将整个软件看做一个整体来进行测试,包括功能、性能、兼容性

4、  验收测试:

(1)、内测版(alpha)内部交流版本,可能存在很多bug,不建议用户安装。

(2)、公测版(beta)面向所有用户,通过用户的反馈再去修改细节。

(3)、候选版(gamma)与正式软件相差无几。

四、测试v模型优缺点

1、优点:包含了底层测试(单元测试)和高层测试(系统测试);清楚的标识了开发和测试的各个阶段;自上而下逐步求精,每个阶段分工明确,便于整体项目的把控。

2、缺点:自上而下的顺序导致了,测试工作在编码之后,就导致错误不能及时的进行修改;实际工作中,需求经常变化,导致v模型步骤,反复执行,(要重复需求、设计、编码、测试等过程)。返工量很大,灵活度较低。

改良:每个步骤都可以进行小的迭代工作。(如:需求分析搞好,大家一起开个会,确保第一步没什么问题。再进行概要设计,这就是小的迭代工作,确保每一步更完善。再进行下一步。)

五、w模型

         优点:开发和测试伴随着整个开发周期,需求和设计同样要测试;更早的介入测试,可以发现初期的缺陷,修复成本低;分阶段工作,方便项目整体管理。

         缺点:开发和测试依然是线性的关系,需求的变更和调整,依然不方便;如果没有文档,根本无法执行w模型;对于项目组成员的技术要求更高!

         定义:开发一个v;测试一个v组合起来的模型(w模型也叫双v模型)

总结:v模型适用于中小企业,w模型适用于中大型企业(因为人员要求高),h模型人员要求非常高,很少有公司使用。

六、黑盒测试

又称数据驱动测试,完全不考虑从内部机构和特性,值注重软件的功能需求(不管代码)

七、白盒测试

把盒子打开研究里面的程序结构和源代码;

灰盒测试

是介于白盒测试与黑盒测试之间的一种测试,既可保证黑盒的关注点又可掌控白盒的内部结构。

八、黑盒测试分类(背下来)

 一、功能测试:

         1、逻辑功能测试

         2、界面测试

         3、易用性测试

         4、安装测试

         5、兼容性测试

二、性能测试:

         1、时间性能: 事务响应时间等

         2、空间性能: 系统资源消耗

         3、一般性能:软件正常能走通,正常能使用

         4、稳定性

         5、负载测试

         6、压力测试

九、随机测试

         针对重要功能新增加的功能特殊情况以前发现过重大bug的模块进行二次测试;也叫探索测试,它可以结合回归测试来使用;

十、软件测试分类:(基础要背下来)

         1、按测试阶段划分:单元测试、集成测试、系统测试

         2、是否覆盖源代码:

                   (1)白盒测试

                   (2)黑盒测试:1、功能测试 2、性能测试

         3、是否运行:静态测试(不运行程序)、动态测试(运行程序)

         4、其它:1、回归测试  2、冒烟测试  3、随机测试  4、验收测试(内测、公测、候选版)

         5、是否自动化:1、人工测试  2、自动测试

理解:

01.静态测试:v型中(需求,概要设计,详细设计),w型中(测试设计)

02.动态测试:输入相应数据,是否有预期结果。

03.回归测试:回归测试是指修改了旧代码后,重新进行测试确认修改没有引入新的错误或导致其他代码产生错误

04.冒烟测试:冒烟测试是在软件开发过程中的一种针对软件版本包的快速基本功能验证策略,是对软件基本功能进行确认验证的手段,并非对软件版本包的深入测试。

十一、测试用例

测什么?怎么测?

测试用例

举例说明1:

买手机:按开机键,相当于输入了一组数据来测试,执行条件指的是开机的前提条件,比如是否有电;预期结果就是能顺利打开手机,那么测试完毕后,是否达到了想要的需求(顺利开机)

举例说明2:

新浪注册页面:https://login.sina.com.cn/signup/signup?entry=homepage

这次测试的是邮箱地址格式是否正确,怎么测试的呢?分别输入了正确的地址和错误的地址进行测试的。

测试流程:

需求分析---测试需求---测试计划--测试方案---测试用例---执行测试---测试报告

测试用例:

指导测试,是测试的依据。输入(数据,文件,具体操作)操作步骤 预期结果 

1.测试用例的定义:通过设计输入数据,执行步骤,按此步骤应产生的预期结果 它是指导测试进行的依据.

输入数据-----执行条件和执行步骤-----预期结果

目的:高效率地发现软件缺陷而精心设计的少量测试数据

2.测试用例的特征:

  • 有效性    能使用,不同人使用结果一致
  • 可重复性   良好的测试用例具有重复使用的功能
  • 易组织   分门别类供测试人员使用(按功能,性能,易用等分类编号。)
  • 可评估性 评估软件质量(测试计划)
  • 可管理性 可以对测试人员进行工作量和绩效考核

3、测试用例的八大要素(这个每个公司是不一样的,大概就这几个。)

  • 1 测试编号
  • 2 测试模块
  • 3 测试标题
  • 4 测试级别
  • 5 测试环境
  • 6 测试输入
  • 7 测试步骤
  • 8 预期结果

实际中的:

(1)用例编号

每个测试用例都有唯一的标识号,用以区别其他测试用例。

例:系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。

(2)测试标题

对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。

例: “ 测试用户登录时输入错误密码时,软件的响应情况 ” 。

(3)测试模块

指明并简单描述本测试用例是用来测试哪些项目、子项目或软件特性的。

例: 购物模块

(4)用例级别不是很重要,按公司的来。)

定义测试用例的优先级别,可以粗略地分为 “ 高 ” 和 “ 低 ” 两个级别,

例: 核心功能 ---高

界面风格 ---低

(5)测试环境

描述执行测试用例所需要的具体测试环境,包括硬件环境和软件环境。

例: 硬件 : 计算机的具体配置,见测试计划

软件 : 操作系统 linux,数据库 mysql,中间件 weblogic

(6)测试输入

用来执行测试用例的输入要求。这些输入可能是数据、文件或具体操作。

例如: 数据 : 12

文件 : c:\a.c 件couture

动作 : 单击鼠标,在键盘做按键处理)。

(7)执行操作

执行本测试用例所需的每一步操作。

例: 求和运算

输入加数12

输入被加数 24

点击“加法按钮”

(8)预期结果

描述被测项目或被测特性所希望或要求达到的输出或指标。

4、测试用例的设计原则

  • 1 测试用例明确性
  • 2 测试用例有代表性
  • 3 测试用例的简洁性

(1)保证测试用例的明确性

测试人员要尽量避免测试用例存在含糊的因素,在测试过程中,测试用例的测试结果是唯一的。

明确清晰的描述

如:即通过、没通过或未进行测试。

不确定的描述

例如,测试用例这样描述:

用户正确操作,系统正常运行;

用户进行非法操作,系统不能正常运行。

(2)保证测试用例的代表性

尽量将具有相似功能的测试用例抽象合并。

如: 以后我们要学习的等价类测试

测试1 ----100之间的两个整数的和

用例 1+2=3

2+4 =6 功能相似的用例要合并

(3)保证测试用例的简洁性

测试用例简洁,可读性良好,测试过程目的明确,测试结果唯一

例: 测试用例要用陈述性语句 一句话直指问题的核心

加法器输入框输入是非数字时,应弹出提示“请输入数字”

十二、等价类划分法(重要)

属于黑盒测试,它将不能穷举的测试过程进行分类,从而保证完整性和代表性;

1.定义:设计输入具有代表性的数据子集

2.分类:

有效等价类--满足需求

无效等价类--不满足需求

思考步骤:

1、  确定有效等价类无效等价类

2、  有效等价类划分(题目条件,还要注意边界值(极值),中间再随意找个值)

3、  无效等价类划分(跟有效等价类相反,其它特殊情况(中文、英文、特殊符号、空格、空))

等价类划分法:

实例1:计算 1---100的整数之和(包括1和100)

1、整数

2、小数

3、符号(+-/*,。、!@#¥%……&*())

5、汉字

6、空格(仅是空格这里)

7、空(不输入)

关于空格的说法:

这里的老师就是说空格仅是空格

另一个老师说:1 和  空格1这个概念

比如说:一个软件是输入账号:一种是直接输入账号,另一就是输入空格+输入账号两种情况下都可以登陆。这样的软件更好,因为易用型更强。程序员在后台做了去除前后空格的操作。因为肯定是希望用户能够登陆的,只是防止黑客。这个题目这里,那个老师说在这里空格1也是不允许的。

总的来说,我认为空格仅是空格在这里,更方便初学人员理解。但是工作中空格1更好检测软件。

最后17,18行中的小数:我的理解是1-100之间的小数。因为<1和>100的数已经做了处理。所以不用测<1的小数和>100的小数了。

每一个横的,都是一个测试用例。

注意:两个框要一个正确,一个错误,这样才能准确的判断;一定要根据需求来判断预期结果;

小技巧:十字符,选择“填充序列”数字自动增加。

实例2:测试要求是:测试QQ账号,账号的要求是  6---10位正整数。 

方法:等价类划分法

有效的等价类:

1:长度在6—10位之间的整数

无效等价类:

1:长度小于6

2:长度大于10.

3:负数

4:小数

5:英文字母

6:中文

7:空格

8:特殊字符

实例3:某城市电话号码由三部分组成,分别是

地区码:空白或是3位数字

前缀:非‘0’且非‘1’开头的三位数字

后缀:4位数字

例子:1232341234

自动换行:选中输入框,点击自动换行。 

实例4:

-用户名(昵称)长度为  3-19:以字母开头

-登录名称:非空

-密码: 非空

-确认密码: 值和密码相同

第4行是以这些开头:数字,中文,特殊符号,空格,空。还要考虑被和谐的词。

十三、等价类细节(重点)

当我们在测试文本框的程序可以考虑如下的情况:

1、  考虑输入长度

2、  考虑输入类型

3、  组成规则

4、  是否为空

5、  是否区分大小写

6、  是否重复

7、  是否去除空格