前面已经介绍了矿泉水瓶和白板笔等实体产品的测试,那么软件测试的要素是否与它们一致呢?接下来本书就以QQ邮箱为例,选取邮箱登录和写信这两大常用功能模块讲述软件测试的基本要素。
图2-5展示的是QQ邮箱登录模块(简化版)的页面。
图2-5 QQ邮箱登录模块的页面
那么QQ邮箱登录模块应当如何测试呢?首先还是参考矿泉水瓶和白板笔的例子进行分析。
第一,是否需要对邮箱登录模块的页面做外观界面测试呢?邮箱登录模块的页面外观主要包括背景颜色、字体颜色、字体格式、页面图案、动画、窗体布局等元素。这些元素组成了登录模块的页面,同时也给了用户第一视觉体验,如果其中的任何一个元素出了问题,例如字体的风格不一致、颜色搭配错了、窗体布局不合理、文字有错误等,可以想象这会给用户带来什么样的影响,所以邮箱登录模块页面的外观界面是必须要测试的。
第二,是否需要对邮箱登录模块的页面做功能测试呢?邮箱登录模块的一个重要功能就是登录操作。邮箱的登录功能主要是保证当用户输入正确的用户名和正确的密码时才能登录到邮箱系统中,而当输入错误的用户名或密码时则禁止用户登录。可能有很多读者会认为,在登录邮箱的过程中,只要输入了正确的用户名和密码肯定能登录成功,输入了错误的用户名或密码肯定就登录失败。可是各位要知道,在软件产品刚刚被开发完成时,当输入了正确的用户名和正确的密码时,不一定能登录成功;同样,当输入了错误的用户名或错误的密码时,也未必就一定会登录失败。所以邮箱登录模块的功能是必须要测试的。
第三,是否需要对邮箱登录模块的页面做性能测试呢?邮箱登录模块的性能测试主要测试什么?在平常的邮箱使用过程中,你也许遇到过这些情形:有时打开某个网页要等待5~10s,甚至更长的时间,网页才能把内容全部显示出来;有时无论等待多久,网页也打不开;有时不到2s,网页的内容就全部显示出来了。这等待时间就称为系统响应时间(或称用户等待时间),系统响应时间是性能测试中的一个重要指标。同等条件下,系统响应时间越长,表明该网站性能越差;反之,则表明该网站性能越好。邮箱登录模块同样需要性能测试,例如,当输入用户名和密码并单击“登录”按钮后,用户要等待多长时间才能成功登录邮箱呢?正常情况下,用户只需要等待1~2s就可以成功登录邮箱系统,但如果每次登录都需要等待十几秒甚至更长时间,那这款邮箱产品的性能就需要改进了。所以邮箱登录模块的性能也是必须要测试的。
第四,是否需要对邮箱登录模块的页面做安全性测试呢?有时在一台公用的计算机上登录过QQ邮箱后,虽然执行了退出操作,但你会发现你的邮箱名或QQ号还是留在了那台计算机上。那么黑客就可以利用这些已知的信息入侵你的系统,导致你的QQ号或邮箱被别人登录。所以在邮箱产品上线之前,登录模块的安全性测试也是必须要做的。
第五,是否需要对邮箱登录模块的页面做易用性测试呢?初学者也可以将易用性测试理解为用户体验测试,主要就是测试用户使用邮箱登录模块的过程是否顺畅,操作是否容易。可以把自己当作一个用户,然后把自己感觉费解或是难以操作的地方找出来,让开发人员和设计人员修改。软件易用性好,用户体验才会好,所以邮箱登录模块的易用性也是必须要测试的。
第六,是否需要对邮箱登录模块的页面做兼容性测试呢?当你使用某浏览器打开一个网页时,有时会发现其排版异常或是页面出现乱码,但换成另一款浏览器打开同样的网页时又显示正常了,这就是网页代码跟某些浏览器不兼容所造成的。邮箱登录模块需要在不同的浏览器上运行,因此需要测试该页面与各类型浏览器是否兼容。
从以上分析不难看出,邮箱登录模块的测试同样也可以基于软件的外观界面、功能、性能、安全性、易用性、兼容性6个方面进行。
以下展示的是QQ邮箱的写信页面(简化版),如图2-6所示。
图2-6 QQ邮箱写信页面
接下来对QQ邮箱写信模块的测试进行简要分析。
第一,写信页面的字体格式、颜色格调、输入框大小的一致性以及界面布局排版等,都属于外观界面,这也是给用户的第一视觉体验,所以外观界面是必须要测试的。
第二,写信页面比较重要的功能就是写信和发送邮件这两大功能。这些功能主要表现在用户能否正常写邮件,写好的邮件能否保存为草稿、能否发送或定时发送,收件人能否正常收到邮件。如果写完邮件后不能发送,或者发出去的邮件对方收不到,那写信功能也就失去了意义。
第三,写信页面的性能测试。前文已提到过,初学者可以将邮箱的性能理解为系统响应时间。比如从单击“写信”按钮到写信页面完全显示出来,需要用户等待多长时间;又比如你发送了一封邮件给你的朋友,你的朋友多久能收到你的邮件,这些都是性能问题。如果你发完一封邮件后你的朋友要等三天才能收到,那估计也没有人会用这个邮箱了。
第四,写信页面的安全性测试。有些人的收件箱里可能收到过一些病毒附件,如果你单击或下载了它,很可能会导致你的计算机中毒。这是因为有些恶意用户故意上传一些病毒附件发送给你,如果你的邮箱不能对这些附件进行安全性检测的话,就会存在很大的安全隐患。
第五,写信页面的易用性测试。写信页面的易用性是指整个写信流程是否易于操作,其各项功能是否易于理解,各项提示是否清楚明了等。如果某个功能很难使用,一般人无法理解,那写信页面的易用性就大打折扣了。
第六,写信页面的兼容性测试。这就是要测试写信页面在不同浏览器下能否正常显示。能正常显示则说明它是兼容的,不能正常显示则表明邮箱的显示页面在该浏览器下存在兼容性问题。
有关写信页面具体的测试细节在这里就不过多分析了,但很容易看出来,写信页面的测试也可以基于外观界面、功能、性能、安全性、易用性、兼容性6个方面进行。
综上所述,目前可以得出结论:对一名初级软件测试人员来讲,当你对软件进行全面测试的时候,可以基于软件的外观界面、功能、性能、安全性、易用性、兼容性6个方面开展。
有人会问,对软件产品的测试一定是基于这6个方面的吗?答案是否定的。作为一名初级软件测试工程师,如果一开始就把测试范围定得太大、太广,会不利于学习和掌握。因而现阶段能把这6个方面做好就已经很不错了,做好这6个方面就是在修炼软件测试的基本功,其他方面可待有了一定的工作经验后,再具体细化扩展。只有练好了基本功,以后才有可能去应对更为复杂的测试工作。