一、软件测试及环境的准备
软件测试和测试环境
软件测试及环境的准备
> 了解软件测试的含义
> 了解测试环境的含义
> 掌握软件的分类
> 掌握数制的含义及转换方法
软件测试及环境的准备工作
> 软件测试到底是什么呢?
○ 软件测试就是在现有的软件当中查找隐含的缺陷(Bugs)或错误的过程,目的就是发现软件当中的错误和缺陷
○ 使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。(1983, IEEE软件工程标准术语)
○ 思考
● 为什么测试
● 发现问题怎么办
● 怎么测试
缺陷产生的原因
> 技术问题
○ 算法错误、语法错误、计算和精度问题,接口参数传递不匹配
> 团队工作
○ 误解、沟通不充分
> 软件本身
○ 文档错误、用户使用场合(user scenar io)
○ 时间上不协调、或不一致性所带来的问题
○ 系统的自我恢复或数据的异地备份、灾难性恢复等问题
需求分析避免沟通带来的误解
不同阶段缺陷的分布
软件测试及环境的准备工作
> 发现的错误越多,软件质量是否就越好?
发现缺陷,如果不修复,并没有提高质量
软件测试只能发现存在的错误,并不能保证软件的质量,并不是发现的错误越多,软件质量越好;实际上正好相反,软件测试人员在软件当中发现的错误越多,往往证明软件的质量越差,隐藏的错误越多。
软件测试的任务,查找缺陷,发现缺陷,同时监督任务完成,监督缺陷修复
> 第一件事情就是搭建一个用来运行软件的测试环境。
> 测试环境就是运行软件必须具备的各种软件和硬件的集合。
> 一个软件测试人员,从拿到软件开始,需要做以下一系列的工作:
○ 搭建测试平台。
○ 学习软件的使用,了解用户需求。
○ 软件测试,发现问题。
○ 提交问题报告。
> 测试环境又是什么呢?
○ 测试环境就是运行软件必须具备的各种软件和硬件的集合
十年前拼的是技术和软件
十年后拼的是服务
搭建测试环境的知识结构
> 测试人员需要具备以下知识:
○ 硬件知识
○ 软件知识
○ 网络知识
硬件会给软件带来很大的影响,所以需要了解硬件
二、软件的分类
按软件功能用途分类
> 软件的定义
○ 计算机软件(Computer Software) 是指计算机系统中的程序、数据及其文档。程序是计算任务的处理对象和处理规则的描述,是由一系列程序组成,能够实现某个或某些功能的程序集合。程序是由程序员开发的实现简单功能的命令或指令组合;文档是为了便于了解程序所需的阐明性资料。程序必须装入机器内部才能工作。
○ 软件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件是计算机系统设计的重要依据。
软件和程序是两个概念
软件 = 程序 + 数据 + 文档
所以软件测试要同时测试程序、数据和文档
比如查看C盘,打开计算机,双击,这个就是软件把用户和硬件之间带来的接口
> 系统软件
○ 操作系统、语言处理程序、高级语言系统和各种服务性程序
> 支持软件
○ 图形用户界面(GUI) 、软件开发工具、软件评测工具、数据库管理系统
○ 这类软件的主要用途分为两种,一种是用来对操作系统进行控制的,一种是用来开发应用软件的。
> 应用软件
○ 科学和工程计算软件、文字和数据处理软件、图形图像处理软件、事务管理软件、游戏娱乐软件
计算机的操作系统,驱动程序等,都属于系统软件
支持软件,为计算机带来更多的功能
比如 Python Java 就是开发软件,属于支持软件
用户的60% 来自于应用软件
按软件使用范围分类
> 单机版软件
○ 金山词霸
○ 主要功能不需要网络连接
> 分布式软件
○ 分布式软件,顾名思义,也就是要安装在多台计算机上进行协同工作的软件。在这类软件当中我们还会分为需要特殊客户端的C/S(客户端/服务器)结构,和不需要特殊客户端,只要是浏览器就可以使用的B/S(浏览器/服务器)结构。
QQ就是 CS 结构
通过浏览器用到的都是 BS 结构,比如 QQ 网页版,BS 结构占比约 60%,因为没有地域和环境的限制
分布式软件
> C/S(Client Server, 客户端/服务器) 结构
○ 服务器负责处理大部分任务
○ 专用客户端处理一部分任务
○ 速度比较快,因此优先考虑客户端的性能
○ 网络游戏(魔兽世界、即时通信QQ)
> B/S(Browser/Server, 浏览器/服务器) 结构
○ 服务器负责处理绝大多数任务
○ 客户端是浏览器,基本或很少处理任务,主要负责显示相应的内容
○ 优先考虑的是响应时间
○ 网上支付平台
优先考虑响应时间,所以涉及性能问题
C/S结构与B/S结构比较
BS客户端不处理任何任务,所以服务端必须强大
CS结构,客户端会帮助解决一些问题
BS网络要求较高,因为服务器处理一切事情,都需要通过网络传输解决
CS客户机要处理约20%的业务,所以配置要求较高
三、冯诺依曼体系
冯·诺依曼体系
>ENIAC
● 第一台电子计算机叫ENIAC(中文名:埃尼阿克) (电子数字积分计算机的简称, 英文全称为Electronic Numerical Integrator And Computer) , 事实上它是世界上第一台电子多用途计算机,它于1946年2月14日在美国宣告诞生。承担开发任务的“莫尔小组”由四位科学家和工程师埃克特、莫克利、戈尔斯坦、博克斯组成,总工程师埃克特在当时年仅24岁。
冯·诺依曼计算机体系结构
> 匈牙利科学家冯·诺依曼(John von Neumann,1903-1957)
○ 计算机内怎么存储数据及代码
● 用二进制存储数据和代码;计算机当中使用开关来分别代表1和0,因此二进制最适合在电子设备当中使用。
○ 计算机内的数据和代码在计算机内存储的时候是否一样
● 数据和代码全部存储在计算机当中,二者没有区别;在程序的运行过程当中,由程序本身判断下一个数据存放在什么地方,由程序来决定下一个二进制是表示代码还是数据。
○ 计算机的内存采用什么样的方式寻址
● 计算机的内存采用线性的一维方式寻址,这样可以避免计算机在数据的存储和检索上浪费太多的时间。
> 对目前计算机的发展有阻碍作用
○ 无法避免病毒
○ 哈佛结构
哈佛结构将指令存储和数据存储分开存储,这样指令和数据就可以很好的分别出来,并提高执行效率
这就是哈佛结构和冯诺依曼结构最大的区别
四、数制转换
计算机——二进制
人类——十进制
6F——十六进制
思考
> 如果5*7=23,请问4*6=?
答案:18
原因:5*7是按16进制运算的
数制与二进制
> 数制
○ 数制是用一组固定数字和一套统一规则来表示数目的方法,一般可分为进位记数制和非进位记数制。
● 非进位记数制是指表示数值大小的数码与它在数中所处的位置无关。这种数制现在很少用。
● 进位记数制是指按指定进位方式记数的数制,也就是说表示数值大小的数码与它在数中所处的位置有关,简称进位制。在计算机中,使用较多的是二进制、十进制、八进制和十六进制。
● 十进制
非进位记数制,比如门牌号 1405,数字的位数和位置是无关的,只是一种编码形式