软件:控制计算机硬件工作的工具。
软件基本组成页面客户端——代码服务器——数据服务器
软件产生过程 需求产生——需求文档——设计效果图——产品开发——产品测试——部署上线 什么是软件测试使用技术手段验证软件是否满足使用需求 ;
定义:用人工和自动化方式进行测试,目的是通过软件测试找到软件的预期执行效果和实际结果之间的偏差。
软件测试的目的用最少的人力、物力、财力,找到软件中的问题并让程序员修复,降低商业风险。
(减少软件缺陷(bug),保障软件质量!)
软件测试的原则1、只能证明软件存在问题,不能证明不存在问题
这是一个辩证问题 只能找到或者没找到问题,但是不能说这个软件是没有问题的 因为找bug,每个人的思路和角度不一样。
2、不能进行穷尽(穷举) 测试,应该分类别测试
有些情况,我们不能完成全部测试,这时候我们需要进行分类。 分类:可以被搜索到的、不能被搜索到的、特殊情况 例如:手机、电脑、服装可以被搜索到 K 枪 红房子 ,如果被搜到要么是有bug,要么搜索引擎出问题。 特殊情况,在搜索的时候,加进去很多特殊的符号或者数字,测试能否被处理掉,如果没有处理掉就证明有 BUG。
3、测试工作要尽早的开展,降低修复成本(需求--UI、开发、测试)
测试工作介入越早,软件修复成本越低 说明文档是产品经理整理的,然后交给开发。如果开发到了后半阶段,发现需求文档有问题,这个时候我们必 须推到重来。 对文档的测试,1、有前车之鉴 2、研究可行性报告
4、软件缺陷存在集群现象,二八原则,20%模块存在80%的缺陷
例如一个APP或者一个网页有6个页面或者三大功能,其中一个功能是复杂,而且开发这个功能的程序员如果 技术一般,那么在最后验收bug的时候,会发现100个bug,其中这个地方就会有80个 所以说我们要将最大的精力,或者人员匹配度,放在最复杂的功能上。
5、测试依赖系统或环境(系统OS,浏览器)
我们测试项目无非两种B/S,C/S 如果测试的是C/S,测试手机端我们要准备手机(安卓/IOS),如果是PC端,我们要准备WIN7 WIN8 10 mac linux类桌面系统。 B/S 准备浏览器,IE 谷歌 火狐
测试主流技能1 功能测试: 功能测试主要验证程序的功能是否满足需求
2 自动化测试: 使用代码或工具代替手工,对项目进行测试.
3 接口测试: 使用代码或工具对服务端提供的接口进行测试.是否正常访问
[代码实现] [工具实现]
性能测试:工具实现 代码实现 : 模拟多人使用软件,查找服务器缺陷
常见测试分类 一、按测试阶段划分1、单元测试 针对程序代码进行测试
定义:对程序的模块进行正确性检查的测试工作
模块:在软件设计当中最小的单位(java中的一个类,汽车上的车机蓝牙、收音机、空调) 单元测试要从程序的内部结构出发设计测试用例。
2、集成测试 集成测试是在单元测试完成之后
也就是每一个模块测试都没有问题了,就可以将多个模块组合起来测试,这就是集成测试 集成测试也叫组装测试,在单元测试的基础上,将所有模块进行有序的、递增的测试
3、系统测试 集成测试完成之后就是系统测试
系统测试是指将整个软件看做一个系统来进行测试,测试的依据就是软件的需求说明书,检查我们的程序是否达到了 软件需求说明书的要求
4、验收测试 检验软件是否符合用户的需求的测试
验收测试还分为几个小类
1.α测试(Alpha) 就是内测版本,一般是公司内部人员使用。 通常只在开发者内部交流 一般而言bug比较多,普通用户最好不要安装
2.β测试(Beta) 就是公测版本,对所有用户开放的测试版本 这一版通常由软件公司免费发布,用户可以从相关的站点下载 beta版本还是会存在bug,但是不是几个测试人员测测就能测完的,只有让更多的人使用才能找到
3.γ测试(Gamma) 就是软件已经和正式版相差无几,已经达到了正式发行的候选版本,该版本已经相当成熟。
二、按代码可见度划分1、黑盒测试 (源代码不可见 UI功能可见)不关注源代码,针对程序UI功能进行测试。
2、灰盒测试 (部分源代码可见 功能不可见)针对程序部分代码进行测试(接口)
3、白盒测试 (全部代码可见 UI功能不可见)针对程序源代码进行测试
三、其他性能测试:归属专项测试
自动化测试:归属功能测试



