软件测试理论

软件测试理论,第1张

软件测试的目的和原则 定义:

用人工和自动化方式进行测试,目的是通过软件测试找到软件的预期执行效果和实际结果之间的偏差。

预期:知道或者希望(需求文档给出来的需求)实现的功能和效果

实际结果:软件测试得到的结果

目的:

用最少的人力、物力、财力。找到软件中的问题并让程序员修复,降低商业风险。

原则: 1、只能证明软件存在问题,不能证明不存在问题

这是一个辩证问题

只能找到或者没找到问题,但是不能说这个软件没有问题

因为找bug,每个人的思路和角度不一样。

2、不能进行穷尽(穷举) 测试,应该分类别测试

有些情况,我们不能完成全部测试,这时候我们需要进行分类。

分类:可以被搜索到的、不能被搜索到的、特殊情况

例如:手机、电脑、服装可以被搜索到

敏感词:K q 红房子 ,如果被搜到要么是有bug,要么搜索引擎出问题。

特殊情况,在搜索的时候,加进去很多特殊的符号或者数字,测试能否被处理掉,如果没有处理掉就证明有BUG。

3、测试工作要尽早的开展,降低修复成本(需求--UI、开发、测试)

测试工作介入越早,软件修复成本越低

说明文档是产品经理整理的,然后交给开发。如果开发到了后半阶段,发现需求文档有问题,这个时候我们必须推到重来。

对文档的测试,1、有前车之鉴 2、研究可行性报告

4、软件缺陷存在集群现象,二八原则,20%模块存在80%的缺陷

例如一个APP或者一个网页有6个页面或者三大功能,其中一个功能是复杂,而且开发这个功能的程序员如果技术一般,那么在最后验收bug的时候,会发现100个bug,其中这个地方就会有80个

所以说我们要将最大的精力,或者人员匹配度,放在最复杂的功能上。

5、测试依赖系统或环境

我们测试项目无非两种B/S,C/S

如果测试的是C/S,测试手机端我们要准备手机(安卓/IOS),如果是PC端,我们要准备WIN7 WIN8 10 mac linux类桌面系统。

B/S 准备浏览器,IE 谷歌 火狐

6、杀虫剂现象

如果让程序员自己测试,或者测试团队进行测试。我要进行交替测试工作。

个人/团队都会有固化思维

软件开发模型

软件开发模型,也叫软件的生命周期

软件测试与软件的开发模式有很紧密的关系,作为软件测试人员我们要对软件的开发模式有充分的理解

开发模型的介绍

在软件测试经过发展周期,开发模型大致分为三种

瀑布模型,快速原型、螺旋模型

1、调研:公司在做一个项目,首先可行性调研,进行可行性分析。判断我们能不能挣钱。 2、需求分析:调研没问题之后,生成需求分析和需求规格说明书。一般情况由项目经理和产品经理来做。 3、概要设计:概要设计就是讲需求分析的结果落地。概要设计完成后,生成概要设计文档。一般情况由 经验丰 富后端工程师 架构师完成。概要设计文档会说明,整个项目由几个模块组成,每个模块是干什么的,有哪些功能。 4、详细设计:产生一个详细设计文档,一般由开发完成。将每个模块长什么样子进行原型设计。 5、编码: 写代码,程序员完成。 6 、软件测试:测试完成后,给出测试报告。 7、运维 瀑布模型特点 线性模型:这个开发模型占据地位重要,模型的基础以文档为驱动,每个阶段执行一次。按照线性顺序进行开发。 瀑布模型的优点 开发的各个阶段比较清晰 当前阶段完成后,只关注后续阶段 每个成员只关注自己的部分 瀑布模型的缺点 依赖于需求分析。不适应需求变化往往会在后期显露风险,失去尽早纠错的机会 一般只适用于大型的或者复杂的项目上,比如银行 、保险、建筑 快速原型模型 真实开发之前,先构造一个原型,在该原型的基础上逐渐完善整个系统的开发工作 比如手机,汽车

快速原型模型特点 快速的构建软件原型 支持用户参与 快速原型模型优缺点 优点:克服了瀑布模型的缺点,减少由于软件需求不明确带来的风险。 缺点:不适合大型的项目,只适合比较小的灵活的系统。 螺旋模型

特点 引入了风险分析活动 优缺点 优点:螺旋模型很大程度上是一种风险驱动的方法体系 缺点:需要具有相当丰富的风险评估经验

软件测试模型 所谓软件测试模型,就是前辈们总结的测试经验

作用

通过经验总结得到测试模型,旨在提高软件开发测试过程中的效率和效果 第一种模型:V模型   

 V模型在前面瀑布模型的基础上,对测试的工作进行了更细致的划分

补充 V 模型最早是由 Paul Rook 20 世纪 80 年代后期提出的,由英国国家算计机中心文献中发布 V 模型其实是瀑布模型的变种,他反应了测试活动与分析和设计的关系 V 模型标明了测试过程中本身存在不同阶段,从左到右,描述了开发过程和测试过程间的阶段对应关系 优缺点

优点:

V模型既包含了底层测试又包含了高层测试

缺点:

