一、软件测试:
在需求正确的前提下,验证软件功能是否满足用户需求,并对软件质量进行度量,弄清预期结果与实际结果之间的区别,以满足安全性、稳定性。
二、软件测试与研发的测试:
首先,
软件测试和软件调试的区别:
目的不同:测试是发现程序中的缺陷、调试是定位并且解决程序中的问题;
人员不同:测试主要由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行;调试由开发人员完成。
阶段不同:测试贯穿整个软件开发生命周期,调试一般在开发阶段。
其次,
技能要求:测试要求更广泛,即需要业务能力、设计和架构分析能力、测试手段和工具的使用,用户模型分析和理解,编程能力。
难易程度:开发广度小,专业度高;测试广度大,专业度低。
发展前景:自动化测试、安全测试等领域发展前景和研发基本一致。
繁忙程度:一般比研发轻松,但敏捷模式下差距不大,产品发布前压力较大。
三、选择软件测试的原因:
思维模式:
逆向思维:开发盖房子,测试拆房子。不走寻常路。
发散性思维:探求多项答案,例如:测试一台自动售票机。要多方面考虑:正向、逆向、边界、压力、性能、耗电量、断电、外观、没零钱等。
兴趣及性格特征:
好奇心、不浮躁、批判性思维。
责任感:
测试往往是产品的最后一个检验者,测试的工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品是否能够交给用户使用。所以,责任感是最重要的测试必备素质之一。
能力:
快速学习能力、沟通能力、文字能力、开发能力。
压力:
来自开发人员、用户、上级、自己的压力。测试人员的压力比想象中的更大。
四、需求:
用户需求:即甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。在开发的过程中,满足官方文档所需要的条件和职能;
软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能,即系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件和权能。包括功能性需求和非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求、质量标准、或者设计限制。软件需求是用户需求的具体实现ÿ