1、软件=程序+公式
2、C/S,B/S,CS是客户端服务器端,这种软件是基于局域网或互联网的,需要我们有一台服务器来安装服务器端软件,每台客户端都需要安装客户端软件。BS是指浏览器端服务器端,这种同样是基于局域网或互联网的,它与CS结构软件的区别就在于不需要安装客户端,只要有浏览器就可以。
3、Bug泛指计算机硬件或者软件的错误。
4、测试用例=输入+输出+测试环境
输入包括测试数据和操作步骤;输出指的期望结果;测试环境值的就是系统环境设置。
5、测试生命周期:
测试计划--测试设计--测试执行--测试评估
6、黑盒测试
将被测软件看做一盒黑盒子,不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出数据。黑盒测试既包括功能测试也包括性能测试。
1)功能测试(function testing
)检查实际软件的功能是否满足用户的需要。包括:逻辑功能测试、界面测试、易用性测试、安装测试、兼容测试等。
逻辑功能测试(logic function testing):软件的逻辑功能。
界面测试(UI testing):美观得体的界面。
易用性测试(usability testing):指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。设计思想:对于产品的设计和环境的考虑应该是尽最大的可能面向所有的使用者,而不应该为一些特别的情况而做出迁就和特定的设计。
安装测试(Installation testing):广义上的安装测试包括安装和卸载。
兼容性测试
(
compatibility testing):包括硬件兼容性测试和软件兼容性测试,硬件兼容性主要是指软件运行的不同硬件平台的兼容性;
单机版的软件兼容:产品软件,对软件环境的测试;
BS软件兼容:服务器上的软件配置之间的兼容性。
2)性能测试(performance testing):时间性能和空间性能。
时间性能:主要是指软件的一个具体事务的相应时间(respond time)。
空间性能:主要是指软件运行时所消耗的系统资源。
软件性能测试一般分为:一般性能测试、稳定性测试、负载测试和压力测试。
一般性能测试:指是让被测系统正在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试:也称可靠性测试,是指连续运行被测系统,检查系统运行的稳定程度。
负载测试 :让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试:通常不断地给被测系统增加压力,直到被测系统压垮为止,用来测试系统所能承受的最大压力。
3)黑盒测试技术:等价类技术、边界值技术、因果图技术、业务流程图技术
等价类技术:有效等价类和无效等价类。
边界值技术:边界值技术并不是黑盒测试的专利,白盒测试中也有边界值的测试思想。
测试边界值时,一般测试边界值和正好超过边界值一个单位的值。
因果图法:输入输出较多的情况,但是太多的输入会大大增加用例的数目,不便维护。
流程图法:算法流程图是针对程序内部结构的,而黑盒测试中额流程图是针对整个系统业务功能流程的。
7、白盒测试
把盒子盖子打开,去研究里面的源代码和程序结构。
1)边界值测试:错误隐藏在角落,问题聚焦在边界。根据输入数据的范围来找到边界值,然后测试边界和正好超出边界值的数据。有数据类型的边界值、数组的边界值、分支判断语句的边界值。
2)逻辑驱动覆盖技术:包括分支结构的测试和循环结构的测试,分支结构测试又包括语句覆盖、分支覆盖、条件覆盖、分支条件覆盖、条件组合覆盖以及路径覆盖。
程序的结构主要分为三种:顺序结构、分支结构和循环结构。
i)语句覆盖测试:使得程序中的每条语句至少执行一次。
优点:可以很直观的从源码得到测试用例,无需细分每条判定表达式。
缺点:只针对程序逻辑中显示存在的语句,对于隐式逻辑分支是无法测试的,反映不全面。
ii)分支覆盖测试:也叫判定覆盖测试,是指设计若干用例,使得程序中每个分支的取真分支和取假分支只是各执行一次。
8、静态测试
不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。
9、单元测试、集成测试、系统测试和验收测试
1)单元测试:是指对软件中的最小可测试单元进行检查和验证。时间:程序员编码之后,代码已经通过编译后进行单元测试。谁:白盒测试工程师或者是开发人员自己来测试,开发人员测试最好做交叉测试。依据:《详细设计》文档。方法:主要用白盒测试方法。
2)集成测试:是指通过测试的单元模块组装成系统或者子系统再进行测试,重点测试不同模块的接口部分。时间:单元测试和集成测试同步进行。谁:白盒测试工程师或者开发人员;依据:单元测试的模块和《概要设计》文档。
3)系统测试:指是将整个软件系统看做一个整体进行测试,包括对功能性能以及软件运行的软硬件关键进行测试。谁:黑盒测试工程师在整个系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求。依据:《系统需求规格说明书》。
4)验收测试:是指在系统测试的后期,以用户测试为主,或者测试人员等质量保证人员共同参与的测试。
分为阿尔法测试:是有用户、测试人员、开发人员共同参与的内部测试;
贝塔测试是指内测后的公测,即完全交给最终用户测试。
10、回归测试、冒烟测试和随机测试,这三种方法既 不算测试阶段,也不算具体的测试方法。
回归测试:是指对软件的新的版本测试时,重复执行上一个版本测试时的用例;回归测试可以在任何测试阶段进行,既有黑盒测试的回归也有白盒测试的回归。
冒烟测试:是指在对一个新版本进行系统大规模的测试前,先验证一下软件基本功能是否实现,是否具备可测性。
随机测试:是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
11、SQA(software quality assurance)软件质量保障,为确保软件开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。
12、CMM就是SQA用来监督项目的一个标准质量模型,SQA按照CMM上面各种规则来检验各种各样的项目。
CMM,全称:capacity maturity model即“能力成熟度模型
”。
13、缺陷的二八定理:一般情况下,软件80%的缺陷集中在20%的模块中。