北风网教师:小林系统测试验收测试系统测试是测试软件系统和其他的系统元素(及硬件、数据库和人机交互信息)组合构成完整的计算机应用系统中所有的元素配合是否合适以及整个系统的功能、性能、执行强度、安全性等是否达到规定标准。功能测试性能测试安全测试配置测试兼容性测试易用性测试功能测试是系统测试中最基本的测试,它不管软件内部的实现逻辑,主要根据产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格。是否有不正确或遗漏了的功能?功能实现是否满足用户需求和系统设计的隐含需求?能否正确地接受输入?能否正确地输出结果?对需求进行标号对可能出现的功能异常进行分类分析,并标号对功能需求进行分级对功能进行测试分析:可测性、如何测、可能的输入和输出脚本化和自动化性能测试是测试系统完成正确功能的效率,其中包括:系统功能实现的响应时间,并发用户(吞吐量),资源利用率。压力测试:测试系统在其资源超负荷的情况下的表现。对于一个固定输入速率的单词处理响应时间;在一个非常短的时间内引入超负荷的数据容量;同时引入大量的操作;大量用户同时登陆。功能验证漏洞扫描模拟攻击侦听技术配置测试将验证软件与其所依赖硬件环境的依赖程度。测试中的硬件环境指进行测试所必需的服务器、客户端、网络连接设备,以及打印机、扫描仪等辅助硬件设备所构成的环境。所有软件都需向用户说明其运行的硬件环境,对于多层结构的软件系统来说,需要分别说明其服务器、客户端以及网络所需的环境。最低配置是否能够满足系统运行的需要。在推荐配置下系统的性能。考察软件对运行硬件环境有无特殊说明。为了满足不同的使用需求,软件系统能否运行在多种硬件配置环境下,并且系统功能和性能都能满足设计需求。分离配置缺陷分离缺陷是配置问题而不仅是普通缺陷最可靠的办法是,在另外一台有完全不同配置的计算机上一步步执行导致问题的相同操作。如果缺陷没有产生,就极有可能是配置问题。如果缺陷在多种配置中出现,就可能只有普通缺陷。配置测试流程确定所需的硬件类型;确定哪些硬件商标、型号和驱动程序可用;确定可用的硬件特性、模式和选项;将明确后的硬件配置缩减为可控制范围;明确使用硬件配置的软件唯一特性;设计在每一种配置中执行的测试案例;在每种配置中执行测试;反复测试直到小组对结果满意为止。被测系统需要打印吗?被测系统需要发出声音吗?被测系统处理图形和图片吗?想一想需要用什么硬件使用被测系统?我们可以从近期的杂志和出版物上看到正在(曾经)流行的硬件。研究硬件的等价类:设备的相互翻版、大同小异。测试的驱动程序:操作系统自带,硬件附带的,网上提供的。每一种设备都有选项,软件没有必要全部支持。游戏就是一个好例子。许多游戏要求最小颜色数和分辨率。如果配置低于该要求,游戏就不能运行。购买:经常使用的。与硬件生产厂家联系,租借或赠送。向公司全体人员征集。向商场租用。到测试中心测试。测试软件要求的最低配置和推荐配置的合理性和正确性。主要指标包括对机型的要求和对CPU、内存、硬盘的要求。CPU。应用软件及客户端软件对CPU的推荐配置要求应当比目前主流CPU略低,服务器端的最低配置必须能够使软件正常工作,推荐配置应保证软硬件构成的系统在正常业务的压力负载下,CPU资源占用平均值不超过75%。内存。测试内存的占用情况。硬盘。对于特殊软件的硬件配置测试需考虑硬盘的转速、缓存容量、寻址时间等参数。安装或能够调用系统安装的打印机;能打印测试页;能选择不同幅面的纸张;能选择打印精度;纸张横、纵打印调整功能;逐页打印功能;多份打印功能;具备双面打印机的打印机能够实现自动双面打印功能;网络打印机能够实现网络打印功能。兼容性测试将验证软件与其所依赖软件环境如品台软件、其他软件的依赖程度。测试中的软件环境则指被测软件运行所需的操作系统、数据库、中间件、浏览器及与被测软件共存的其他应用软件等构成的环境。软件兼容性测试是指检查软件之间是否正确地交互和共享信息。交互可以在同时运行于同一台计算机上,甚至在相隔几千公里通过互联网连接的不同计算机上的两个程序之间进行。交互还可以简化为在软盘上保存数据,然后拿到其他房间的计算机。从Web页面剪切文字,在字处理程序中打开的文档中粘贴。从电子表格程序保存账目数据,在另一个完全不同的电子表格程序中读入。使照片修修饰软件在同一操作系统下的不同版本正常工作。升级到新的数据库程序,读入现存所有数据库,像老程序一样对其进行处理。如果对软件进行兼容性测试,需要解答以下问题:软件设计要求使用何种平台和应用程序?应该遵守何种定义软件之间交互的标准或者规范?软件使用何种数据与其他平台和软件交互和共享信息?目标平台和兼容性的应用程序的选择实际上是:管理人员和市场定位的任务。要熟悉客户基本情况的人来确定。确定软件需要兼容的版本。从项目管理的角度讲,使操作系统在满足用户要求的前提下,尽可能小是十分重要的。向前兼容:是指可以使用软件的以前版本。向后兼容:是指可以使用软件的未来版本。并非是所有软件或文件都要求向前兼容或者向后兼容。这是软件设计者需要决定的产品特性。测试人员就是编写测试用例,测试。兼容性测试软件选择依据流行程度。利用销售记录选择前100或多或1000个最流行的程序。年头。应该选择3年以内的程序和版本。类型。把软件分为画图、书写、财务、数据库、通信等类型。从每一种类型中选择测试软件。生产厂商。根据制作软件的公司来选择软件。Windows平台;Linux平台;UNIX平台;中间件浏览器支持软件其他同类软件非同类软件在实际运行环境之外搭建模拟环境,导入部分或全部数据,在模拟环境中进行一次或数次模拟迁移的尝试。将现有数据进行备份,检查备份数据的正确性。如果有备份系统,则先将备份系统升级到新系统,保持主服务器的旧系统不动,切换至备份服务器运行一周,若一切正常再升级主服务器,升级成功后切换至主服务器运行。在实际测试中,要按照软件类型、需求定位和测试环境进行选择,并以此为思路扩充测试方案。配置和兼容测试应当充分验证软件定义的适用范围,为开发者和用户提供软件使用的信心。配置和兼容性测试要尽早进行。易用性是交互适应性、实用性和有效性的集中体现。人体工程学:是一门将日常使用的东西设计为易于使用和实用性强的学科。用于与软件程序交互的方式称为用户界面或UI。早期计算机的用户界面是触发开关和发光二极管。第二代纸带、穿孔卡和电传打字机。第三代视频监视器和简单的行编辑器。现在个人计算机都有复杂的图形用户界面(GUI)。由于易用性缺陷的主观性,因此测试员和UI设计人员经常产生不同意见。UI通常被当做创建者的作品,而测试人员说某处是错误,就可能挫伤“艺术家”。易用性是软件缺陷中的敏感问题。优秀UI常见的7个要素符合标准和规范直观性一致性灵活性舒适性正确性实用性符合标准和规范重要的用户界面要符合现行标准和规范,这些标准和规范由软件易用性专家开发。它们是由大量正式测试、经验、技巧和错误得出的方便用户的规则。如果软件严格遵守这些规则,优秀UI的其他要素就自然具备。考虑以下问题来衡量软件的直观程度:用户界面是否洁净、不唐突、不拥挤?UI的组织和布局合理吗?是否允许用户轻松地从一个功能转移到另一个功能?下一步做什么明显吗?任何时刻都可以决定放弃或者退回、退出吗?菜单或者窗口是否深藏不露?有多余功能吗?软件整体抑或局部是否做得太深?一致性:用户的使用习惯性强,希望一个程序的操作方式能够带到另一个程序中。在审查软件一致性时要考虑以下术语:快捷键和菜单选项。术语和命令。听众。按钮位置和等价的按钮。灵活性表现在:用户喜欢选择不要太多,但是足以允许他们选择做什么和怎么做。状态跳转。状态终止和跳过。数据输入和输出。舒适性如何鉴别软件舒适性的一些好想法:恰当。软件外观和感觉应该与所做的工作和使用者相符。错误处理。程序应该在用户执行严重错误的操作之前提出警告,并且允许用户恢复由于错误操作导致丢失的数据。性能。快不见得是好事。不少程序的错误提示信息一闪而过,无法看清。如果操作缓慢正确性:就是测试UI是否做了该做的是。市场定位偏差:有没有多余的或者遗漏的功能,或者某些功能执行了与市场宣传材料不符的操作?语言和拼写:程序员常常能制造出非常有趣的用户信息。不良媒体:图标是否同样大小?是否具有相同的调色板?声音是否应该有相同的格式和采样率?所见即所得。保证UI所说的就是实际得到的。实用性这不是指软件本身是否实用,而是指具体特性是否实用。在审查产品说明书、准备测试或者实际测试时,想一想看到的特性对软件是否有实际价值。它们有助于用户执行软件设计的功能吗?如果认为它们没必要,就要研究一下找出它们存在于软件中的原因。窗口窗口能否基于相关的输入或菜单命令适当的打开窗口能否改变大小、移动和滚动窗口中的数据能否用鼠标、功能键、方向箭头和键盘操作当被覆盖的窗口重新调用后,所有相关功能是否可操作能否使用所有窗口的相关功能,所有相关功能是否可操作相关的下拉式菜单,工具条,滚动条,对话框,按钮,图标和其它控制有否?能否正常显示?完全可用?显示多窗口时,窗口名能否正确显示,活动窗口是否加亮使用多用户时,所有窗口是否能实时更新多次或不正确按鼠标是否会产生无法预测的结果窗口的声音、颜色提示和窗口的操作顺序是否符合需求窗口能否正确关闭数据项字母、数据能否正确显示且输入系统图象方式数据项(如滚动条)是否正常工作数据输入、消失是否可以理解,能否识别非法数据下列式菜单和鼠标操作菜单条显示在合适语言环境中应用程序的菜单是否显示系统相关特性下拉式操作是否正确,功能是否正确菜单、调色板和工具条是否能正常的工作能否列出所有菜单功能和下拉式功能能否通过鼠标操作所有菜单的功能,通过文本命令激活每个菜单功能菜单功能随当前窗口操作加亮或变灰如果要求多次点击鼠标或鼠标有多个按钮时能否正确识别光标、处理指示器和识别指针能否随操作而适当改变系统测试的意义系统测试的方法和技巧Alpha测试:是在一个用户开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。Beta测试就是把产品有计划地分发到目标市场,从市场收集反馈信息,把关于反馈信息的评价制成易处理的数据表,再把这些数据分发给所涉及的各个部门。通常在产品发布到市场之前,邀请公司的客户参与产品的测试工作。提升了产品的价值,因为它使那些“实际”的客户有机会把自己的意见渗透到公司产品的设计、功能和使用过程中。Beta测试并不是一种实验室的测试。目标市场可使用的测试产品要求测试结果一个良好的Beta测试过程就像一个团队,只有每一个成员都充分地发挥自己的所用,它才能有效地运转。因此,所有优秀的组织都有一个结构或者层次结构来保证这个“命令链”的存在。Beta测试经理主要负责全面贯彻和实行Beta测试过程职责:主要负责设计和改善整个Beta测试过程的策略和进程。应该与产品开发的相关人员保持一种融洽的关系。负责对Beta测试人员的培训。建立一个清晰而长远的测试计划。应该对整个测试分发过程有着全面的了解。Beta工程师的首要任务就是选择有一定的技术背景,能够胜任Beta测试的测试参与者。负责和Beta测试参与人员联系。及时回答测试参与者提出的问题。确认测试参与者是否真正履行了测试义务。检查测试结果。与测试经理探讨测试预算问题Beta测试协调员是Beta测试团队的核心人物。主要负责处理一些琐碎的事情,如运输、软件复印、产品分发、物品整理,以及其他一些简单却耗时的工作,因此Beta测试协调员所做的工作是“维护”Beta测试的正常运转。对于Beta测试经理来所说,全面了解产品的最好方法就是获取一份该产品的需求文档,详细研读一番。如果建立需求文档不是公司产品开发过程的一部分,那