测试的基础知识

转载:https://www.cnblogs.com/qingtianyzl/articles/799196.html

 

1、测试永远需要
看看那些愿意花更多的时间和精力来保证产品的完整性的人们。他们真正认识到了什么?是缺陷所带来的影响:经济的或者其他的。
有了CMM,它首要的而且也是最重要的目标是,建立一种机制来对软件工程是引进文化改变。测试工作是促进这个目标的重要手段。而实现这个手段需要的是物力+人力。


2、测试的行为
不存在没有缺陷的代码,软件测试是为了发现错误而执行程序的过程。
任何软件均有缺陷,无论经过多么严格的测试,都不能确认已经发现了所有的缺陷;所以测试可以证明程序有错,而不能证明程序无错误。
测试的目标在于有效的发现缺陷,所以一个好的测试用例是在于它能发现至今未发现的错误。
验证:正确执行了活动,正确完成了产品
确认:执行了正确的活动,完成了正确的产品
测试属于确认工作,一个最优的测试用例集合原则上可以覆盖所有确认要求;同时测试工作属于验证工作,一个最优的测试用例集合应当可以发现所有的异常情况和错误;所以一个最优的测试过程原则上可以确认系统的要求被满足,并发现了所有的缺陷,而且开销最小。
测试工作的成果包括:一个确认结果的集合、一个缺陷集合;在实际操作中,确认结果的任务蕴含在测试用例中,如果通过了所有的测试用例,意味着确认结果集合的完备;这样测试工作的工作成果主要体现在缺陷集合上。
测试用例首先要满足确认要求,然后针对系统特性设计可以有效发现缺陷的测试用例。


3、测试的位置
软件工程:提供了质量的基础,分析、设计和构造方法通过提供一致的技术和可预测的结果帮助提高质量。
技术复审:通过对各个步骤产生的成果进行跟踪检查,控制质量。
测度:通过测量和数据分析来控制质量
SQA&SCM:SQA是支撑整个质量控制手段的监督协调机制,SCM是对产品进行管理的基础性设施。
标准过程:在组织级保证一致性,从而实现更加广大范围的质量管理
测试:质量控制的最后堡垒,但是测试不能完全的保证质量;同时测试工作的高成本,也要求上述各方面机制的有效配合。

 


4、测试的心理学问题
(1)程序测试的过程具有破坏性
测试的定义意味着程序测试的过程是具有破坏性的,其程度甚至达到了不可容忍的地步。社会上大多数人的人生观是建设性的,而不是破坏性的。人们倾向于创造一个物品,而不是轻易毁坏—个物品。
(2)程序员应避免测试自己的程序
开发和测试生来就是不同的活动。开发是创造或者建立什么东西的行为,一个模块或者整个系统。而测试的唯一目的是证明一个模块或者系统工作不正常。这两个活动之间有着本质的矛盾。一个人不太可能把两个截然对立的角色都扮演的很好。
还有一个重要的问题:程序中可能包含由于程序员对问题的叙述或说明的误解而产生的错误。如果是这种情况,当程序员测试自己的程序时,往往还会带着同样的误解致使问题难以发现。再者,可以把测试看做是对一篇论文或—本书作校对,或与写评论相类似的工作。正如许多作者所知,校对或批评自己的著作是非常困难的。也就是说,在自已的工作中找出缺陷往往是人的心理状态所不容的。

 


5、测试团队主要力量(人)的基本素质要求
   人是测试工作中最有价值也是最重要的资源,没有一个合格的、积极的测试小组,测试就不可能实现。然而,在软件开发产业中有一种非常普遍习惯,那就是让那些经验最少的新手、没有效率的开发者或不适合干其他工作的人去做测试工作。这绝对是一种目光短浅的行为,对一个系统进行有效的测试所需要的技能绝对不比进行软件开发需要的少,事实上,测试者将获得极其广泛的经验,他们将遇到许多开发者不可能遇到的问题。
在这里,为大家总结以下几点:
沟通能力、移情能力、技术能力、自信心、外交能力、幽默感、良好的记忆力、耐心、自我督促能力、洞察力、怀疑精神
这么说可能不太能理解,怎么会要求有外交能力、幽默感这些呢?听我慢慢给你道来。
沟通能力:  一名理想的测试者必须能够同测试涉及到的所有人进行沟通,具有与技术(开发者)和非技术人员(客户,管理人员)的交流能力。既要可以和用户谈得来,又能同开发人员说得上话。和用户谈话的重点必须放在系统可以正确地处理什么和不可以处理什么上。而和开发者谈相同的信息时,就必须将这些活重新组织以另一种方式表达出来,测试小组的成员必须能够同等地同用户和开发者沟通。
移情能力:  和系统开发有关的所有人员都处在一种既关心又担心的状态之中。用户担心将来使用一个不符合自己要求的系统,开发者则担心由于系统要求不正确而使他不得不重新开发整个系统,管理部门则担心这个系统突然崩溃而使它的声誉受损。测试者必须和每一类人打交道,因此需要测试小组的成员对他们每个人都具有足够的理解和同情,具备了这种能力可以将测试人员与相关人员之间的冲突和对抗减少到最低程度。
技术能力:  一个测试者必须既明白被测软件系统的概念又要会使用工程中的那些工具。要做到这一点需要有几年以上的编程经验

posted @ 2023-03-10 10:18  yoyoma0355  阅读(102)  评论(0编辑  收藏  举报