软件测试常识
测试三阶段:
α、β、λ常用来表示软件测试过程中的三个阶段,α是第一阶段,一般只供内部测试使用;
β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和,
一般只提供给特定的用户群来测试使用;λ是第三个阶段,此时产品已经相当成熟,
只需在个别地方再做进一步的优化处理即可上市发行。 Beta测试是一种验收测试。
所谓验收测试是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动,
它是技术测试的最后一个阶段,通过了验收测试,产品就会进入发布阶段。
验收测试一般根据产品规格说明书严格检查产品,逐行逐字地对照说明书上对软件产品所做出的各方面要求,
确保所开发的软件产品符合用户的各项要求。 通过综合测试之后,软件已完全组装起来,接口方面的错误也已排除,
软件测试的最后一步——验收测试即可开始。验收测试应检查软件能否按合同要求进行工作,
即是否满足软件需求说明书中的确认标准。 Beta测试由软件的最终用户们在一个或多个客房场所进行。
与Alpha测试不同,开发者通常不在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。
用户Beta测试过程中遇到的一切问题(真实在或想像的),并且定期把这些问题报告给开发者。
接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。
静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。
人工测试技术主要包含三种静态测试技术,分别是走查、审查和正式评审。
白盒测试关心的是内部代码,依据是设计文档。黑盒测试只关心输入输出,依据的是需求文档。
白盒测试分为:
1.语句覆盖:可执行语句至少被执行一次;
2.判断覆盖:每个判断的取真分支和取假分支至少经历一次;
3.条件覆盖:每个条件的取值至少满足一次;
4.判断条件覆盖:判断和条件都满足;
5.条件组合覆盖:每个条件的所有可能都至少出现一次,并且判定结果至少出现一次 ;
他与条件覆盖的区别:他不是简单要求每个条件出现“真”和“假”两种结果,而是要求这些结果所有可能至少出现一次;
6.路径测试:执行所有可能的执行路径;
7.基本路径测试:路径测试执行了每个路径,每个判定的结果肯定经历过一次
黑盒测试,又叫功能测试,是将测试对象看做一个不能打开的黑盒子,在不考虑内部逻辑结构和特性的情况下,
验证程序功能是否符合需求规格说明书。黑盒测试,其实就是把所有可能的输入都作为测试情况进行测试。
黑盒测试分为:
边界值 等价类 错误推测法 场景法 因果图法 判定表组成法 正交实验设计
1.错误推测法是指:在 测试 程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些 错误 的测试用例的方法。
2.等价类划分
所谓等价类是指输入域的某个互不相交的子集合,所有等价类的并集便是整个输入域。目的在于测试用例的无冗余性。
划分等价类 (1)有效等价类:检验程序是否实现了规格说明预先规定的功能和性能。
(2)无效等价类:检查软件功能和性能的实现是否有不符合规格说明要求的地方。
举例:有效等价类:1.长度为1-6;2.字符为‘0’-‘9’或者‘a’-‘z’或者‘A’-‘Z’
无效等价类:3.长度为0;4.长度大于等于7;5.含有英文/数字以外的字符
3.逻辑覆盖测试是通过对程序逻辑结构的遍历实现程序的覆盖。=》白盒测试
从覆盖源代码的不同程度可以分为以下六个标准:语句覆盖、判定覆盖(又称为分支覆盖)、条件覆盖、判定-条件覆盖(又称为分支-条件覆盖)、条件组合覆盖和路径覆盖。
4.边界值分析:边界值分析也是一种黑盒测试方法,是对等价类分析方法的一种补充,
由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。因此针对各种边界情况设计测试用例,可以查出更多的错误。
(1)单元测试:
单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。
(2)集成测试
又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。
(3)确认测试
确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。
(4)系统测试
软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,
目的在于与系统需求比较,发现问题
(5)验收测试
以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。
不是对系统进行全覆盖测试,而是对核心业务流程进行测试。
所以软件测试类型按开发阶段分为单元测试,集成测试,确认测试,系统测试,验收测试。