软件测试复习

第一章

测试驱动开发的软件过程

第二章

 软件缺陷产生的原因

1、技术问题

开发人员技术、新技术的使用、逻辑复杂、系统结构的设计、接口参数太多、需求规格说明书、系统崩溃等

2、软件本身

不完善的软件开发标准或流程

文档错误、内容不正确或拼写错误

没考虑大量数据使用的场合

程序逻辑路径或数据范围的边界考虑不周全、缺乏整体考虑、与硬件、第三方系统软件之间存在接口或依赖性

3、团队工作

团队文化、与用户沟通、不同阶段的开发人员的理解不一致、设计或编程上的一些假定等

软件缺陷的构成

代码(23%),需求(41%),设计(24%),初步设计(12%)

修复软件缺陷的代价

错误不能及早的发现,那只能造成越来越严重的后果。若能及早排除软件开发中的错误,有效的减少后期工作可能遇到的问题,就可以尽可能的避免付出高昂的代价,从而大大提高系统开发过程的效率。

修正错误的代价不是随时间线性增长,而几乎是呈指数增长。

软件测试的分类

1、按测试层次分

底层测试:单元测试

接口层次:集成测试

系统层次:系统测试

用户层次:验收测试

2、按被测试的对象分类

单元测试,程序测试,系统测试,文档测试,Web应用测试,客户端测试,数据库测试,服务器测试

3、按测试阶段分

传统的软件测试流程:需求评审,设计评审,单元测试,集成测试,系统测试,验收测试,α测试,β测试。

敏捷测试流程:需求分析,迭代测试计划,持续的单元和系统测试,验收测试。

4、按测试目的分

功能测试(正确性测试),压力测试(负载测试),性能测试,可靠性测试,灾难恢复性测试,安全性测试,兼容性测试,回归测试,安装测试。

5、其他分类

根据测试过程中被测软件是否被执行,分为静态测试和动态测试,动态测试是在系统运行时进行测试。

根据是否针对系统的内部结构和具体实现算法来完成测试,分为白盒测试和黑盒测试。

  按照测试是否由软件工具来完成测试工作分为手工和自动化测试。

软件评审的形式有互为评审,走查,会议评审。

软件评审的对象有很多种,主要分为管理评审,技术评审,文档评审和流程评审。

静态分析的方法:

人工检测

计算机辅助静态测试

验证和确认的区别

验证:是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性

确认:是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求

白盒测试:也称为结构化测试或逻辑驱动测试。已知产品的内部工作过程,清楚最终生成软件产品的计算机程序结构及其语句,按照程序内部的结构测试程序、变量状态、逻辑结构、运行路径等。检验程序中的每条通路是否按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行。

白盒测试应用:程序的单元测试,覆盖测试,逻辑路径测试,控制流路径,业务流程路径和数据流路径等的覆盖。

黑盒测试:称为数据驱动测试方法,在测试时,将程序看做一个不能打开的黑盒子,完全不考虑程序内部结构和特性。

软件测试级别:

单元测试——对象是程序系统中最小单元,类,函数,模块,组件

任务:针对每个程序单元(可以是一个类、一个函数、一个模块等)进行测试,

目标:确保每个单元模块能正常工作

集成测试——一次性集成方式和渐增式集成方式

任务:在单元测试的基础上,对已测试过的模块进行组装,进行集成测试

目标:发现单元之间的接口问题并修正

系统测试——系统功能性测试和系统非功能性测试

任务:将已经集成好的软件系统,作为计算机系统的一个部分,与计算机硬件、某些支持软件、数据和平台等系统元素结合起来,在实际使用环境下,对计算机系统进行一系列的严格有效的测试来发现软件的潜在问题

目标:使整个系统满足功能和非功能性的质量需求。

验收测试——目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能及其他特性是否与用户的要求一致。

任务:对照产品规格说明书,严格检查产品是否满足说明书上规定的各方面的要求

目标:使产品达到规格说明说的要求

α测试和β测试区别:

α测试:指软件开发公司内部人员开始试用新产品,在实际运行环境和真实应用过程中发现测试阶段所没有发现的缺陷。

β测试:指公司外部典型用户试用,并要求用户报告异常情况、提出批评意见,然后对Beta版本进行修正和完善,最终得到正式发布的版本。

第三章

自由测试(Ad-hoc)和ALAC测试和错误推测法区别

自由测试:强调测试人员根据自己的经验,不受测试用例的束缚,放开思路,灵活地进行各种测试。

