测试工程师指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷,测试软件是否具有稳定性、安全性、易操作性等性能,写出相应的测试规范和测试用例的专门工作人员。
(一)工作内容
(1)验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。
①确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;
②程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;
③评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
(2)确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件。
①静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;
②动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
(3)软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
(二)目的
①验证软件需求和功能是否得到了完整的实现。
②尽可能早的发现软件中的bug,尽可能多的发现软件中的bug。
③验证软件是否可以发布。
④对软件的质量、性能、效率做出合理的评估。
⑤预防用户使用可能出现的问题,预防下个版本可能出现的问题。
(三)软件测试方法
软件测试一般分为白箱测试和黑箱测试。
(1)黑箱测试
黑箱测试,也称黑盒测试,是软件测试方法,测试应用程序的功能,而不是其内部结构或运作。测试者不需具备应用程序的代码、内部结构和编程语言的专门知识。测试者只需知道什么是系统应该做的事,即当键入一个特定的输入,可得到一定的输出。测试案例是依应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确的输出。
(2)白箱测试
白箱测试又称透明盒测试、结构测试等,是一个测试软件的方法,测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑箱测试)。在白箱测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。