软件测试概论

第一章、认识软件

一、概述

软件又叫做软体,英文是software

不同的设备上叫法不一样

  • 普通的电脑上:软件
  • 手机,平板电脑:app(application)

1、软件定义

官方:软件是按照特定顺序组织的计算机指令(代码,程序)和数据集合(用户名和密码,商品图片,价格,名称,银行存款记录,取款记录...)

自己的理解:软件是具备特定目的,特定的功能,为了提高生活工作等方面的效率,由代码做出来的一个东西。

2、软件依赖于硬件

软件还是一个特殊的东西,特殊在:软件必须依赖于硬件设备而存在,不能独立存在。

以后做软件,一定会用到设备

可能会用到的设备:

  1. 普通的电脑:cpu:i5,内存:8G
  2. 移动端设备(手机,平板电脑):小一些的设备
  3. 服务器设备:其实就是电脑,但是比普通的电脑配置好很多,cpui10,内存:64G

二、操作系统/系统软件(system software)

不同的硬件设备上安装的操作系统也不一样

普通的电脑:以为图形化为主,以命令行为辅的操作系统,eg:windows,mac

服务器设备:以命令行为主,以图形化为辅的操作系统,eg:linux,unix...

  • 图形化:用鼠标点击图标,按钮来操作系统
  • 命令行:使用命令来操作系统

windows  VS  Linux系统:

  • 相同点:windows和Linux都是操作系统,都有图形化和命令行两种,但是看以哪个为准
  • 不同点:使用方式不同
    • windows:通过在图形,图标上用鼠标点击来操作,操作简单,适合广大群众来使用
    • linux:通过一个一个命令来使用,提前背命令,适合由电脑基础的人使用

移动端设备:安卓,ios, 鸿蒙

虽然windows以图形化为主,但是仍然要记住的几个命令:

cmd窗口打开方式:点击开始菜单==》搜索程序和文件中输入:cmd ==》 敲回车

  1. ipconfig   ---查看IP地址命令

  1. ping 对方设备的IP地址   --检查自己电脑到对方电脑之间的网络连通状况

补充:

mstsc   ==》远程控制别人的电脑

shutdown  -s   -t  1800   ==》在1800秒以后关机

shutdown  -a             ==》取消关机

logoff                    ==》注销

三、应用软件(application software)

从架构上分类:

1、无架构的应用软件

单机版软件

使用这种软件的时候不需要上网,很多单机版的游戏,eg:植物大战僵尸

2、B/S架构软件

涉及到两个设备

B:browser,浏览器

S:server,服务器

凡事用浏览器访问的网站都是B/S架构的软件,eg:百度网站,淘宝网站

3、C/S架构软件

涉及到两个设备

C:client,客户端

S:server,服务器

需要用户在自己电脑上安装一个专门的客户端软件,才能和服务器进行通信

4、P2P架构

peer to peer,点对点架构

相当于只有客户端,没有服务器,客户端与客户端之间需要上网,eg:飞秋

比较:

  • 单机版:只有客户端,没有服务端,而且不需要上网
  • P2P:相当于只有客户端,没有服务端,但是客户端与客户端之间需要上网
  • B/S:使用浏览器访问服务端,有服务端,需要上网
  • C/S:使用客户端访问服务端,有服务端,需要上网

目前,主流的软件架构 B/S,C/S,单机版的比较少了,P2P现在基本上见不到了

四、中间件

介于系统软件和应用软件之间的软件,一般是开发会用到。

第二章、软件团队

又叫做项目组,项目组有大有小,团队成员也会不一样

做一个软件:实现加减乘除,团队小,项目组小

做一个软件:QQ(聊天,QQ空间,QQ邮箱,QQ游戏):团队大,项目组大

一、项目经理(PM)

负责管理整个项目团队,让整个项目团队顺利开展工作

二、开发(dev)

写代码的人,做软件的人

开发经理,开发组长,开发人员(初级,中级,高级,资深)

三、测试(QE)

做质检的,检查软件的质量是否符合客户的要求

测试经理,测试组长,测试人员(初级,中级,高级,资深)

四、需求人员/产品经理

负责和客户进行沟通,获取客户的真实想法,把客户的真实需求记录到文档中 ==?需求文档:开发和测试的工作依据

五、配置管理员(CMO)

负责管理项目组的所有的文档资料

六、质量保证员(QA)

不同的公司对QA的理解不一样,有的公司认为QA就是测试

大部分公司认为测试就是测试,QA就是QA

QA是给项目组来制定工作规范的,让团队的工作变得更加的规范 ==》纪检委

七、维护人员

类似于售后

八、实施人员

驻派到客户现场的人,类似于装空调的人

注意:

如果是大项目组,每个岗位都会有专职人员来做

如果是小项目组,可能会出现某些岗位没有专职人员,是兼职人员做。eg:测试兼职需求,测试兼职CMO,测试兼职QA,测试兼职维护,测试兼职实施

一般情况下不可能出现,开发兼职测试,测试兼职开发,即:开发和测试是同一个人。

