第11章 易用性测试
一、用户界面测试
用于与软件程序交互的方式称为用户界面或UI。软件的UI各不相同,但是从技术上讲,它们与计算机进行同样的交互——提供输入和接受输出。
二、优秀UI由什么构成
优秀UI具备的7个要素:符合标准和规范、直观、一致、灵活、舒适、正确、实用。以下将详细讨论每一个要素:
1、符合标准和规范
最重要的用户界面要素是软件符合现行的标准和规范——或者有真正站得住脚的不符合的理由。
如果测试在特定平台上运行的软件,就需要把该平台的标准和规范作为产品说明书的补充内容。像对待产品说明书一样,根据它建立测试用例。
2、直观
在测试用户界面时,考虑以下问题,以及如何用来衡量软件的直观程度:
(1) 用户界面是否洁净、不唐突、不拥挤?UI不应该为用户使用制造障碍。所需功能或者期待的响应应该明显,并在预期出现的地方。
(2) UI的组织和布局合理吗?是否允许用户轻松地从一个功能转到另一个功能?下一步做什么明显吗?任何时刻都可以决定放弃或者退回、退出吗?输入得到确认了吗?菜单或者窗口是否太深了?
(3) 有多余功能吗?软件整体抑或局部是否做得太多?是否有太多特性把工作复杂化了?是否感到信息太庞杂了?
(4) 如果其他所有努力失败,帮助系统真能帮忙吗?
3、一致
被测试软件本身以及与其他软件的一致是一个关健属性。用户使用习惯了,希望对一个程序的操作方式能够带到另一个程序中。在审查产品时,软件需要保持一致的几点:
(1) 快速键和菜单选项。
(2) 术语和命名。整个软件使用同样的术语吗?特性命名一致吗?
(3) 听众。软件是否一直面向同一级别的听众?
(4) 诸如OK和Cancel按钮的位置是否一致。
4、灵活
提供给用户的快捷选择(自己的理解)。灵活性也带来了复杂性。灵活性对于测试的影响主要有以下几点:
(1) 状态跳转。灵活的软件在实现同一任务上有更多种选择和方式。状态转换图将变得更加复杂,软件测试员需要花费更多时间决定测试哪些相互连接的路径。
(2) 状态终止和跳过。测试具有这种功能的软件时,如果中间状态被跳过或提前终止,就需要保证在跳过所有状态或提前终止时变量被正确设置。
(3) 数据输入和输出。用户希望有多种方法输入数据和查看结果。测试进出软件的各种方式,状极大增加必要的工作量,使等价划分难以抉择。
5、舒适
软件用起来应该舒适,而不应该为用户工作制造障碍和困难。以下是鉴别软件舒适性好坏的一些想法:
(1) 恰当。软件外观和感觉应该与所做的工作和使用者相符。
(2) 错误处理。程序应该在用户执行关键操作之前提出警告,并且允许用户恢复由    于错误操作而丢失的数据。
(3) 性能。快不见得是好事。应向用户反馈操作持续时间,并且显示它正在工作,没有停滞。
6、正确
测试正确性,就是测试UI是否做了该做的事。以下情况要特别注意:
(1) 市场定位偏差。有没有多余的或者遗漏的功能,或者某些功能所执行的操作与市场宣传材料不符?注意不是拿软件与说明书比较,而是与销售材料比较。这两者通常不一样。
(2) 语言和拼写。软件中不应该有拼写错误或能产生歧义的用户信息。
(3) 不良媒体。媒体是软件UI包含的所有图标、图像、声音和视频。其大小、色调、样式等应该统一,显示正确。
(4) WYSIWYG(所见即所得)。保证UI显示的就是实际得到的。如保存、打开、打印等操作输出与原文档完全相同。
7、实用
是否实用是优秀用户界面的最后一个要素。这不是指软件本身是否实用,而仅指具体特性是否实用。
三、为有残疾障碍的人员测试:辅助选项测试
1、法律要求
2、软件中的辅助特性
四、小结
作为检查软件产品易用性的软件测试员,可能是第一个用各种方式使用软件的人,第一个看到软件按照既定的最终形式汇总的人。如果软件对于测试员来说都难以使用或者没有意义,客户也会有同样的问题。
?
第12章 测试文档
一、软件文档的类型
可以归类于文档的软件组成部分有:
(1) 包装文字和图形。
(2) 市场宣传材料、广告以及其他插页。
(3) 授权/注册登记表。
(4) EULA。最终用户许可协议。
(5) 标签和不干胶条。
(6) 安装和设置指导。
(7) 用户手册。
(8) 联机帮助。
(9) 指南、向导和CBT(计算机基础训练)。
(10) 样例、示例和模板。
二、文档测试的重要性
软件用户把这些独立的非软件部分当做整个软件的一部分。好的软件文档以下述3种方式确保产品的整体质量:
(1) 提高易用性。易用性大多与软件文档有关。
(2) 提高可靠性。可靠性是指软件稳定和坚固的程度。如果用户阅读文档,然后使用软件,最终得不到预期的结果,这就是可靠性差。
(3) 降低支持费用。好的文档可以通过恰当的解释和引导用户解决困难,以预防用户在遇到任何麻烦都会寻求公司的帮助。
如果安装指导有误,或者不正确的错误提示信息把用户引入歧途,他们就会认为这是软件缺陷——软件测试员应该发现这些问题。
作为软件测试员对待软件文档要像对待代码一样给予同等关注和投入。它们对用户是一样的。如果没有要求测试文档,一定要把此作为问题提出来并在整个测试计划中包括这部分。
三、审查文档时要找什么
无论文档是不是代码,像用户寻样对待它都是非常有效的测试方法。仔细阅读,按照每个步骤操作,检查每个图形,尝试每个示例。如果有简单的代码,测试代码是否按照描述的方式运行。利用这个现实的简便方法,可以找出软件和文档的缺陷。
书中给出了构建文档测试用例基础的简化检查清单,很详细。最后。也需要利用等价划分技术确定尝试哪些测试用例。
四、文档测试的实质
(1)文档常常得不到足够的重视、预算和援助。如果负责测试软件中的一个领域,一定要为伴随代码的文档测试做出预算,像对待软件一样给予关注,如果发现软件缺陷,就要报告出来。
(2)编写文档的人可能对软件做什么不甚了解。需要与文档作者密切合作,以保证文档包含所需信息,并随着产品设计更新。最重要的是,指出发现的代码中难以使用或者难以理解之处,让他们在文档中更好地解释。
(3)印刷文档制作要花不少时间,可能是几周,甚至几个月。由于这个时间差,软件产品的文档需要提前定稿。如果在此期间改变软件功能或者发现软件缺陷,文档将无法反映更改。该问题的解决方法是找一个好的开发模式来遵循。使文档保持到最后一刻发布,并且以电子格式随软件一起发布尽可能多的文档。
?
第13章 软件安全性测试
一、了解动机
了解动机能帮助软件测试员考虑到测试的软件是有哪些安全方面的漏洞。
安全产品是指产品在系统的所有者或管理员的控制下,保护用户信息的保密性、完整性、可获得性,以及处理资源的完整性和可获得性。
安全漏洞是指使产品不可行的缺陷——即使是正确地使用产品时——来防止***者窃取系统的用户权限、调节操作、破坏数据,或建立未授权的信任。
***是精通计算机编程和使用的人,电脑玩家。使用编程技能来获得对计算机网络或文件的非法访问的人。***想获得系统访问权限的5个动机是:挑战/成名、好奇、使用/借用、恶意破坏、偷窃。
二、威胁模式分析
以下是威胁模型分析过程的步骤:
(1)构建威胁模型分析小组。
(2)确认价值。
(3)创建一个体系结构总体图。
(4)分解应用程序。
(5)确认威胁。
(6)记录威胁。
(7)威胁等级评定。有以下五类评估分析:
a. 潜在的损害
b. 可反复性
c. 可利用性
d. 受影响的用户
e. 可发现性
    简单地用1表示低,2表示中等,3表示高,并将此应用到以上描述的五类评估分析的每一类,然后加起来,获得5到15之间的一个值,该值就可以以数值的方式来评估每一个威胁的安全等级。
