功能测试,通常是黑盒测试,在进行功能测试时需要对产品说明书进行分析,然后提炼测试用例。功能测试主要用来检查软件是否符合最终用户的需求。功能测试属于系统测试的一部分。
后续所讨论的等价类划分方法、边界值分析方法等测试用例设计方法尤其适用于功能测试。
功能测试大致分为业务逻辑功能测试、UI测试、安装测试、用户体验测试和兼容性测试。下面一一介绍。
1.业务逻辑功能测试
业务逻辑功能测试主要用来测试软件的逻辑功能,比如测试模拟登录界面,如图7-6所示。
需要设计测试用例来测试登录界面的注册、登录、记住密码和修改密码等功能。这就是测试一个软件的业务逻辑功能。
2.UI测试
UI就是用户界面的英文缩写。UI测试也是非常重要的,现在用户对于同类软件的选择余地很大,如果一款软件没有一个漂亮的UI,很难在同类软件中脱颖而出。
UI测试相比业务逻辑功能测试的重要性稍逊一筹,但也不容忽视。UI测试的内容非常多,包括窗口的设计、字体的选择、色彩的搭配、风格的选择等界面上的问题。
3.安装测试
有些软件的安装测试非常复杂。测试安装过程是系统测试中一个非常重要的部分。这里的安装测试包括安装、卸载两个过程。用户的第一次体验来自安装软件的过程。如果这个过程让用户体验较差,用户就有可能放弃这个软件转而寻求其他同类软件。
4.用户体验测试
用户体验测试近年越来越受到重视,它主要针对软件在使用过程中的易用性、合理性和方便性等。如果软件设计不够优美、交互界面烦琐难用等原因导致用户感觉这个软件无法正常操作,那就等于宣判这个项目开发失败。
其实在生活中存在很多易用性的例子,比如男、女厕所的红、蓝标识,蓝色的男人图像代表男厕所,红色的女人图像代表女厕所;超市的各类引导标识;水龙头上的红、蓝标识代表冷、热水;旅游景区的指示牌等。
在设计测试用例的时候最重要的是寻找人的因素以及与用户体验相关的问题。因此,用户体验测试的主观性较强,不同的用户对同一个设计的理解不同,会给出不同的结论。用户体验测试用例示例表8-1。
表8-1 用户体验测试用例示例
5.兼容性测试(www.xing528.com)
兼容性测试包括软件兼容性测试和硬件兼容性测试。Google公司有一项针对Android厂商的兼容性测试,叫作CTS(Compatibility Test Suite),只有通过这项测试的设备才被允许使用Google Play应用商店。
移动应用开发者经常会遇到的兼容性测试是开发的应用需要在不同分辨率、不同平台的手机上进行适配,确保应用能够正确安装、正确卸载,并且所有的功能能够正确运行。
同样的,对于桌面单机软件,需要测试软件在不同版本的操作系统下的运行情况,如Windows XP、Windows 10等,甚至有些软件可能需要在Linux系统下进行测试。前面提到的迪士尼狮子王游戏事件,就是因为在没有充分进行兼容性测试的条件下,直接将软件交付用户,导致了灾难性的结果。
相比于桌面单机软件,现在比较流行的B/S结构或C/S结构软件需要如何测试呢?以当下流行的B/S结构软件为例进行说明,假设对某公司的官网进行兼容性测试。
图8-6 B/S结构软件的通用架构
图8-6的左侧是各种上网的设备(计算机、手机或平板电脑),只要在浏览器中输入相应的网址,通过互联网就可以访问该公司的服务器。右侧就是该公司的服务网,包括网络服务器、数据服务器等。网络服务器上会安装IIS或Tomcat等,用于解析ASP、PHP或JSP等动态页面。数据服务器主要用于存储数据,比如MySql,MS SQL等,大型公司还会使用Oracle,这些服务器可能是Linux、Free BSD或Windows版本。
那么针对这种架构应该如何开展兼容性测试呢?对于服务器端,测试的重点在于这些用于解析动态网页的软件、存储数据的软件还有操作系统之间是否存在兼容性问题,如是否安装软件A导致软件B无法运行。
测试的重点是客户端,也就是图8-6中左侧的部分。每台设备的操作系统和浏览器的版本均有可能不一样,如何设计测试用例以确保所有设备都可以正确显示该公司的官方网站呢?表8-2给出一个示例供参考。
表8-2 客户端的配置
从前面学习的情况来看,浏览器和操作系统的组合非常多,不仅要测试每个浏览器的情况,还要测试同一浏览器的不同版本。在实际的测试过程中,可以根据过往数据或软件版本的流行程序进行适当筛选,有重点地进行测试。
供应商每次发布产品时常会改进其浏览器的某些功能,有些可能与旧版本兼容,有些则不兼容。在互联网时代,用户仍然会遇到网页不兼容浏览器的情况,因此要求软件供应商多花时间开发支持更多浏览器和操作系统的互联网应用。
小贴士:
小Q:博士,C/S结构软件应该如何进行兼容性测试呢?
M博士:C/S结构软件的测试方法其实比较简单,客户端参考前面所述桌面单机软件的测试方法,而服务器端参考B/S结构软件的测试方法即可。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。