1,软件测试的目的和原则是为了找到软件/网站存在的问题,并且通过提前找到软件的问题,可以降低商业风险
2,软件测试的定义是通过人工或者自动化的方式对软件系统进行测试,通过测试找到预期结果和实际结果的差异
3,软件测试的基本原则是 1;所有的软件都是有问题的,不能证明不存在。 2,不能进行穷举测试,应该进行分类测试。3,测试工作应该尽早介入,可以降低修复成本。4,缺陷聚集原则,二八法则。5,依赖测试环境
程序的架构:
B/S C/S
B/S
架构:
Broswer/Server
,通过浏览器访问服务
C/S
架构:
Client/Server
,通过客户端程序访问服务
测试
B/S
架构准备三款浏览器:谷歌、火狐、
IE
【苹果、欧鹏、
QQ
、
360
、搜狗】
测试
C/S架构准备:
6,杀虫剂现象,
测试人员在经过一段时间后会进入自己的固有的思维意识,很难在测试出其他的
bug
,这个时候可
以进行交叉测试,就是交互测试人员。
7,不存在缺陷谬论
软件开发模型
软件的生命周期就是软件开发模型
软件测试与软件的开发者模式有着紧密的联系,作为一个测试人员。应该充分理解软件的开发模式,以便找准自己在其中的位置,从而发挥自身的价值。
在软件开发的几十年的实践中,人们总结了很多软件开发模型用来描述和表示一个复杂的开发过程,软件开发有三种模式:
瀑布模型
快速原型模型
螺旋模型
瀑布模型
首先对项目进行可行性的研究,通过可行性的研究可以判断这个项目是否挣钱
调研完成后会得到一个可行性调研报告。
这个工作是有项目负责人来完成
2.
需求分析:
调研判断项目没问题以后,就可以进行需求分析。
这个工作是又项目经理完成。
最终会得到一个需求规格说明书。规格书中仅仅是需求大体说明。
第二个阶段:项目开发阶段
1.
概要设计:
就是将需求规格书中的内容落地。
概要设计完成后,会得概要设计文档。
这个是由经验丰富的前端和的后端程序员。
概要设计文档中会将整个项目分成若干个功能模块,而且会明确说明每个模块中的功能。
2.
详细设计:
在详细设计中,明确指定了模块具体实现的细节。
整个工作由一线程序员来完成。
最终会得到一个详细 设计文档。
3.
编码:
其实就是程序员写代码。
4.
软件测试:
测试软件是否可以正常运行,是否达到了预期效果,最终会得到测试报告。
第三个阶段:项目运维阶段
1.
上线,用才能访问
瀑布模型的特点
是以文档驱动,后面所有的工作都是基于前面的文档的内容。
每个阶段执行一次,而且是线性依次进行的
开发模式中,瀑布模型是非常重要的一种
瀑布模型的优点
各个阶段非常清晰
每个人只需要关注自己的阶段
瀑布模型的缺点
下面的阶段是依赖上面阶段的分析结果的,一旦上面出现错误,那么下面全部都错了
整个流程过分依赖需求分析结果,这种模式不能适应变化频繁的项目
这种模式设传统项目和行业:银行、保险、建筑
快速原型模型
一个项目在很短的时间就有个版本上线,这个版本功能不全而且有bug。在后续版本中陆续修复bug,并逐渐完善功能。
特点:
快速上线
支持用户参与
优点:
克服了瀑布模型的缺点,减少中间环境,可以及早发现问题并进行修复
缺点:
仅仅适合中小型项目,不适合大型项目。
测试模型:所谓的模型就是这个行业的人总结出来的测试经验。
第一种:
V
模型
这种模型其实就是在前面瀑布模型的基础上进行测试的
这种模型其实也是瀑布模型的变种
根据测试阶段不同,测试也同样分成四个不同的阶段
V
型的流程
用户需求
=>
需求分析
=>
概要设计
=>
详细设计
=>
编码
=>
单元测试
=>
集成测试
=>
系统测试
=>
验收测试
优点:
整个流程比较清晰,即包含了底层测试,也包含了对高层进行测试
缺点:
这个本质上还是瀑布模型,因此具有瀑布模型的缺点
第二种:
W(
双
V)
模型
这种模式主要是为了解决
V
型模型存在的问题,解决思路就是测试前移
W
型比
V
型多的部分
集成:每个程序员将自己负责的功能模块合并到一起
实施:将 开发好的软件安装到客户的服务器上
交付:教给用户如何使用软件
静态和动态测试
W
模型中,对各种的文档进行测试,都是静态测试
对程序进行测试,就是动态测试
总结:
W
模型中的流程
开发
V
:用户需求
=>
需求分析
=>
概要设计
=>
详细设计
=>
编码
=>
集成
=>
实施
=>
交付
测试
V
:验收测试设计
=>
系统测试设计
=>
集成测试设计
=>
单元测试设计
=>
单元测试
=>
集成测试
=>