ALAC测试:是一种基于客户使用产品的知识开发出来的测试方法,它的出发点是著名的Pareto 80/20规律

错误推测法:是测试者根据经验、知识和直觉来发现软件错误,来推测程序中可能存在的各种错误,从而有针对性的进行测试。

等价类划分法思想:解决如何选择适当的数据子集来代表整个数据集的问题,通过降低测试的数据去实现“合理的”覆盖,覆盖更多的可能数据,以发现更多的软件缺陷。

等价类划分过程:分类和抽象两个过程

  分类,即将输入域按照具有相同特性或者类似功能进行分类

  抽象,即在各个子类中抽象出相同特性并用实例来表征这个特性

不同情形的处理:

1、在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类

2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。

3、在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类

4、在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。

5、在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

6、在确定已知的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步划分为更小的等价类

边界值分析法中边界值选取:正好等于,刚刚大于,刚刚小于

构成判定表的五个元素:

  条件桩:列出问题的所有条件

  动作桩:列出可能针对问题所采取的操作

  条件项:针对所列条件的具体赋值

  动作项:列出在条件项(各种取值)组合情况下应该采取的动作。

  规则:任何一个条件组合的特定取值及其相应要执行的操作。

判定表制定的过程:

   列出条件桩

   列出动作桩

   填入条件项及其组合

   填入动作项,制定初始判定表;

   简化、合并相似规则或者相同动作

因果图法:借助图形,着重分析输入条件的各种组合,每种组合条件叫做“因”,必然有一个输出的结果,叫做“果”。是一种利用图解法分析输入的各种组合情况,还要依赖生成的判定表

正交实验法。选择一个合适的正交表

基于逻辑覆盖的方法(白盒测试):

  判定覆盖 基本思想:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。一个判定往往代表着程序的一个分支,故又称为分支覆盖。

    条件覆盖  基本思想:设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。

  判定条件覆盖 是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次.

    条件组合覆盖 基本思想是设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次

  基本路径测试法(求环路复杂度)判断节点数+1 实现步骤:

 1)程序的流程图

 2)计算程序环路复杂度

 3) 确定基本路径

 4)准备测试用例

第四章

传统的测试过程:

从软件工程过程来看:需求评审,设计评审,代码评审与单元测试,集成测试,系统测试,验收测试

从项目管理角度:测试计划,测试设计,测试执行与监控,测试结果分析与评估,项目总结

w模型和v模型

v模型局限性:没有明确说明早期的测试,不能体现“尽早地和不断地进行软件测试”的原则。

V模型中增加各开发阶段应同步进行的测试变成w模型。

 

v模型:

w模型

测试过程和开发过程都贯穿软件过程的整个生命周期,相辅相成,概括起来有三个关键点:

测试过程和开发过程是同时开始的,同时结束的,两者保持同步的关系

测试过程是对开发过程中阶段性成果和最终产品进行验证的过程

测试过程中的工作重点和开发工作的重点,可能是不一样的,两者有各自的特点

TMap NEXT测试所定义的生命周期由计划和控制、基础设施、准备、说明、执行和完成等阶段组成。

Tmap通过三项基石:O、I、T,支持整个生命周期L,从而构成稳固的方法体系。

O:坚实的组织融合,强调测试小组必须融入到项目组织中,而且每个测试成员必须被分配任务和承担责任。

I:正确的基础设施和工具,说明为了获得最优化的结果,需要适当的基础设施和工具

T:支持测试过程的技术

敏捷测试和传统测试的区别:

1  传统测试更强调测试的独立性。而敏捷测试可以有专职的测试人员,也可以是全民测试

2  传统测试更具有阶段性,但敏捷测试团队每一天都在一起工作,一起谈论需求,一起评审需求,更强调持续测试,持续的质量反馈,测试的持续性更为显著

3  传统测试强调测试的计划性,而敏捷测试更强调测试的速度和适应性。

4  传统测试强调测试由验证和确认两种活动组成,而敏捷测试没有这种区分,始终以用户需求为中心,每时每刻不离用户需求,将验证和确认统一起来。

5.传统测试强调任何发现的缺陷要记录下来,而敏捷测试强调面对面的沟通、协作、强调团队的责任,不太关注对缺陷的记录和跟踪

6 传统测试更关注缺陷,围绕缺陷开展一系列的活动,而敏捷测试更关注产品本身,关注可以交付的客户价值。

