红枫 发表于 2011-3-9 11:57:29

什么是软件测试?

软件测试这个职位在国内好像是最近几年才开始进入大家的视线,被人重视。可是在这些天浏览了一下测试课堂发现很多同学对测试工作还是不太了解,而且很多的讨论都是更倾向于技术方面。这里我想更多的说一说测试这项工作到底该做些什么。

本人并非专业的测试人员,只是把自己几年来看到的对测试工作性质的了解说一说。希望专业人员指正。

测试人员的职责:

测试的目的是保证软件能够正确的完成用户期望的功能,并且不会给用户造成不必要的损失,保证软件达到需要的质量要求。所以,测试人员的责任并不仅仅是“找Bug”而已。

1. 确定什么才是正确的行为,特别是定义边界行为的正确性

要确定软件运行是正确的首先要知道什么是“正确的”,这本身就是测试人员的重要职责之一。需求工程师和项目经理不可能一次将产品在所有情况下的行为都定义出来,甚至不能想到所有的情况。这种时候测试人员的职责就是尽量想到所有可能出现的情况,并且和需求工程师、项目经理和开发人员一起确定所有条件下的行为。这是测试人员的职责,也是权利,不要说测试只是在项目中后期才参与产品的“跟班”。

最重要的是尽量保证软件是“指哪打哪”而不是“打哪指哪”(跑到了一种行为发现没定义过,然后根据程序的反应来定义)

2. 了解“用户”如何使用软件,并且确定“用户”使用的时候不会遇到重要的Bug

很多项目都会遇到这样的抱怨“为什么产品测试的时候没有问题,拿到客户那里一用就出问题”。原因其实就在于测试人员没有按照用户的方式来测试软件。测试人员需要了解究竟用户是怎样使用软件的,用户使用软件是的环境是什么样的(什么操作系统,多少内存,服务器负载多大,等等等)。测试人员必须要了解需求,了解行业,了解用户,然后把测试用例定义成用户真正使用软件的时候会出现的情况。只有这样才能最有效的找到用户在意的 Bug,而不是大量无关紧要的问题。

3. 定义产品的质量要求

很多企业里面,测试又被称为QA(Quality Assurance)——质量保证。所以测试人员最大的权利和义务就是制定产品要达到的质量标准。P1的Bug少于多少,P2的Bug少于多少,无故障运行时间多少,需要服务承受的压力不低于多少,测试的代码覆盖率有多少……而这些标准需要制定的既满足客户对质量的要求,又不会过于严格而导致开发时间过长,这里面的学问可大着呢。

更重要的是,测试人员要能够在项目过程中负责的坚持这些标准,并且获得开发人员和管理层的支持。不能够因为进度等原因就随意让步,因为产品质量烂,负责的就是你,到时候什么借口都没有用。

4. 保证测试的质量,给大家安全感

可以这么说,软件开发过程中最大的焦虑来自对产品现实情况的无知,不论是开发团队,管理团队还是销售团队。而测试的重要职责就是随时让所有人了解现在情况时好时坏,有多好(多糟)。所以测试人员要保证随时掌握产品的质量。因此测试要频繁的进行,持续的进行,尽快的反馈。

5. 保证测试的效率,不要影响产品的开发进度

除了质量,效率在测试中也很重要。如果开发者3天做出来的修改需要1个月才能测试完,肯定没法满足大家的需要。所以要想尽办法,在最短的时间内跑最多的测试(至少也是能够保证产品质量的测试)。你一天出一个build,我一天出一个测试报告!

可以说4、5条是发挥测试人员聪明才智的领地。自动化测试,自动化结果分析,测试平台,一切测试有关的基础发明都是为了这个目的。



本文来自: IT知道网(http://www.itwis.com) 详细出处参考:http://www.itwis.com/html/software/softtest/20090715/5000.html

648981864 发表于 2011-4-22 18:15:53

:)沙发··不错,学习哈!
页: [1]
查看完整版本: 什么是软件测试?