软件功能测试
第一章:软件测试概念和理论
1.1 测试的目的和原则
软件测试测目的
测试的目的是为了找到软件 / 网站存在的问题( bug 、用户体验不好、界面丑陋、功能是否全面)
通过提前找到软件存在问题,可以降低商业风险【省钱】
软件测试的定义
软件测试就是用人工或者自动化对软件系统进行测试,通过测试需要找到预期结果和实际结果的差
异
预期结果:在测试之前我们就知道的结果 / 希望出现的结果
实际结果:测试之后得到的实际结果
软件测试基本原则
1 )所有软件只能证明存在问题,不能证明不存在
辨证
所有的软件的都是有问题的,只是这些问题是否已经发现了
2 )不能进行穷举测试,应该进行分类测试
穷举:将所有的可能都测试一遍
分类测试
可以被正常搜索的:也就是可以正常显示的哪些,比如男装
不能正常搜索的:也就是哪些不应该被显示的对象,比如各种违禁品
特殊情况:带有特殊符号、空格、什么都不输入,
3 )测试工作应该尽早介入,可以降低修复成本
及早发现问题,及早解决
4 )缺陷聚集原则,二八法则
一个项目中 80% 缺陷会集中中 20% 的功能模块中
越是有问题的地方,这里往往会有其他的问题
出现这个现象的原有
复杂这个模块的程序员技术水平一般
模块功能功能复杂
5 )测试依赖环境
程序的架构: B/S C/S
B/S 架构: Broswer/Server ,通过浏览器访问服务
C/S 架构: Client/Server ,通过客户端程序访问服务
测试 B/S 架构准备三款浏览器:谷歌、火狐、 IE 【苹果、欧鹏、 QQ 、 360 、搜狗】
测试 C/S 架构准备: PC : win7 、 8 、 10 , mac , linux
手机:安卓、苹果、鸿蒙
6 )杀虫剂现象
测试人员在经过一段时间后会进入自己的固有的思维意识,很难在测试出其他的 bug ,这个时候可
以进行交叉测试,就是交互测试人员。
7 )不存在缺陷谬论
同第一条重复的
1.2 软件开发模型
1.2.1 简介
软件的生命周期:软件开发模型
软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,以便
找准自己在其中的位置,从而发挥自身的价值
在软件开发的几十年实践中,人们总结了很多软件开发模型用来描述和表示一个复杂的开发过程,软件
开发有三种模式:
瀑布模型
快速原型模型
螺旋模型
1.2.2 三种模型
瀑布模型
第一个阶段:项目立项阶段
1. 调研: 首先对项目进行可行性的研究,通过可行性的研究可以判断这个项目是否挣钱
调研完成后会得到一个可行性调研报告。
这个工作是有项目负责人来完成
2. 需求分析:
调研判断项目没问题以后,就可以进行需求分析。
这个工作是又项目经理完成。
最终会得到一个需求规格说明书。规格书中仅仅是需求大体说明。
第二个阶段:项目开发阶段
1. 概要设计:
就是将需求规格书中的内容落地。
概要设计完成后,会得概要设计文档。
这个是由经验丰富的前端和的后端程序员。
概要设计文档中会将整个项目分成若干个功能模块,而且会明确说明每个模块中的功能。
2. 详细设计:
在详细设计中,明确指定了模块具体实现的细节。
整个工作由一线程序员来完成。
最终会得到一个详细 设计文档。
3. 编码:
其实就是程序员写代码。
这个是由程序员完成的。
最终得到的是代码
4. 软件测试:
测试软件是否可以正常运行,是否达到了预期的功能。
这个是由测试工程师来完成。
最终会得到测试报告。
第三个阶段:项目运维阶段
1. 上线,用才能访问
瀑布模型的特点
是以文档驱动,后面所有的工作都是基于前面的文档的内容。
每个阶段执行一次,而且是线性依次进行的
开发模式中,瀑布模型是非常重要的一种
瀑布模型的优点
各个阶段非常清晰
每个人只需要关注自己的阶段
瀑布模型的缺点
下面的阶段是依赖上面阶段的分析结果的,一旦上面出现错误,那么下面全部都错了
整个流程过分依赖需求分析结果,这种模式不能适应变化频繁的项目
这种模式设传统项目和行业:银行、保险、建筑
快速原型模型
一个项目在很短时间能,就有一个版本上线了,这个版本往往功能不全,而且有 bug
在后续的版本中陆续修复 bug ,并添加完善功能 特点:
快速上线
支持用户参与
优点:
克服了瀑布模型的缺点,减少中间环境,可以及早发现问题并进行修复
缺点:
仅仅适合中小型项目,不适合大型项目
螺旋模型【不做要求】
1.3 软件测试模型
测试模型:所谓的模型就是这个行业的人总结出来的测试经验。
第一种: