软件测试读书心得

软件测试技术读书心得

作为一名具有一年多的软件开发人员,对于软件测试我有着深刻的体会。我在20xx年6月进入湖北大学软件工程研究所,开始学习并且进行C#.NET团队开发,除了课程设计,也进行了真正的项目实战开发。因为这些开发经验,我深刻的明白软件测试在项目开发当中有着相当重要的地位,尤其是那种团队开发!

一、 软件测试的工作及要求

软件测试工作是一个系统而且复杂的工作,软件测试的目的就是在确保软件多分质量,确认软件以正确的方式做了你所期望的工作,所以软件测试工作的主要内容就是发现软件的错误发现软件的错误、有效定义和实现软件成分由底层到高层的组装过程、验证软件是否满足规格书要求和系统定义文档所规定的技术要求、为软件质量模型的建立提供依据。

软件的测试不仅是要确保软件的质量,还要给开发人员提供信息,以方便其为风险评估做相应的准备,以及为其提供分析依据,重要的是要贯穿在整个软件开发的过程中,保证整个软件开发的过程是高质量的。

软件测试对测试工程师来讲,要求具备较强的专业知识,严谨细心耐心的测试态度,良好的反向思维、发散思维能力、沟通能力等等。

二、为什么要进行软件测试

其实对于开发人员来说,软件测试是一件很痛苦的事情。我们每个开发人员都是希望并且认为我们写的代码是没有问题的,而软件测试的工作就恰恰就是找出开发人员程序中的bug,这是一个很让软件开发人员郁闷的一个问题。我辛辛苦苦写代码实现 出来的功能在测试人员的眼里,各种问题各种bug都出现了,这对于一个程序人员来说,算的上是一种打击。这也就是在我们团队开发中一个常常出现的问题——出现争论。

我们团队经常为了某一个功能争论,测试人员觉得这个功能不合理,不合适,甚至是错误的,而开发人员觉得这个功能没有任何问题!而且在大多数情况下,这种争论都以软件测试人员的胜利告终。

出现这种争论的原因是,一个程序员,都会对自己的软件出现这样一种期望——期望自己的软件不会出现错误!

然而,正是因为这种期望,我们更是需要进行测试,并且让专人来进行测试,因为,在这种心理的期望面前,任何程序员都会出现测试上的偏向,他们更偏向于向软件正常运行的的那个一方面进行测试,然而实际上这种测试是经不起现实数据的考验的。

这也体现了软件测试的重要性。并且,根据这种心理,有人提出了一种测试的方法——黑盒测试。

三、软件需要测试的部分

我们总在说要对软件进行测试,那么我们到底需要对软件进行那些测试呢?下面我们对一些常常常需要进行的测试进行一些列举。

1. 边界测试,测试用户输入框中的数值的最大数和最小数,以及为空时的

情况。

2. 非法测试,例如在输入数字的地方输入字母。

3. 跟踪测试,跟踪一条数据的流程,保证数据的正确性。

4. 在开始测试时应保证数据的正确性,然后在从系统中找出各种BUG。

5. 接口测试,程序往往在接口的地方很容易发生错误,要在此模块测试勿

掉以轻心。

6. 代码重用测试,在开发过程中有些模块功能几乎相同,程序员在重用代

码时可能忘记在原有代码上修改或修改不全面,而造成的错误。

7. 突发事件测试,服务器上可能发生意外情况的测试。

8. 外界环境测试,有些系统在开发时依赖于另外一个系统,当另外一个系统

发生错误时, 这个系统所受到的影响的情况。

9. 在程序员刚修复Bug之后的地方,再找一找,往往程序员只修复报告出来

的缺陷而不去考虑别的功能在修改时可能会重新造成错误。

10. 认真做好测试记录在做完一天的测试记录之后,第二天再根据第一天的

测试记录重复测试你会发现有未修正的错误。

11. 文字测试,如果在系统中有用词不当的地方,我想这是不应该的。

12. 系统兼容测试,例如有些程序在IE6能运行正常,到IE5下不能运行。有

些程序在WIN2000下能运行,而到WIN98却不能运行。像一些很特别的用户去使用系统,你很有可能发现BUG。

13. 用户的易用性测试,往往用户的需求是不断的变化的,而其中的一部份

变化的原因,是有用户操作上不方便引起的。

以上举例出来的我们在软件开发过程中,一般都需要进行测试

四、软件测试的基本方法

软件测试针对的是软件的缺陷,也就是说我们软件测试为的就是找出软件的某些缺陷,为了更好的找出软件的缺陷,我们应当知道软件的缺陷的定。

1) 软件缺陷的定义:

? 软件未实现应实现的功能

? 软件出现了不应出现的错误

? 软件实现了不应实现的功能

? 软件未实现符合一般软件常识的功能

? 软件出现了使用、性能上等不易被用户接受的问题

针对上面所述的缺陷,我们提出了一些列的软件测试的方法。

2) 首先从是否关心软件内部结构和具体实现的角度划分可以划分为两大类

? 黑盒测试(不知道程序的结构)

? 白盒测试(知道程序的结构)

黑盒测试:是软件测试中的另一种方法,即在测试时,测试人员并不了解程序的结构,因此测试人员只能通过输入得到相应输出,并根据相应的输出结果来判断某个功能是否实现、此功能是否正确。黑盒测试常用的方法有:

? 划分等价类

? 输入条件

? 边界值分析法

? 错误推测法

? 因果图法

? 判定表组成法

? 正交试验设计

? 场景法

这种测试方式只能了解到程序的外部结构。无法知道程序的内部的逻辑结构,

因此具有一定的局限性。而知关于逻辑部分的局限性便可由白盒测试来进行弥补。

白盒测试:是软件测试中比较常用的用来测试逻辑软件结构的方法,通过白盒测试,我们可以了解程序的详细的逻辑结构,以此来判断程序的运行是否得到我们想要的效果。白盒测试常用的方法就是覆盖测试,也就是语句覆盖和逻辑覆盖。语句覆盖要求在设计测试用例的时候将所有的语句运行到,而逻辑覆盖则是要求对于每一个判断所得到的不同的路径我们均需要进行测试。

3) 从是否执行程序的角度也分为两大类

? 静态测试

? 动态测试

4) 从软件开发的过程按阶段划分有

A. 单元测试

B. 集成测试

C. 确认测试

D. 系统测试

E. 验收测试

F. 回归测试

G. Alpha测试

H. Beta测试

五、软件测试的过程

软件测试的方法有很多,而软件测试应当尽早进行并且按照一定的步骤进行,这样才可以把问题今早的解决在摇篮里面。下面是软件测试的步骤。

第一步:对要执行测试的产品/项目进行分析,确定测试策略,制定测试计划。该计划被审核批准后转向第二步。测试工作启动前一定要确定正确的测试策略和指导方针,这些是后期开展工作的基础。只有将本次的测试目标和要求分析清楚,才能决定测试资源的投入。 第二步:设计测试用例。设计测试用例要根据测试需求和测试策略来进行,进度压力不大时,应该设计的详细,如果进度、成本压力较大,则应该保证测试用例覆盖到关键性的测试需求。该用例被批准后转向第三步。

第三步:如果满足“启动准则”(EntryCriteria),那么执行测试。执行测试主要是搭建测试环境,执行测试用例。执行测试时要进行进度控制、项目协调等工作。

第四步:提交缺陷。这里要进行缺陷审核和验证等工作。

第五步:消除软件缺陷。通常情况下,开发经理需要审核缺陷,并进行缺陷分配。程序员修改自己负责的缺陷。在程序员修改完成后,进入到回归测试阶段。如果满足“完成准则”(ExitCriteria),那么正常结束测试。

第六步:撰写测试报告。对测试进行分析,总结本次的经验教训,在下一次的工作中改。

软件测试过程管理,主要包括软件测试是什么样的过程,如何评价一个软件测试过程,如何进行配置管理和测试风险分析以及测试成本的管理。

 

第二篇:关于软件测试的心得体会

关于软件测试的心得体会

虽然一如继往地写读书笔记,笔墨也浪费了不少。但真正坐下来利用大段的时间将自己的思路理清还没有过。因为最近有了一定的时间,更因为狠狠地泡了一段时间51Testing 测试论坛,下载学习了该网站的电子测试杂志之后,自己的思路终于开始清晰起来,朦朦胧胧地开始看清了远方的路,麻着胆子去分析一下自己,也学着展望一下未来了,毕竟摸黑走路的感觉很不好。

我觉得学习软件测试的通用技术与针对某类软件的测试技术外,还有一个重要的与技术无关的方面:业务知识.没有具体的业务知识很难发现软件中潜在的逻辑错误甚至是需求上的错误,当然需求要依据特定的软件,但软件测试人员对需求理解的深入程度不应低于软件开发的人员.因为软件测试所有的依据来自于需求,而所有的需求来自于客户,甚至是我们的全部都来自于客户.识别需求后还必须转化为测试上的需求,毕竟测试人员看需求的角度和开发人员还是有区别的.

关于学习,我知道我并非计算机专业的学生,初涉软件测试行业,没有接受系统的培训,对软件测试一无所知,既不知道该测试什么,也不知道如何开始测试。但是,总该知道如何去学习,然而我认为,学习总该有必要的方法

1. 找个好师傅

这是最重要的一条了,也是公司提供的最好的一个条件.刚进来的时候,td,测试案例都有一个pm细心的和你讲,案例有什么方法来设计?要注意哪些错误?软件测试技术相关书籍目录、软件测试流程相关文档目录、产品业务相关的文档目录,一大堆的东西马上够你头晕的了.呵呵,还好,悟性不错,都囫囵吞枣地吞下去了.

2.学会读书

无论是神马专业,我始终确信,万变不离其宗,我知道,我不是这个专业的,但这个并不代表这我就不了解这个,再怎么不济,我也是从书本中走出来的,我相信,只要我努力地吧书本啃熟,我能够灵活地融入到这个职业中去,从书本中找寻解决问题的方法。标记出自己所错误的。

3.与前辈们一起讨论,多说

总有一天,我们会成为一位前辈,不过不是现在,至少现在我们应该好好的向别人学习,所以,我觉得,前辈是我们前进道路上不可或缺的一部分,他会成为引领我们前进的发动机,给我们指点,跟我们道工作的经验。然而,我们也应该多说,我知道,前辈们给我们讲解,已经是很辛苦的事情,毕竟,这不是他们的义务。我们也应该多多说说我们的观点,这样既能够让人家了解我们的水平,也方便老师前辈们对我们进行指导。

这些天的学习,我也有了一点自己的心得体会

体会一:软件测试在整个软件周期中的重要性。

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

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

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

相关推荐