第三章、软件的生命周期

一、概述

概念:软件的生命周期指的是软件从无到有,到做出来,到慢慢的使用,到慢慢的不维护,淘汰的过程,即:软件丛生到死的过程。

分为六个阶段:项目计划和可行性研究阶段 ==》 需求分析阶段 ==》 设计阶段 ==》 编码阶段 ==》 测试阶段 ==》 发布与维护阶段

每个软件做出来都会经历这6个阶段。

二、项目计划和可行性研究阶段

参与人员:项目经理,公司决策层等领导层参与,也会和客户进行沟通

先分析这个软件能不能做

eg:做一个赌博的软件 ==》 政策不允许

注册时自动识别三围,素颜 ==》 技术不允许

电商软件:买东西 ==》 做

再确定项目计划:需要做多长时间(规划时间),需要多少人(需要多少开发,需要多少测试),考虑做软件的过程中可能会出现的一些突发状况。盈利,成本。

三、需求分析阶段

参与人员:需求人员

需求人员需要找客户沟通,落实软件的细节,注意:挖掘客户的真实需求

福特的客户说:我想要一匹更快的马

四、设计阶段

参与人员:开发人员

开发人员设计将来写代码要怎么写

五、编码阶段

参与人员:开发人员

开发人员写代码,真正的把软件做出来

六、测试阶段

参与人员:测试人员

测试人员来检测软件的质量,检测做出来的软件是否符合客户的要求

七、发布与维护阶段

参与人员:实施人员,维护阶段

把测试测完的没有问题的软件交付给客户使用,使用的过程中还可以进行维护

注意:不同的软件生命周期的长度会不同

可能有的软件做的时候做了1年,维护6年

可能有的软件做的时候做了3年,维护2年

也有可能有的软件一直做,一直维护下去,一般常用的软件都会一直做一直维护,eg:QQ,微信,支付宝,电信计费系统

第四章、初步介绍软件测试

官方概念:软件测试是指通过人工或自动化方式来检测软件的过程

一、测试方法

1、按人机

  • 手工测试:手动的在被测软件中操作来进行测试(手洗衣服)
  • 自动化测试:通过写代码,让代码代替人操作进行测试(洗衣机洗)

2、按方法

  • 白盒测试:
    • 从代码上,从结构上着手进行测试,关注的是代码的内部逻辑
  • 黑盒测试:
    • 从软件上,从页面上着手进行测试,关注的是页面中呈现出来的功能
  • 灰盒测试:
    • 介于白盒测试和黑盒测试之间的,即关注代码的内部逻辑,又关注呈现出来的功能,二者都要兼顾

3、按状态

静态测试:不运行代码,不启动软件,来进行测试 ==》代码审查,代码走读

动态测试:运行代码,启动软件,来进行测试

二、测试目的

软件测试的目的是为了找问题(比较片面)  --早期

软件测试的目的是为了证明软件可用(软件的质量符合客户的要求)

软件测试的目的是为了预防问题 --预防问题,就需要提早测试

建议测试人员从需求分析阶段就开始介入测试

三、测试流程

测试过程:计划、设计、实现、执行

--指导了测试工作

1、先熟悉被测软件    

--医生望闻问切,了解病情

2、定制测试计划(计划)

3w:who、what、when,规划的是谁什么时间点做什么事情

--医生定治疗计划:规划治疗几个疗程,几个月能治好

3、设计测试方案(设计)

制定测试策略,怎么测试?用什么方法测试?测试哪些地方?

                    ---医生定治疗方案:开刀

4、设计测试用例(实现)

进一步思考用什么数据来测试,用什么步骤来测试?

--进一步思考开刀前准备**,开刀的过程中**,开刀后**

洗衣服

计划:二狗子 9.13洗衣服  狗蛋子 9.13 洗裤子  狗腿子 9.14 洗床单

方案:手洗+洗衣机洗   领口、袖口   --粗

用例:

洗领口的步骤:    --细

  1. 打湿
  2. 涂洗衣液:手搓 半小时
  3. 温水泡半小时
  4. 放到洗衣机里洗

5、执行环节(执行)

真的到软件中来测试,真正的测试   --真正的拉进手术室,开刀

6、编写测试报告

总结测得怎么样?测的好不好,测完之后质量是不是合格?能不能交付给客户使用

---医生结论:几年之内不会复发

            该吃吃,该喝喝,啥事别忘心里搁

第五章、软件的研发流程

概念:就是做软件的过程,软件的研发流程也叫做研发模型

一、瀑布模型

1970年提出的一种研发模型 --串行模型

严格的按照:项目计划 ==》 需求分析 ==》设计阶段 ==》 编码阶段 ==》 测试阶段 ==》 发布与维护阶段  这个过程做软件。

问题:需求分析阶段的问题要到测试阶段才能发现,改起来花费的代价太大了。

二、螺旋模型

在瀑布模型基础上,更加细化,更加好一点,每个环节都是串行的

问题:必须等到测试结束后,客户才能使用到这个软件

电商:登录,注册,下单,秒杀,直播,搜索商品...

