软件的功能测试往往被认为是测试中的相对简单工作,缺乏技术,只是"Mouse-driven"。实际上,软件功能测试,一方面依赖于不断积累的的经验,另方面功能测试也是离不开技术,包括环境设置、功能实现的理解。如果结合测试自动化、白盒或灰盒测试方法等,测试的效率会更高。

  适用性测试,往往可以和 功能测试结合起来做。但适用性主要是用户体验的评估活动,需要外部不同的各类人员参加。用户体验,对软件的生命力、市场影响和客户满意度的影响是非常重要的,越来越受到企业的重视。在微软公司,设立了12个专门用于适用性的测试。在国外,也有专业公司(如泽众软件)帮助软件企业运作适用性测试,组织大量的、不同的用户进行体验测试。

  功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用、是否实现了产品规格说明书的要求、是否能适当地接收输入数锯而产生正确的输出结果等。功能测试,包括用户界面测试、各种操作的测试、不同的数据输入、逻辑思路、数据输出和存储等的测试。对于功能测试,针对不同的应用系统,其测试内容的差异很大,但一般都可归为界面、数据、操作、逻辑、接口等几个方面,如:

  程序安装、启动正常,有相应的提示框、适当的错误提示等;
  每项功能符合实际要求;
  系统的界面清晰、美观;菜单、按钮操作正常、灵活,能处理一些异常操作;
  能接受正确的数据输入,对异常数据的输入可以进行提示、容错处理等;
  数据的输出结果准确,格式清晰,可以保存和读取;
  功能逻辑清楚,符合使用者习惯;
  系统的各种状态按照业务流程而变化,并保持稳定;
  支持各种应用的环境,能配合多种硬件周边设备,与外部应用系统的接口有效;
  软件升级后,能继续支持旧版本的数据

  软件产品以软件的客户为出发点,好的用户界面,除了正确性和实用性之外,还包括另外5个要素:符合标准和规范、直观性、一致性、灵活性、舒适性、。

  1. 符合标准和规范:软件在现有的平台上运行,通常标准是已经确立的(如MAC或者WINDOWS),这些规则和约定也是功能测试的依据。这些标准和规范是在大量实践基础上、随着时间而沉淀下来的、方便用户的各种规则和约定,如软件菜单格式、快捷键、复选框和单选按钮的界面,使用提示信息、警告信息或者严重警告信息等特定场合。

  2. 直观性:首先了解所需的功能或期待的响应明显,并在预期的地方出现。其次要考虑用户界面的组织和布局是否合理、界面是否洁净、不拥挤以及是否有多余的功能,是否太复杂难以掌握等因素。

  3. 一致性:软件自身的一致性以及软件与其他软件的一致性。字体和界面的各元素风格是否一致是比较容易判定的,而较难的一致性判断体现在用户操作方式上。用户习惯于将某一程序的操作方式带到另一个程序中使用。例如在WINDOWS平台客户已经习惯用Ctrl+C表示复制操作的,而在软件中将复制操作的快捷键定义为其它键,必定会给用户造成挫败感,难以接受。

  4. 灵活性:软件可以选择不同的状态和方式,完成相应的功能。但灵活性也可能发展为复杂性,太多的状态和方式的选择增加的不仅仅是用户理解和掌握的困难程度。多种状态之间的转换,增加了编程的难度,更增加了软件测试的工作量。

  5. 舒适性:人们对舒适的理解各不相同,但总体上要求恰当的表现、合理的组织、色调和谐、必要的提示或等。