软件测试的目的和原则
定义:
用人工和自动化方式进行测试,目的是通过软件测试找到软件的预期执行效果和实际结果之间的偏差。
预期:知道或者希望(需求文档给出来的需求)实现的功能和效果
实际结果:软件测试得到的结果
目的:
用最少的人力、物力、财力。找到软件中的问题并让程序员修复,降低商业风险。
原则:
1、只能证明软件存在问题,不能证明不存在问题
这是一个辩证问题
只能找到或者没找到问题,但是不能说这个软件没有问题
因为找bug,每个人的思路和角度不一样。
2、不能进行穷尽(穷举) 测试,应该分类别测试
有些情况,我们不能完成全部测试,这时候我们需要进行分类。
分类:可以被搜索到的、不能被搜索到的、特殊情况
例如:手机、电脑、服装可以被搜索到
敏感词:K 枪 红房子 ,如果被搜到要么是有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、杀虫剂现象
如果让程序员自己测试,或者测试团队进行测试。我要进行交替测试工作。
个人/团队都会有固化思维
软件开发模型
软件开发模型,也叫软件的生命周期
软件测试与软件的开发模式有很紧密的关系,作为软件测试人员我们要对软件的开发模式有充分的理解
开发模型的介绍
在软件测试经过发展周期,开发模型大致分为三种
瀑布模型,快速原型、螺旋模型
瀑布模型特点
瀑布模型的优点
瀑布模型的缺点
快速原型模型
快速原型模型特点
快速原型模型优缺点
螺旋模型
软件测试模型
作用
第一种模型:V模型
V模型在前面瀑布模型的基础上,对测试的工作进行了更细致的划分
补充
优缺点
优点:
V模型既包含了底层测试又包含了高层测试
缺点:
总结
组成部分
优点
缺点
第二种模型:W模型也称为双V模型
验收测试设计:
W模型的优缺点
优点
缺点
因为是站在更高的角度看问题,所以对于测试技术要求高,实践起来比较困难
总结
绘制
开发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欺骗攻击