软件测试心得体会

开篇:

软件测试已经在软件领域占据了不可替代的角色,当一个软件从雏形到真正的在一台计算机上运行的时候,谁也不能保证计算机软件能一步到位的满足人们的需求,所以就有了软件测试。其目的是:1.确认软件的质量;2.确认软件做了你所期望的事情;3.确认软件以正确的方式做了这件事情。

软件测试在整个软件周期中的重要性:

它存在于整个项目周期,在项目开始之初需求调研的时候就开始了,在形成需求规格说明书的时候就需要针对文档进行测试。这个环节在后续整个项目中占了很大的比重,能主导整个项目的走向,成败与否全在于开始阶段的决策。

软件测试的真正意义在于发现错误,而不在于验证软件是正确的:

再严密的测试也不能完全发现软件当中所有的错误,但是测试还是能发现大部分的错误,能确保软件基本是可用的,所以在后续使用的过程中还需要加强快速响应的环节。结合软件测试的理论,故障暴露在最终客户端之前及时主动的去发现并解决。这一点就需要加强研发队伍的建设。

软件是人编的——所以不完美,当然如果趋利避害,尽量避免错误,造成的损失和影响也会大大减少。当然也有一些不注意软件测试而造成巨大的损失。如:

1、迪士尼的狮子王 (19941995)软件在少数系统中能正常工作,但在大众使用的常见系统中不行。后来证实,迪士尼公司没有对市场上投入实用的各种pc机型进行正确的测试。

2、英特尔奔腾浮点除法软件缺陷(1994)英特尔为自己处理软件缺陷拿出4亿美元支付更换坏芯片的费用。导致付出如此昂贵的代价,其主要原因是发现了软件缺陷没有正确的处理。

3、美国航天局火星极地登陆(1999)该项目使用前有经过测试,两个测试小组双方独立工作都很好,但从未走在一起。

4、爱国者导弹防御系统 (1991)一枚导弹在多哈击毙28名美国士兵,症结在于一个软件缺陷,一个很小的系统时钟错误累积起来就可能拖延14小时,造成跟踪系统失去准确度。在多哈袭击战中系统被拖延100小时。

这就是不注重测试的一些严重后果,因此我们发现了软件测试的必要性,在设计有效测试用例之前测试工程师必需理解软件测试的基本原则包括:

1.所有的测试都应追溯到用户需求。正如我们所知软件测试的目标在于揭示错误。而最严重的错误(从用户角度来看)是那些导致程序无法满足需求的错误。

2.应该在测试工作真正开始前的较长时间内就进行测试计划。测试计划可以在需求模型一完成就开始,详细的测试用例定义可以在设计模型被确定后立即开始。 因此,所有测试应该在任何代码被产生前就进行计划和设计。

3. Pareto原则应用于软件测试。简单地讲 ,Pareto原则暗示着测试发现的错误中的 80%很可能起源于程序模块中的20%。当然,问题在于如何孤立这些有疑点的模块并进行彻底的测试。

4.测试应从小规模开始,逐步转向大规模。最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。

5.为了达到最佳效果应该由独立的第三方来构造测试。 最佳效果指最有可能发现错误的测试(测试的主要目标),所以创建系统的软件工程师并不是构造软件测试的最佳人选。

6.不充分的测试是不负责任的,过分的测试是一种资源的浪费,同样也是一种不负责任的表现. 。

关于软件测试的分类从是否需要执行被测软件的角度可分为 :

1.静态测试:

静态测试是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。

其中包括代码测试、界面测试和文档测试3个方面。对于代码测试,主要测试代码是否符合相应的标准和规范。对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。对于文档测试,主要测试用户手册和需求说明是否符合用户的实际要求。

2.动态测试:

动态测试是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以,我们判断一个测试属于动态还是静态测试,唯一的标准就是看是否运行程序。

 

从测试是否针对系统的内部结构和具体实现算法的角度来看可分为:

1.黑盒测试:

指的是把被测软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子,只关心软件的输入数据和输出结果。

黑盒测试方法是在程序接口上进行测试主要是为了发现以下错误:

1.是否有不正确或遗漏了的功能?

2.在接口上输入能否正确地接受?能否输出正确的结果?

3.是否有数据结构错误或外部信息(例如数据文件)访问错误?

4.性能上是否能够满足要求?

5.是否有初始化或终止性错误?

用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。但这是不可能的。

黑盒测试的测试用例设计:

1.等价划分法

2.边界值法

3.错误推测法

4.因果图法

2.白盒测试:

指的是把盒子盖打开,去研究里面的源代码和程序结构。

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。 使用被测单元内部如何工作的信息,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。

白盒测试的主要方法:

1.逻辑驱动测试

2.基本路径测试

主要用于软件验证。

使用程序设计的控制结构导出测试用例。

总结:

经过对软件测试几个章节的学习,意识到测试并非是我想像的从客户角度任意使用软件产品,从而发现有无质量问题它有它的理论和实践体系。软件测试是一项严谨的工作,软件测试员一个基本的素质是打破砂锅问到底。喜欢找出那些深藏不露的系统冲突,乐于处理最复杂的问题,外表上热衷於来回奔忙,追求尽善尽美 ,为征服系统而额手称庆。

posted @ 2020-12-06 21:39  ysd将暮未暮  阅读(618)  评论(0编辑  收藏  举报