依赖于需求分析。不适应需求变化往往会在后期显露风险,失去尽早纠错的机会 如果没有及时发问题,到最后测试阶段才发现则需要推倒重来 一般只适用于大型的或者复杂的项目上,比如银行 、保险、建筑 总结 组成部分 用户需求 ==> 需求分析 ==> 概要设计 ==> 详细设计 ==> 编码 ==> 单元测试 ==> 集成测试 ==> 系统测试 ==> 验收测试 优点 只需关注当前阶段、文档驱动、线性模型 缺点 不响应需求变化,不灵活 第二种模型: W 模型 第二种模型:W模型也称为双V模型 这种模型,测试伴随着整个开发周期,并且测试的对象不仅仅是程序,需求设计同样要测试。 W 模型是为了解决 V 模型中存在的问题,也就实现了 测试前移

V 模型中 开发 V 当中右边的三个:集成、实施、交付 集成:就是指多个程序员完成自己部分的代码后,需要将代码合并到一起,这个过程就叫做集成 实施:将开发好的程序部署到服务器上 交付:验货、交给自己或用户来使用 在测试 v 中也多了三个, w 是为了实现测试的前移,因为多的四个在左侧:验收测试设计、系统测试设计、集成测试设计、单元测试设计

验收测试设计:

也就是当有了需求文档以后,会对需求文档进行测试,这肯定是静态测试 也就是,通过验收测试设计、系统测试设计、集成测试设计、单元测试设计,可以对前面的每个环节都进行测试 测试伴随了软件开发的全过程 W模型的优缺点

优点

1. 强调测试伴随着整个开发周期,而且测试的对象不仅仅是程序,还包括需求和设计 2. 更早的介入测试,能尽早的发现缺陷

缺点

因为是站在更高的角度看问题,所以对于测试技术要求高,实践起来比较困难

 总结 绘制

开发v:需求分析==》概要设计==》详细设计==》编码==》集成==》实施==》交付

测试v:验收设计测试==》系统测试设计==》继承设计测试==》单元测试设计==》单元测试==》集成测试==》系统测试==》验收测试

优点:

测试贯穿软件开发的全生命周期

早参与、早发现、早解决

缺点:

技术和管理要求比较高

软件质量模型

软件质量,就是 软件 与 明确的和隐含的定义的需求 相一致的程度

ISO 9126 软件质量模型评价软件质量的国际标准,这个模型是软件质量的核心,该模型有6大特性和27个子特性, 对于大部分软件都可以考虑使用该模型去测试和评价

功能性:检查业务功能是否满足需求

可靠性:容错能力 (出现错误后恢复正常的时间或所需要的能力)

易用性:看得懂,会使用 效率:性能(响应时间,占用的资源等)

维护性:为后续的功能开发与维护提供便利

移植性:软件需要能够在不用的环境(软件环境,硬件环境)下都能正常工作

软件测试分类

 按测试阶段划分 1.单元测试(模块测试)

定义:对程序的模块进行正确性检查的测试工作

模块:在软件设计当中最小的单位(java中的一个类,汽车上的车机蓝牙、收音机、空调) 单元测试要从程序的内部结构出发设计测试用例。

 2.集成测试

集成测试是在单元测试完成之后

每一个模块测试都没有问题了,可以将多个模块组合起来测试,就是集成测试

也叫组装测试,在单元测试的基础上,将所有模块进行有序的、递增的测试

 3.系统测试

集成测试完成之后就是系统测试

系统测试是指将整个软件看做一个系统来进行测试,测试的依据就是软件的需求说明书,检查我们的程序是否达到了软件需求说明书的要求。

举例:

1.单元测试 在百度的输入框中输入一些内容检查是否正常,是一个单元测试,点击一下搜索按钮,检查是否正常,也是一个单元测试

2.集成测试 就是在测试完输入框和按钮之后,先在输入框中输入内容,然后再点击搜索按钮查看是否正常,这就是一个集成测试

3.系统测试 比集成测试更复杂,就好比需要判断我们搜索的东西是否受法律或其他规则的限制,限制了怎么办,没有限制怎么办,这些点都是需要依据软件需求说明书为测试依据的。 软件需求说明书是由产品经理产出的,是产品经理对软件的要求我们测试就是检查程序是否达到了产品经理的要求

4.验收测试 检验软件是否符合用户的需求的测试

验收测试还分为几个小类

1.α测试(Alpha) 就是内测版本,一般是公司内部人员使用。 通常只在开发者内部交流 一般而言bug比较多,普通用户最好不要安装

2.β测试(Beta) 就是公测版本,对所有用户开放的测试版通常由软件公司免费发布,用户可以从相关的站点下载 beta版本还是会存在bug,但是不是几个测试人员测测就能测完的,只有让更多的人使用才能找到

3.γ测试(Gamma) 就是软件已经和正式版相差无几,已经达到了正式发行的候选版本,该版本已经相当成熟。

按照代码进行测试划分

白盒测试:把盒子(程序)打开,去研究里面的源代码和程序结构。

黑盒测试:又称为数据驱动测试,完全不考虑源代码和内部的程序结构。但是我们注重功能需求,我们只需要关心输入输出内容。