7传统测试鼓励自动化测试,敏捷测试的持续性迫切要求测试的高度自动化,在1~3天内就要完成整个的验收测试

TMMI:初始级,定义级,集成,管理和度量,优化

第五章

单元测试的目标:检验各单元模块是否被正确地编码

单元测试的任务:

1、单元中所有独立执行路径、

2、数据结构

3、接口

4、边界条件

5、容错性等测试

实施代码规范的原因: 可靠性,可读性和可维护性可移植性。

代码评审方式:代码走查,会议评审,互查。

走查和会议评审的对比:

动态测试(运行测试):

驱动程序:也称驱动模块,用来模拟被测模块的上级模块,能够调用被测模块。

桩程序:也称桩模块,用以模拟被测模块工作中所调用的下层模块。

集成测试模式:渐增式测试模式与非渐增式测试模式 

非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。

渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。

各自的优缺点

渐增式测试模式需要编写的软件较多,工作量大,而非渐增式测试开销小

渐增式测试模式发现模块间接口错误早,而非渐增式测试模式晚

非渐增式测试模式发现错误,较难诊断;而使用渐增式测试模式,如果发生错误则往往和最近加进来的模块有关

渐增式测试模式测试更彻底

渐增式测试模式需要较多的机器时间

使用非渐增式测试模式,可以并行测试

自顶向下和自底向上集成方法

自顶向下集成方法,从主模块开始,沿着软件的控制层次向下移动,从而逐渐把各个模块结合起来。

自底向上集成方法,从原子模块开始集成进行测试。

第六章

系统功能测试:根据产品规格说明书,来检验被测试的系统是否满足各方面功能的使用要求

回归测试定义:无论在进行系统测试还是功能测试,当发现一些严重的缺陷而需要修正时,会构造一个新的软件包或新的软件补丁包,然后进行测试

目的:在程序修改的情况下保证原有功能正常的一种测试策略和方法

与一般测试的区别:

 

系统的性能指标包括:系统资源的使用率和系统行为表现。

系统负载“并发用户并发数量+思考时间+每次请求发送的数据量+负载模式”

系统负载模式:一次性加载方式,递增加载方式,高低突变加载方式,随机加载方式。

性能测试过程: 

(1)确定性能测试需求(2)根据测试需求(3)建立性能测试负载模型(4)执行性能测试(5)提交性能测试报告

拐点——在测试过程中,要善于捕捉被监控的数据曲线发生突变的地方——拐点。这一点就是饱和点或者性能瓶颈。

压力测试:定义:也称强度测试、负载测试,是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性

目的:在软件投入使用以前或软件负载达到极限以前,通过执行可重复的负载测试,了解系统可靠性、性能瓶颈等,以提高软件系统的可靠性、稳定性,减少系统的宕机时间和因此带来的损失

容量测试:预先分析出反映软件系统应用特征的某项指标的极限值

安全性测试定义:全面检验软件在需求规格说明中规定的防止危险状态措施的有效性和在每一个危险状态下的反应,对软件设计中用于提高安全性的结构、算法、容错、冗余、中断处理等方案进行针对性测试,并对安全性关键的软件单元和软件部件,单独进行加强的测试,以确认其满足安全性需求

安全性测试分为两种:

      安全功能测试:数据机密性、完整性、可用性、不可否认性、身份认证、授权、访问控制、审计跟踪、委托、隐私保护、安全管理

      安全漏洞测试:从攻击者的角度,以发现软件的安全漏洞为目的

安全漏洞是指系统在设计、实现、操作、管理上存在的可被利用的缺陷或弱点

安全性的两个级别

    1、应用程序级别的安全性:核实操作者只能访问其所属用户类型已被授权访问的那些功能或数据

    2、系统级别的安全性:核实只有具备系统和应用程序访问权限的操作者才能访问系统的应用程序

容错性测试主要检查系统的容错能力,检查软件在异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段可以看做可靠性测试和健壮性测试的组成部分

包括:1、输入异常数据或进行异常操作,以检验系统的保护性

      2、灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失、系统和数据是否能尽快恢复。

数据库并发控制过程冲突 主要包括三类:丢失数据、不可重复读数据和读“脏”数据

“脏”数据:事务A修改某一数据(或者执行某一操作),并将其写到数据库,事务B读取相同数据(或者执行某一关联操作)的时候,事务A由于某种原因撤销操作。

在数据库应用系统中,一般会使用加锁技术来进行并发控制

