软件测试定义
通过手工或者工具对“被测对象”进行测试操作,从而验证实际与预期结果之间是否存在差异
作用
* 可以发现并修复软件存在的缺陷,从而提高用户的使用信心
* 可以记录软件运行过程中产生的一些数据,从而为决策提供数据支持
* 可以降低同类型产品开发遇到问题的风险
测试原则
1:测试证明软件存在缺陷(无论执行什么样的测试操作都要证明当前软件是有缺陷的)
2:不能执行穷尽测试(有些功能是没有办法将所有的测试情况都罗列出来,所以任何的测试操作都有结束的时间)
3:缺陷存在群集现象(对于软件功能说,核心功能20%,非核心是80%,在实际工作中我们会集中测试20%的核心功能,所以这个部分发现缺陷的几率就会高于80%,因此我们遇到的缺陷都集中在20%功能里)
4:某些测试需要依赖特殊的环境
5:测试应尽早介入(为了更多的发现和更多的解决软件中的缺陷,我们追求测试工作中尽早的开展)
6:杀虫剂现象(同样的一个测试用例不能重复执行多次,因为软件会对它产生免疫)、
7:不存在缺陷谬论(没有完美的软件)
测试对象介绍
分为三个部分:功能测试,使用说明书,配置数据
测试需要分阶段来完成
1:需求分析阶段(各种需求规格说明书)
2:软件架构设计(API接口文档,{接口测试})
3:编码实现阶段(源代码{白盒测试,单元测试})
4:系统功能使用(软件功能主题{当前行业做的最多的一种测试})
测试级别
软件开发都会依据相应的开发模型,则测试级别指的就是在这个模型当中我们人为定义的开发步骤,其中对于测试来说我们最常见的一种级别分类如下
1:单元测试(UT unit test):在测试中单元指的是组成软件最小的底层代码结构, 一般就是类、函数、插件(当下测试行业,不会刻意要求测试人员对源代码进行测试)
2:集成测试(IT system integration test)将多个单元模块组合在一起,然后验证tm之间沟通的“桥梁”是否正常工作(接口测试)
3:系统测试(ST system test)这是当前行业做的最多的一种测试,由测试人员充当用户然后对软件的功能主题进行测试
4:验收测试
01 a测试-----内测 自己公司内部人员使用,测试
02 β测试-----外测 给指定外部的用户使用,测试
03 UAT(user acceptance test)测试---由客户派出的对业务非常精通的人员来使用该软件,进行测试
04 验收测试的核心就是让用户为当前软件“买单”
系统测试分类
1.功能测试:验证当前的软件主体功能是否可用
2.兼容性测试:验证当前软件在不同的环境下是否还可以使用
3.安全测试:严重软件是否只能授权用户之后提供功能使用
4.性能测试:相当于当前软件消耗的资源它的产出能力
常见测试方法
一、按测试对象进行分类
1:白盒测试--测试的主体是源代码,不会在意外在的界面是否OK,只要求底层功能实现,同时逻辑正确
2:黑盒测试--是指测试软件外在主体功能是否可用,例如最小化,关闭
3:灰盒测试--介于二者之间(接口测试)
4:上述三种方法当中的“盒”指的是被测对象
注:黑盒测试分类:
一:功能测试:逻辑功能测试;界面测试;易用性测试;安装测试;兼容性测试
二:性能测试:时间性能;空间性能;一般性能;稳定性;负载测试;压力测试
二、按测试对象是否执行分类
1:静态测试--指的就是测试不执行
2:动态测试--将软件运行在真实的使用环境中进行测试
三、按测试手段进行分类
1:手工测试--由测试人员手动的对被测对象进行测试,优点就是可以灵活的改变测试操作及环境
2:自动化测试--所谓自动化主要有二种形,一种是自己写测试脚本,另一种是通过第三方工具进行测试,优点就是可以高效率的去执行一些人工无法实现的操作
四:随机测试
针对重要功能,新增加的功能、特殊情况、以前发现过的重大bug的模块进行二次测试
软件质量
描述当前软件是否好用,这套标准是基于ISO组织制定的
1-功能性
2-易用性
3-可靠性
4-效率性
5-可维护性--要求软件具有将某个功能修复之后继续使用的能力
6-可移植性
口诀{功能靠用,效率可“以”}
测试流程
一 需求分析
1:当前阶段的核心目的就是梳理清楚我们需要设计的点是什么
2:需求的来源:需求规格说明书,API文档,竞品分析,个人分析
二 设计用例
1:用例就是用户为了测试软件的某个功能而执行的操作过程
2:设计用例是有方法的{等价类,边界值,制定表...}
三 评审用例
对当前的用例添加或者删除
四 配置环境
1:环境--指的就是当前被测对象运行所需要的执行换件,作为测试人员需要具备此能力{一般情况下都会使用一键安装的集成环境}
2:环境分类--操作系统+服务器软件+数据库+软件底层代码的执行环境
五 执行用例
1:一般在执行用例之前我们会做一个冒烟测试,这种测试的核心就是快速的对当前软件的核心功能或者主体执行流程进行验证。如果这种测试阶段有问题,可以将版本退回给开发
2:冒烟测试通过那么才可以开展全面的测试
六 回归测试及缺陷跟踪
1:回归就是指开发改好我们提交的某个去缺陷之后要再次对其测试
2:跟踪是指要一直对其进行状态的跟踪
七 输出测试报告
将当前的测试过程中产生的数据进行可视化的输出,方便他人查看
八 测试结束
将测试过程中产生的一些文档进行整理归档,方便后续版本使用
软件架构
架构可以理解为用来指导软件开发的一种思想,目前最常见的两种架构模式是B/S C/S
B---browser浏览器
C---clent客户端
S---server服务端
两种架构的比较
1 标准:相对于cs架构来说,bs架构的二端都是在使用现成的成熟产品,所以bs会显示的标准一些
2 效率:相对于bs架构来说,cs中的客户端就可以分担一些数据的处理,因此执行效率会高一些
3 安全:bs架构当中的数据传输都是以HTTP协议又是明文输出,可以抓包,所以相对于cs来说,bs就相对的不那么安全
4 升级:bs只需要在服务器端将数据更新,前台只需要刷新页面就可以完成升级,而cs需要将二端都进行更新
5 开发成本:相对于bs来说,cs当中的客户端需要自己开发,所以相对于来说成本会高一些
浏览器基本介绍
五大浏览器厂商
标红是该浏览器的核心功能
1 IE(微软)---trident
2 Chrome(谷歌)---blink
3 Firefox(火狐)---gecko
4 safari(苹果)---webkit
5 Opera(欧朋)---presto{现在已经放弃自己的东西完全向谷歌看齐}