灰盒测试:介于黑盒和白盒之间的测试方式,指的是我们即关心程序输入输出结果,同时还关注程序的源代码和程序结构。

按照是否运行分类
  • 静态测试:指的是不实际运行程序,我们只是分析源代码、文档、界面是否存在bug

  • 动态测试:指的运行测试用例,输入测试数据,根据输入输出结果我们来检查程序是否有bug

按是否自动化进行测试
  • 人工测试:也叫手工测试,测试人员用手动去进行测试

  • 自动化测试:测试人员利用工具使计算机进行自动化测试

其他测试分类
  • 冒烟测试:对系统最基本功能进行测试

  • 回归测试:测试人员找到bug,提交测试报告。程序员修复bug-->测试针对这个bug进行重新测试。

  • 随机测试:其实对被测软件的一些重要功能进行【重复测试】,包括之前测试用例没有覆盖的内容

  • 探索性测试:测试人员有相当丰富的经验,测试思路清晰。针对被测软件大概率会出问题的地方进行重点测试。

kali-linux基础 Unix 不开源,收费。IOS MAC Linux 开源,免费。Redhat(红帽自己开发的一个linux分支,收费)

     Centos 和 Redhat 系统内核一模一样,但是免费。

     debian 分支 图形化桌面。

          Ubuntu 乌班图,桌面最常用的 *** 作系统。界面炫酷,支持的软件相对而言较多。

          backtrack(kali) 凯莉,黑客系统。开源 免费。黑客工具集合的系统。

linux介绍

/ 根,是linux *** 作系统当中最最上层的目录。

目录结构: / (根) root(目录)/(目录分割)abc(目录) /root/abc 说明 在根目录下有个目录叫做root,在root下面有个目录叫做abc

linux里面的文件扩展名只是方便程序员读懂而已,没有实际意义。

linux最重要的核心哲学思想,一切皆文件

常用命令

ls 查看当前目录下的所有内容

选项 (长选项 --单词 短选项 -字母)

-l 以列表的形式显示文件或目录的详细内容

-a 显示当前目录下所有的文件和目录包含隐藏文件,linux的隐藏文件,文件名前面有一个. 例如.bash_history

cd 命令

作用:切换工作目录,切换当前的工作文件夹。

格式:cd 目录名称

pwd 命令

作用:显示当前我所在的目录

mkdir命令

作用:创建目录,

格式:mkdir 【目录名称】

选项:-p 创建多级目录的时候使用

 man命令

作用:查看某个命令的帮助文档

格式:man 【命令名称】

cp命令

作用:复制黏贴命令

格式:cp【复制的内容】 【目标明确,重命名】

mv命令

作用:移动一个文件、目录 为文件重命名

格式:mv[移动的内容] 【目标明确】

rm命令

作用:删除一个文件或目录

格式:rm【需要删除的内容】

选项:-r和-f:-f是强制删除  , -r是删除目录及目录里面

tar 解压和压缩命令

格式:tar xf 【文件名称】

选项

xf 解压 tar xf 【压缩包名称】

cf 压缩 tar cf 【压缩包名称】 【需要压缩的内容】

ip ad命令和ifconfig

作用:查看本机网络配置信息

OSI参考模型

七层: 应用层

六层: 表示层

五层: 会话层

四层: 传输层

三层: 网络层 -->ip地址

二层: 数据链路层 --> arp协议

一层: 物理层 --> 网线 网卡

什么是IP地址?

计算机在网络当中的门牌号 例如:192.168.0.X/24

IP冲突

指的是在同一个网络当中,有个两个设备使用了同一个IP地址

IP的划分

十进制转换二进制 8 转换成二进制 --

二进制转换十进制

bit(位)代表一个二进制数字,8bit=1B(字节) 1024B= 1KB(千字节)

1024KB=1MB(兆字节) 1024MB=1GB(吉字节)1024GB=1TB

1024TB=1PB

互联网当中IP地址分为五类,IP地址是四段由3个点组成的,每一段代表1字节

192 .168 .0 .1

1100 0000.1010 1000. 0000 0000.0000 0001

A类地址,第一位0,所以我们A类地址范围是0100 0000-0111 1111=0-127

1-126是能用的地址,

1.X.X.X 126.X.X.X

B类地址是10开头,1000 0000-1011 1111。范围128-191

C类地址是110开头,1100 0000-1101 111,范围=192-223

D地 1110 224-239

E 1111 240-255

补充:特殊 127.0.0.1 这个地址是保留地址,只用作网卡本身,等同于付localhost。回环地址。

子网掩码

IP 1100 0000.1010 1000. 0000 0000.0000 0001

mask 1111 1111.1111 1100.0000 0000.0000 0000

网络位和主机位,在互联网当中,IP地址分为网络位和主机位。网络位代表是否为同一个网络,主机位代表可用的主机是多少个。

资深网工,192.168.1.1/124

MAC地址

IP 地址, mac地址 相互对应的。

arp表,arp协议主要作用解析IP地址和MAC地址的对应关系。

arp欺骗攻击

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/719155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存