三、软件安全是一项功能,软件漏洞是一个缺陷
测试安全缺陷是失效性测试行为,也常常覆盖产品中没有被完全理解和说明的部分。
四、了解缓冲区溢出
即使用没有被正确申明和初始化的变量、常数、数组、字符串或记录引起的缺陷。缓冲区溢出就是这种缺陷。这是由于编程质量低劣,加上许多编程语言都缺少安全字符处理函数,这样就会带来这些问题。
由于字符串的不正确处理引起的缓冲区溢出是目前为止最为常见的一种代码编写错误,其结果是导致安全漏洞。作为软件测试员,其工作是尽可能早地发现这些类型的缺陷。
五、使用安全的字符串函数
解决缓冲区溢出问题的方法,是使用安全字符串函数。其好处有:
(1) 每个函数接收目标缓冲的长度作为输入。
(2) 函数空字符中止所有的输出字符串,即使操作截断了预计的结果。
(3) 所有函数返回一个NTSTATUS值,该值只有一个可能成功的代码。
(4) 每个都提供版本。
六、潜在数据
   用户变更时未被删除的保留数据叫做潜在数据。潜在数据是潜在的安全漏洞,需要在小组采用的任何威胁模型分析中进行讨论。也许这些数据不会被看成是产品的问题,也许会被看成是一个大问题。

本文出自 “我的E博客” 博客,请务必保留此出处http://yunzhongyi.blog.51cto.com/4363700/801861