《质量全面管控》读书笔记——软件测试

一、软件测试发展史
1972年,Bill Hetzel博士在美国的北卡罗来纳大学组织了历史上第一次正式的关于软件测试的会议。1973年,他这样定义软件测试:“建立一种信心,认为程序能够按预期的设想运行”。1983年,他又把定义修改为“评价一个程序和系统的特性或能力,并确定它是否达到预期的结果。软件测试就是以此为目的的验证过程”。其核心思想是:测试方法是试图验证软件是“工作的”(指软件的功能是按照预先的设计执行的,以正向思维,针对软件系统的所有功能特点,逐个验证其正确性)。行业把这种方法看做是软件测试的第一类方法(软件测试是功能验证的过程)。
1979年,Glenford J. Myers对软件测试的定义是:“测试是为发现错误而执行的一个程序或系统的过程”。这是软件测试的第二类方法(测试是为了验证软件是有错误的)。
1983年,IEEE给软件测试的定义是:“使用人工或自动的手段来运行或测试某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。

第一类方法以需求为本,有利于界定测试的工作范畴,便于部署侧重点,加强针对性。这对于大型软件,尤其是在有限的时间和人力资源的情况下显得格外重要。第二类方法强调测试人员的主观能动性,用逆向思维方式,试图破坏系统、摧毁系统,这种方法往往能发现系统存在的更多缺陷。

二、软件测试的基本类型
根据测试类型的不同,可分为功能测试、自动化测试、界面测试、性能测试、安全测试、兼容性测试、安装测试、部署测试、可用性测试等,大约有40多种类型。
根据测试阶段的不同,可分为单元测试、集成测试、系统测试和验收测试。
单元测试是对最小的可测试软件元素(单元)实施的测试。
集成测试将所有功能模块按照设计要求组装成系统,进行全部流程的功能验证。
系统测试主要测试系统是否符合《软件需求规格说明书》,进行功能、性能、安全、兼容性等类型的测试。
验收测试主要由项目经理主导,用户根据《用户需求规格说明书》进行验收。

三、测试模型
1)瀑布模型
该模型严格地把软件项目分成各个阶段:需求定义、概要设计、详细设计、编码、单元测试、集成测试和系统测试等。该模型使用里程碑的方式,严格定义了各个开发阶段的输入和输出。V字模型是瀑布模型的另一种表现形式,重点反映了测试活动与分析和设计的关系。

2)敏捷模型
敏捷开发以冲刺(sprint)的形式在最短的时间里完成一次计划的迭代,包括计划、实施、测试和评审。在一个Sprint中,测试人员的工作内容主要分为5个部分:User Story 分析、Testcase Develop、Testing & Analysing、Continuous Integration、Regression Testing。
四、测试过程的经验总结
1)描述bug清晰明了;
2)设计测试用例时,尽量组合出最大的覆盖范围;
3)考虑多个模块之间的不同测试组合;
4)冒烟测试必不可少;
5)多个系统进行集成测试时,环境、版本、权限和数据要充分定义和协调;
6)回归测试决定了版本迭代的质量;
7)在项目计划阶段,各个部门需要预估时间;
8)周期较长的项目引入自动化可以节约人力成本;
9)优秀的产品不是测试出来的,靠的是设计和运维;
10)性能测试的环境一定要与系统测试环境的配置统一;

猜你喜欢

转载自blog.csdn.net/zlanbl085321/article/details/80628447
今日推荐