兼容性测试包括软件兼容性,数据共享兼容性,硬件兼容性。

向前和想后兼容:

向前兼容指是可以使用未来版本的软件。向后兼容是指可以使用以前版本的软件。

数据共享的兼容性表现在:

1、剪切,复制和粘贴 2、文件的存取 3、文件的导入导出

硬件兼容性测试即硬件配置测试

配置测试的主要任务是发现硬件配置缺陷。判断一个缺陷是否为硬件缺陷应考虑

1、可能在多种配置中都会出现缺陷

2、可能只在某种特殊配置中出现的缺陷

3、硬件设备或者其设备驱动程序可能包含仅由软件揭示的缺陷

4、硬件设备或者其设备驱动程序可能包含需借助许多其他软件才能揭示的缺陷

软件可靠性:软件可靠性是软件系统在规定的时间内及规定的环境下,完成规定功能的能力。

可靠性测试结果的评估:

     含义:在规定的一段时间和条件下,软件能维持其性能水平的能力有关的一组属性,可用成熟性、容错性、易恢复性三个基本子特性来度量。

     成熟性度量可以通过错误发现率(DDP)来表现:

DDP=测试发现的错误数量/已知的全部错误数量

第七章

验收测试定义:在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动,它是技术测试的最后阶段,也称为交付测试。

验收测试是检验产品和产品规格说明书的一致性

文档测试中文档的种类:

(1)联机帮助文档和用户手册(2)指南和向导(3)安装、设置指南(4)示例及模板(5)错误提示信息(6)用于演示的图像和声音(7)授权/注册登记表及用户许可协议(8)软件的包装、广告宣传材料

好的用户界面包括七个元素:1)符合标准和规范(2)直观性(3)一致性(4)灵活性(5)舒适性、(6)正确性、(7)实用性

软件易(可)用性要求:界面清晰美观、各元素布置合理、符合常用软件的标准和规范、用户能够在不需要其他帮助的情况下完成各项主要功能。

安装测试需要注意:

1)严格按照安装文档中的说明,一步步进行操作,最好从文档中复制出各种操作命令及其参数,确保输入到计算机的命令和文档中的内容一致

2)软件的安装说明书有无对安装环境做限制和要求

3)安装过程是否简单,容易掌握

4)安装过程是否有明显的、合理的提示信息

5)卸载测试也是安装测试的一部分

6)安装过程中是否会出现不可预见的或不可修复的错误,进一步验证安装过程中对硬件的识别能力、是否会破坏其他文件的配置

7)安装程序是否占用太多系统资源、是否有冲突、是否会影响原系统的安全性(8)软件安装的完整性和灵活性

9)软件使用的许可号码或注册号码的验证,用户许可协议的条款要保证其合理性合法

第八章

国际化:人们常说的国际化是指产品走出国门,在其他国家销售,但在软件产品开发过程中,产品国际化有着不同的意义,意味着对软件“原始产品”本地化的支持,也就是为了解决软件能在各种不同语言、不同风俗的国家和地区使用的问题,对计算机设计和编程所作出的某些规定。

本地化和国际化关系:是一个辩证的关系,本地化要适应国际化的规定,国际化是本地化的基础和前提,为本地化做准备,使本地化过程不需要对代码做改动就能完成,或将代码修改降到最低限度。

翻译,本地化,国际化,全球化关系:p197图8-1

软件本地化基本步骤:

1)建立一个配置管理体系,跟踪目标语言各个版本的源代码

2)创造和维护术语表

3)从源语言代码中分离资源文件或提取需要本地化的文本

4)把分离或提取的文本、图片等翻译成目标语言

5)把翻译好的文本、图片重新插入目标语言的源代码版本中

6)如果需要,编译目标语言的源代码

7)测试翻译后的软件,调整UI以适应翻译后的文本

8)测试本地化后的软件,确保格式和内容都正确

本地化测试包括的6个方面:

(1)功能性测试,所有基本功能、安装、升级等测试

(2)翻译测试,包括语言完整性、术语准确性等检查

3)可用性测试,包括用户界面、度量衡和时区等适合当地的要求

4)兼容性测试,包括硬件软件本身、第三方软件兼容性等测试

5)文化、宗教、喜好等适用性测试

6)手册验证,包括联机文件、在线帮助、PDF文件等测试

关于翻译的建议:

1)翻译时,应该尽量使用简单的句子结构和语法,选择意义明确的词

