一、基础
1、软件=程序+文档,软件测试=程序测试+文档测试。
“程序”是指能够实现某种功能的指令的集合,“文档”是指软件在开发、使用和维护过程中产生的图文集合。;
2、软件的分类
按功能分:系统软件、应用软件
按技术架构分:单机版软件、C/S结构软件(C是指客户端, S指服务器端)、B/S结构软件(B是指浏览器)
按照用户划分:产品软件、项目软件
按开发规模划分:小型、中型、大型
3、BUG的定义:软件的BUG指的是软件中(包括程序和文档)不符合用户需求的问题。常见的软件BUG分三种类型:完全没有实现的功能;基本实现了用户需求的功能;实现了用户不需要的功能。
4、测试环境=软件+网络+硬件。搭建环境:真实、干净、无毒、独立
5、软件环境的分类:软件开发环境\软件生产运行环境
6、测试用例:指在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和与其结果!测试用例=输入+输出+测试环境。测试用例有两个模板,word和excel,前者适合性能测试,后者适合功能测试。
二、测试技术
黑盒测试
黑盒测试:
把被测的软件看作是一个黑盒子,不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果
黑盒测试技术
- 等价类技术;
- 边界值技术;
- 因果图法;
- 流程图法;
- 错误推测
【例题】 1、学生的英语成绩为1到100的正整数,若按边界值法,则测试用例为: 答:0,1,2,99,100,101
2、加法器程序中有两个加数,范围都是1到100之间,则每个加数有()个有效等价类 答:1
白盒测试
程序的设计对于测试人员是可见的,主要是针对于程序的逻辑结构进行测试,主要的逻辑单位包括有:语句、条件、条件组合、分支、路径。
主要的测试方法:
- 代码检测法;
- 静态结构分析法;
- 静态质量度量法;
- 逻辑覆盖法(条件覆盖、判定覆盖);
- 路径覆盖法
【例题】 1、 解答:输入数据11,预期结果12;输入数据5,预期结果7
静态测试
指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程 包括:(1)代码审查;(2)静态结构分析;(3)代码质量度量等
(1)一般先于动态测试来执行; (2)测试网页页面的布局属于静态测试; (3)是不执行软件的测试; (4)测试网页的超级链接不属于静态测试
动态测试
指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序
三、测试流程
单元测试–>集成测试–>系统测试–>验收测试(系统测试后期
单元测试
主要有5个方面:
模块接口、局部数据结构、边界条件、独立的路径和错误处理
测试步骤:静态测试–>编译运行–>动态测试 辅助测试模块:(1)驱动模块:(2)桩模块
集成测试
单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。
测试的方案大致可分为三种:自顶而下、由底向上、从两头逼近的混合模式
【例题】 1、(判断题)集成测试中,增量模式效率比非增量模式高。(√)
系统测试
指的是将整个软件系统看作1个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
【例题】 1、(判断题)系统测试的入口标准就是集成测试的出口标准,因此要做好集成测试。(×)
验收测试
指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序.
验收测试又分为α测试和β测试,其实α测试指的是由用户、测试人员、开发人员等共同参与的内部测试,而β测试指的是内侧后的公测,即完全交给最终用户测试。
【注意】 验收测试是测试中有用户参与的测试,是软件发布前的最后一道工序
功能测试
是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。功能测试又可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。
性能测试
对程序性能进行检测,包括程序的健壮性,稳定性,正确性等,主要的性能测试包括负载测试、压力测试、稳定性测试等。
分为:
一般性能测试、稳定性测试、负载测试和压力测试
回归测试
对软件的新的版本测试时,重复执行上一个版本测试时的用例
冒烟测试
指在对一个新版本进行西戎大规模的测试之前,先验证一下软件的基本功能是否可以实现,是否具备可测性
随机测试
是指测试中所有的输入数据都是都是随机生成的,其目的是模拟用户的真是操作,并发现一些边缘的错误。
四、测试相关
测试工具
静态测试工具: Logiscope、PRQA、coverity、Klocwork、C++test 功能管理工具: QTP winrunner、SilkTest、Rational robot、selenium、watir、Sikuli 性能测试工具: LoadRunner、Silkperformer、Jmeter、WebLoad、Apache Bench、LoadUI 性能管理工具:APM 常见的BUG管理工具: TD、Track Record、Clearquest、Bugzilla、Mantis、JIRA
MI: MI loadrunner:性能测试,MI winrunner:功能测试,MI testdirector:测试管理工具,MI QTP:功能测试工具
测试原则
(1)缺陷的二八定理,缺陷的集群现象或是虫子窝现象 (2)穷举测试是不可能的 (3)缺陷具有免疫性 (4)测试应基于客户需求 (5)测试要尽早进行 (6)遵循GoodEnough原则,即不追求zero bug,只要软件达到一定的质量要求,就可以停止测试了 【例题】 1、(判断题)缺陷必须尽快修复。(×) 2、(判断题)测试中被发现出错的模块以后还有可能会经常出错。(√)
五、缺陷管理
BUG的分类
Bug严重级别(Severity,Bug级别)
指因缺陷引起的故障对软件产品的影响程度。由测试人员指定。 A 错误导致了死机、产品失败(“崩溃”)、系统悬挂无法操作; B 功能未实现或导致一个特性不能运行并且不可能有替代方案(包括计算错误); C 错误导致了一个特性不能运行但可有一个替代方案; D 错误是表面化或微小的(提示信息不太准确友好、错别字、UI布局或罕见故障等),对功能几乎没有影响,产品及属性仍可使用; E 建设性的意见或建议。
Bug优先级(Priority)
指缺陷必须被修复的紧急程度。由Bug分配者(开发组长/经理)指定。 5 阻止相关开发人员的进一步开发活动,立即进行修复工作;阻止与此密切相关功能的进一步测试 4 必须修改,发版前必须修正 3 必须修改,不一定马上修改,但需确定在某个特定里程碑结束前须修正 2 如果时间允许应该修改 1 允许不修改
缺陷类型(Type)
根据缺陷的自然属性划分的缺陷种类。 Build: 由于配置库、变更管理或版本控制引起的错误; Data: 数据、数据库、计算错误等; Function: 影响了重要的特性、产品接口、硬件结构接口和全局数据结构。如逻辑,指针,循环,递归,功能等缺陷; Interface: 与其他组件、模块或设备驱动程序、调用参数、控制块或参数列表相互影响的接口缺陷; Performance: 不满足系统可测量的属性值,如:执行时间,事务处理速率等。 Requirement: 需求方面缺陷如(不明确、错误、考虑不全面等等); User Interface(UI) 人机交互特性:屏幕格式,页面排版、控件位置等方面的缺陷; 其它: 未知错误
Bug状态(Status)
指缺陷通过一个跟踪修复过程的进展情况。 包括:Open、Fixed、Closed及Postponed等
Open 为测试人员新问题提交所标志的状态。为任务分配人(开发组长/经理)对该问题准备进行修改并对该问题分配修改人员所标志的状态。Bug解决中的状态,由任务分配人改变。对没有进入此状态的Bug,程序员不用管。 Fixed 为开发人员修改问题后所标志的状态,修改后还未测试。 Closed 为测试人员对修改问题进行验证后通过所标志的状态。由测试人员改变。 Postponed 1、由于开发时间、进度、重要程度或者技术/设计/需求等方面的原因,认为不能解决、须延期解决、或者本版不做留待到后续版本解决的Bug; 2、因设计结构问题无法修改。测试人员认为是Bug,不符合逻辑,也不符合用户的要求,但开发人员则认为是按照设计做的、只能如此处理,否则修改代价太大,这种问题可以拖后处理
duplicated:bug重复提交 Not error:测试员理解错,不是bug,测试员提错了
知识点
1、软件缺陷最大的来源是 需求; 2、缺陷在 实现 阶段被发现的修复代价最高; 3、用户对于软件的界面不满意也是缺陷。
六、测试设计和开发
测试周期:计划–>测试设计–>测试执行–>测试评估
【例题】 1、一个程序的控制流图中,有12条边和9个节点,则该程序的圈复杂度是()。 答:5(边数-节点数+2=12-9+2=5) 2、(判断题)如果测试后,实际结果与预期结果不符,那软件一定出错了。(×) 3、
|