开发设计和编码:9个月

测试:3个月

用户使用到这个软件:1年以后

三、敏捷模型

可以先开发一部分,测试人员测试一部分,客户先使用一部分,分批次来做,慢慢叠加的模式

电商:登录,注册,下单,秒杀,直播,退款,搜索商品...

迭代一:登录,注册,下单,开发:2个月,测试1个月 ==》3个月以后使用到这个软件

迭代二:退款

迭代三:将第一次做的用户名和密码登录改成扫码登录

好处:客户提前享受到这个软件,还比较灵活,快速响应客户的需求变化

第六章、质量

一、概念

质量是实物具有的一种物理属性,每个事物都具有的

eg:衣服的质量,房子质量,电脑质量...

软件的质量,指的是软件的实体特征对用户需求的满足程度,即:软甲是否能满足客户的要求,满足的程度

什么样的衣服质量好??

不褪色,不缩水,不起球,版型好,穿着舒适,衣服材质对人体没有伤害。。。各方面能让我们满意,衣服的质量好。

如何评判软件质量的好坏?

从多方面综合起来评判,全部都让客户满足,软件的质量才好,一旦一方面不让客户满意,软件的质量就不好了。

到底从哪些方面评判软件的质量?有一个专业的质量模型评判

eg:评判登录功能质量的好坏

  1. 使用正确的用户名和正确的密码能登陆成功
  2. 使用正确的用户名和错误的密码,提示:用户名或密码错误
  3. 登录页面文字提示信息能够容易被客户理解
  4. 登录页面长的好不好看
  5. 从点击登录按钮到跳转到首页花了10分钟

这些方面全部都符合客户的要求,软件的质量好

二、质量铁三角

想要一个质量好的软件,就要确保三方面

流程 + 技术 + 组织,想象它是一个等边三角形,缺一不可,也是最稳定的,如果有一边变长或变短,则另外两边必定收到影响,只有三边保持平衡的关系,才能达到最佳效果。

1、流程

有一个好的流程,就能让软件的质量做的更好

2、技术

越复杂的软件产品,技术越重要,技术好的,就可以让软件的质量做的更好。

3、组织

团队,具备凝聚力,有共同的目标

三、软件质量的构成

包含三方面:内部质量,外部质量,使用质量

1、内部质量

软件内部的结构过程,即:代码  --》开发人员比较关注的

代码写的好不好,内部质量如果要检测的话需要测试代码,一行一行的检测代码写的好不好  --》白盒测试

2、外部质量

软件做好之后,对外呈现的质量,是否和需求匹配  测试人员比较关注的

从软件上着手来进行测试  --黑盒测试

3、使用质量

软件使用过程中的质量  --客户比较关注的,也是测试人员关注的

第七章、测试阶段

整个测试阶段分为四个阶段:单元测试,集成测试,系统测试,验收测试,也有人认为是5个阶段

一、单元测试

现在基本上不做了,测试零部件的,测试代码的最小构成单元(函数或类),代码:一行一行的测试代码   --白盒测试

二、集成测试

测试零部件整合在一起的一个小部件,还测试部件与部件之间的衔接  --灰盒测试

三、系统测试

大多数测试做的。测试整体的,整个的软件,从软件上进行测试  --黑盒测试

比较:单元,集成,系统 ==》测试的颗粒度越来越大的,测得越来越粗,越来越节省人力

都是测试人员来主导的

验收测试是客户来主导的

四、验收测试

1、正式验收

专业验收,客户会找专门验收机构来帮他们验收

2、α测试

非正式验收,是把客户请到公司来,由开发坐在客户旁边,指挥客户操作来验收

3、β测试

公测,用户在实际的使用环境中进行测试

五、第5个阶段:需求测试阶段

对需求测试(很多人叫做需求评审,不叫测试),当需求人员来客户沟通后写的需求文档,开发,测试,需求,项目经理,客户 ...和软件相关的所有人都要对需求进行测试

发动机:烧汽油

50马力  100个5cm,80个10cm

  • 需求评审
    • 开发:熟悉需求 ==》计划==》概要设计==》详细设计==》编码
    • 测试:熟悉需求==》计划==》测试方案==》测试用例==》单元测试==》集成测试==》系统测试==》验收测试

第八章、测试模型

一、V型

出现原因:瀑布模式中设计和编码占的时间很长,基本上会占到项目周期一半以上的时间,人们往往认为测试只是一个收尾的工作。不是主要环节。

V型是瀑布模式的一个改进,每个环节的产出都测试到了

问题:需求分析,设计阶段隐藏的问题要到编码之后才能发现,太晚了

二、W型/双V型

提出原则:尽早测试和不断进行软件测试

第九章、回归测试

当软件发现问题之后,开发会重新修复bug,bug修复后测试还需要验证,验证的过程叫做回归测试。

一、回归测试策略

完全回归:把之前测试过的地方全部重新测试一遍。

部分回归:把问题多的地方,把核心的功能,把常用的功能重新测试一遍

二、如何选择回归测试

时间,开发水平

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值