2)检查翻译的内容是不是断章取义,是否词不达意

3)如果在源文件中使用了缩写词,检查缩写词在第一次出现的时候是否正确地标出了它的全称,以便用户能够明白其含义

4)检查标点符号、货币、计量单位等是否符合当地习惯,包括显示格式。

第九章

测试自动化内涵:自动化测试是相对手工测试而存在的,由手工逐个地运行测试用例的操作过程被测试工具或系统自动执行的过程所代替,包括输入数据自动生成、结果的验证、自动发送测试报告等。

测试自动化定义:把以人为驱动的测试行为转化为机器执行的一种过程,即模拟手工测试步骤,通过执行由程序语言编制的测试脚本,自动完成软件的单元测试等。

测试自动化特点:

1)自动运行的速度快、执行效率高

2)永不疲劳

3)测试结果准确

4)可靠

5)可复用性

6)特别的能力

测试自动化优势:

1)缩短软件开发测试周期(2)更高质量的产品

3)软件过程更规范

4)测试效率高,充分利用硬件资源

5)节省人力资源,降低测试成本

6)增强测试的稳定性和可靠性

7)提高软件测试的准确度和精确度

8)可以完成手工测试不能做的事情

9)高昂的团队士气

脚本可以分为线性脚本,结构化脚本,数据驱动脚本,关键字驱动脚本。

测试自动化  测试工具的分类

1)根据测试方法不同,分为白盒测试工具和黑盒测试工具,或者分为静态测试工具和动态测试工具

 2)根据测试的对象和目的不同,分为单元测试工具、功能测试工具、负载测试工具或性能测试工具、测试管理工具

测试工具的选择步骤:

 1)成立小组负责测试工具的选择和决策,制定时间表

2)确定自己的需求,研究可能存在的不同解决方案,并进行利弊分析

3)了解市场上满足自己需求的产品,包括基本功能、限制、价格和服务等

4)根据市场上的产品的功能,限制和价格,结合自己的开发能力,预算,项目周期等决定是自己开发还是购买

5)对市场上产品进行对比分析,确定两三种产品作为候选产品

6)请候选产品的厂商来介绍、演示,并解决几个实例

7)初步确定

8)商务谈判

9)最后决定

手工测试和自动化测试各自的优势:

   1) 在系统功能逻辑测试、验收测试、适用性测试、涉及人机交互性测试时,多采用黑盒测试的手工测试方法

   2) 单元测试、集成测试、系统负载测试或性能测试、稳定性测试、可靠性测试等比较适合采用自动化测试

   3) 对不稳定软件的测试、开发周期很短的软件或一次性的软件等不适合测试自动化

4) 工具本身并没有想象力和灵活性

相结合:

 1)找准测试自动化的切入点

 2)把测试开发纳入整个软件开发体系

(3)测试自动化依赖测试流程和测试用例

(4)软件测试自动化的投入较大

(5)进行资源的合理调度

1 为什么要进行单元测试,单元测试的主要任务有哪些

  答:进行单元测试的原因有以下几点:

(1) 要保证软件系统的质量,首先就要保证构成系统的单元的质量,所以要进行单元测试活动

(2) 进行单元测试可以尽早发现软件中存在的错误,从而降低软件质量成本

(3) 如果没有执行好单元测试,软件在集成阶段及后续的测试阶段会发现更多的错误,甚至会导致软件不能运行。

单元测试的主要任务包括对单元功能、逻辑控制、数据和安全性等方面的测试,具体包括以下:

(1) 单元独立执行路径的测试

(2) 单元局部数据结构的测试

(3) 单元接口测试

(4) 单元边界条件的测试

(5) 单元容错性测试

(6) 内存分析

2 单元测试对象不可能是一组函数或多个程序的组合,为什么

答:单元测试是针对程序系统中的最小单元进行的测试,这些单元可能是一个类或者一个对象,也可能是一个函数,也可能是一个组件或模块,所以测试的对象不可能是一组函数或多个程序的组合,只能是一个函数或一个程序。

3 单元测试一般由开发人员完成,并采用白盒测试技术,这样会获得更高的测试效率和更彻底的测试,谈谈其中的道理

 答: 单元测试是测试执行的开始阶段,而且与程序设计和实现有非常紧密的关系,开发人员更加清楚程序的预期结果,可以编写更加有效的单元测试,从而提高测试的效率,所以单元测试一般由开发人员完成。

      单元测试的对象规模小、功能单一、逻辑简单、可以通过技术设计文档,源程序等清楚的了解单元输入输出条件和逻辑结构,采用白盒方法的结构化测试用例,然后辅以功能测试用例,使之对任何合理和不合理的输入都能鉴别和响应,从而达到较为彻底的测试

4 代码评审有哪些方法? 哪一种比较有效,为什么

  答:代码评审有互查、走查和会议评审三种方法

      其中会议评审比较有效,因为会议评审是一种最为正式的检查和评估方法,它不但需要软件开发者自查,还需要组织代码检查小组进行代码检查,检查过程中会将代码与标准和规范进行对照,即利用缺陷检查表来查找代码中的缺陷,比起互查和走查,更能避免人为的疏漏。

5 单元测试 、集成测试与系统测试的联系与区别是什么

 答: 根据不同的测试阶段,测试可以分为单元测试集成测试系统测试验收测试

体现了测试由小到大、又内至外、循序渐进的测试过程分而治之的思想

单元测试是对软件基本组成单元(软件设计的最小单位)进行正确性检验的测试工作,如一个函数、一个类等,一般由开发小组采用白盒方式来测试

集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作,一般采用白盒加黑盒的方式来测试

系统测试是将已经集成好的软件系统,作为计算机系统的一个部分,与计算机硬件、某些支持软件、数据和平台等系统元素结合起来,在实际使用环境下,对计算机系统进行一系列的严格有效的测试来发现软件的潜在问题,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否满足功能和非功能性的质量需求。

 6 验收测试是由用户完成的吗,为什么

   :验收测试的目的是向未来用户表明系统能够像预定 要求那样工作,所以一定需要用户的参与,但又不仅仅只由用户完成。

      一个产品拥有众多用户,不可能由每个用户验收,所有就有了Alpha测试和Beta测试,α测试过程中需要软件开发公司内部人员试用新产品,在实际运行环境和真实应用过程中发现测试阶段所没发现的缺陷,所以α测试是公司内部人员完成的;β测试过程中需要公司外部典型用户试用产品,并报告异常,提出批评意见,所以β测试是用户完成的。

7软件测试分为哪4个阶段,每个阶段的任务和目标是什么

  答:分为单元测试、集成测试、系统测试和验收测试4个阶段

      元测试

任务:针对每个程序单元(可以是一个类、一个函数、一个模块等)进行测试,

  目标:确保每个单元模块能正常工作

集成测试

任务:在单元测试的基础上,对已测试过的模块进行组装,进行集成测试

目标:发现单元之间的接口问题并修正

系统测试

任务:将已经集成好的软件系统,作为计算机系统的一个部分,与计算机硬件、某些支持软件、数据和平台等系统元素结合起来,在实际使用环境下,对计算机系统进行一系列的严格有效的测试来发现软件的潜在问题

目标:使整个系统满足功能和非功能性的质量需求。

验收测试:

任务:对照产品规格说明书,严格检查产品是否满足说明书上规定的各方面的要求

目标:使产品达到规格说明说的要求

8 软件本地化和国际化有什么关系?

    是一个辩证的关系,本地化要适应国际化的规定,国际化是本地化的基础和前提,为本地化做准备,使本地化过程不需要对代码做改动就能完成,或将代码修改降到最低限度。

9 手工测试和自动化测试有什么主要区别P214 P215

    手工测试是传统的测试方法,由测试人员手工编写测试用例,缺点在于测试工作量大,重复多,回归测试难以实现;自动化测试利用软件测试工具自动实现全部或者部分测试工作:管理、设计、执行和报告,自动化测试节省大量的测试开销,并能够完成一些手工测试无法实现的测试。

10、假设需要测试某一软件的日语本地化版本,请问需要做哪些方面的准备?

答:对本地化后的软件版本进行测试之前,首先要检查软件源语言开发是否遵守了软件国际化方面的规范,验证是否具有软件国际化所应有的全部特征;然后再对以下几方面进行测试

1) 功能性测试,要对所有基本功能、安装、升级等进行测试

2) 翻译测试,要对语言完整性、术语准确性等进行检查

3) 可用性测试,要检查用户界面、度量衡和时区 是否符合当地的要求

4) 兼容性测试,要检查硬件软件本身、及与第三方软件的兼容性

5) 还要对文化、宗教、喜好等进行适用性测试

6) 要对相关手册进行验证,包括联机文件、在线帮助等

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/lalalalalala_/article/details/74059100
今日推荐