第一篇:软件测试笔试题3解读
一、测试基础题
1、Linux的超级用户是root
2、Linux系统中,查看文件的命令是什么?写出至少三个:cat、less、more
3、Linux系统中,对文件httpd.conf赋予755权限指的是什么意思?如何操作? 赋予http.conf 文件 拥有者 读、写、执行;拥有组 读、执行; 其他人 读;执行 chmod 755 http.conf
4、Linux系统中,vi编辑,以下操作的命令是?插入、删除单个字符、删除一整行、到文件开头和结尾、另存为等 插入 i 删除单个字符 x 删除一整行
dd 到文件开头 gg 结尾 G 另存为 :qw
5、数据库题(1)员工信息表
create table employ(employID number primary key--员工ID ,ename varchar2(50)--名称 ,sex varchar2(50)--性别 ,age number--年龄 ,deptid number--部门ID ,stationid number--岗位ID);(2)员工薪水
create table salary(salaryid number--薪水ID ,employid number--员工ID ,basesalary number--基本薪水 ,bonussalary number--奖金);
1)统计各部门的平均薪水
select max(em.deptid), round(avg(sa.basesalary+sa.bonussalary),1)from employ em ,salary sa where em.employid=sa.employid group by em.deptid
2)查询所有部门的最高薪水,最低水,平均薪水,显示部门,最高薪水,最低薪水,平均薪水,并按部门名升序排序;select max(em.deptid)“部门名”, min(sa.basesalary+sa.bonussalary)“最低薪水”, round(avg(sa.basesalary+sa.bonussalary),1)“平均薪水” from employ em ,salary sa where em.employid=sa.employid group by em.deptid order by em.deptid
3)查询所有姓王的所有员工信息;select em.employID “员工ID”, em.ename “名称”, em.sex “性别”, em.age “年龄”, em.deptid “部门ID”, em.stationid “岗位ID”, sa.salaryid “薪水ID”, sa.basesalary “基本薪水”, sa.bonussalary “奖金” from employ em ,salary sa where em.employid=sa.employid and ename like '王%'
二、测试理论知识
1、软件测试的目的是什么?软件测试有哪几大特性?
目的:没发现软件缺陷与错误,对软件质量进行度量和评估,以提高软件的 质量,节约成本,满足客户需求。
特性:应追溯到用户需求;尽早地和不断地进行软件测试;完全测试是不可能的,测试需要终止;测试无法显示软件潜在的缺陷;充分注意测试中的群集现象;开发人员不能即是运动员又是裁判员;避免测试的随意性
2、软件测试有哪几种类型?它们的关注点分别是什么? 按阶段划分
对不同的阶段用不同的方法进行测试
a单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证
b集成测试在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试
c确认测试经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。
c系统测试目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试的对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。d验收测试主要确认软件是否按合同要求进行工作,既是否满足软件需求规格说明书中的要求。
按是否运行程序划分
静态测试不运行被测试的软件,而只是静态的检查代码、界面或者文档。动态测试实际运行被测试的软件,输入相应的测试数据,检查世界的输出结果是否和预期结果相一致的过程。按是否查看代码划分 黑盒测试
把软件看成一个黑盒子,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明又称为功能测试或数据驱动测试 白盒测试
又称为结构测试或逻辑驱动测试。着重于程序内部结构和算法,不关心功能和性能指标。灰盒测试
介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。其他划分 回归测试
对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例。防止出现“以前应用没有的问题现在出问题了”。
冒烟测试(BVT测试(Build Verification Test))
冒烟测试的对象是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。随机测试(又名猴子测试)
测试数据是随机产生的,在测试用例之外。只能作为一个测试的补充。
3、通常来说,一个case需要包含哪几部分?bug呢?
Case 用例编号 用例名称 功能接口、预置条件 用例优先级 操作步骤 预期结果 Bug bug编号 bug名称
bug优先级
操作环境 操作步骤
预期步骤 实际结果
三、自动化及项目测试知识
1、在自动化测试中,参数化的目的是什么?检查点呢?
2、LR中场景分为哪几种,分别是什么?性能测试指标包含哪些(尽可能多的列举)?
四、综合知识
1、您认为作为一名软件测试工程师,应该具备哪些素质? 计算机相关知识,能够熟练使用常用的管理工具 开发语言:C,C++,Java,JavaScript,VBScript,Shell。数据库:SQL Server,Oracle,MySQL等数据库知识
操作系统,如Windows 2003以及2008,UNIX,Linux,MAC,Solaris等 网络基本知识,能够独立完成测试环境的搭建。
软件基础知识:软件工程,软件生命周期,测试理论和测试方式有较深的理解。
软件测试技术,方法,流程,测试文档编写,能独立设计和执行测试用例, 提交完整的缺陷报告单, 编写测试报告。
测试工具,能够熟练使用至少一种功能/性能自动化测试工具。质量管理知识,如CMM,CMMI以及ISO 9001等。
2、就ATM取款机的取款功能,请写出测试点。
用场景法测试ATM机 基本流 插入银行卡 验证银行卡 输入密码 验证密码
进入ATM主界面 取款并选择金额 ATM机验证
更新账户余额出钞 返回主界面 备选流 银行卡无效 密码错误
密码三次错误吞卡 账户余额不提示退卡
总取款金额超过当日取款限额 ATM机余额不足 场景一 取款成功 预备条件
ATM余额10000 有效银行卡***8843 密码213213 卡内余额8000 操作步骤
插入银行卡,输入正确的密码213213 进入主页后选择取款1000元 预期结果
ATM机输出1000元,提示用户取走现金并返回主页面 ATM机余额9000 用户账户余额7000 场景二 卡无效 预置条件
ATM余额10000 一张无效银行卡 操作步骤
插入无效银行卡 预期结果
提示该卡无效并退卡。
场景三 密码错误且输入三次错误密码,ATM机吞卡 预置条件
ATM余额10000 有效银行卡***8843 密码213213 卡内余额8000 操作步骤
插入银行卡,输入错误密码321321 预期结果
提示密码错误,并清空密码 再次输入错误密码321321 预期结果
提示密码错误,并清空密码 再次输入错误密码321321 预期结果
提示密码错误,并没收该卡。场景四账户余额不足 ATM余额10000 有效银行卡***8843 密码213213 卡内余额8000 操作步骤
插入银行卡,输入正确的密码213213 进入主页后选择取款9000元 预期结果
提示账户余额不足,并退卡 场景五取款金额超过当日限额 预备条件 ATM余额100000(单笔取款最大金额为2000最大取款金额为20000)有效银行卡***8843 密码213213 卡内余额80000 操作步骤
插入银行卡,输入正确的密码213213 进入主页后选择取款2000元 预期结果
ATM机输出2000元,提示用户取走现金并返回主页面 ATM机余额98000 用户账户余额78000 累计取款20000 预期结果
ATM机余额80000 用户账户余额60000 再次取走2000元 预期结果
提示已达当日取款最大限额,并退卡。场景六 ATM余额不足 预备条件 ATM余额800 有效银行卡***8843 密码213213 卡内余额8000 操作步骤
插入银行卡,输入正确的密码213213 进入主页后选择取款1000元 预期结果
提示ATM机余额不足,并退卡。
读书的好处
1、行万里路,读万卷书。
2、书山有路勤为径,学海无涯苦作舟。
3、读书破万卷,下笔如有神。
4、我所学到的任何有价值的知识都是由自学中得来的。——达尔文
5、少壮不努力,老大徒悲伤。
6、黑发不知勤学早,白首方悔读书迟。——颜真卿
7、宝剑锋从磨砺出,梅花香自苦寒来。
8、读书要三到:心到、眼到、口到
9、玉不琢、不成器,人不学、不知义。
10、一日无书,百事荒废。——陈寿
11、书是人类进步的阶梯。
12、一日不读口生,一日不写手生。
13、我扑在书上,就像饥饿的人扑在面包上。——高尔基
14、书到用时方恨少、事非经过不知难。——陆游
15、读一本好书,就如同和一个高尚的人在交谈——歌德
16、读一切好书,就是和许多高尚的人谈话。——笛卡儿
17、学习永远不晚。——高尔基
18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向
19、学而不思则惘,思而不学则殆。——孔子
20、读书给人以快乐、给人以光彩、给人以才干。——培根
第二篇:软件测试毕业论文解读
毕业论文
姓 名:陈鑫 专 业:.Net软件开发 年 级:计软1302 学 号:201317140212指导教师:王梅 1
软件测试的概述及方法、、完成时间:2012年3月
摘要:从软件产业的发展初期到目前的大型软件开发过程,软件测试已成为其中一个不可分割的部分。随着软件规模的日益增大,软件测试问题也日益突出,现代社会对软件的依赖越来越强,高可信软件测试有着广泛的需求,基于缺陷模式的软件测试技术作为高可信软件的重要保证,可以大大降低软件的缺陷密度,提高软件的可信性。本文从测试的基本概念入手,深入剖析软件测试相关理论 关键字:软件测试、白盒测试、黑盒测试、类测试
目 录 软件测试的发展史.......................................4 2软件测试的相关背景......................................5 3 软件测试概述............................................6
3.1软件测试的定义..............................................................................6
3.2软件测试的描述.............................................................................6
3.3软件测试的目的............................................................................7
3.4软件测试的原则.............................................................................8 4 软件测试的内容....................................................................................9
4.1验证(verification)...........................................................................9 4.2确认(validation)....................................9 5 软件测试的分类.........................................10 5.1 常用分类..........................................10错误!未定义书签。
5.2 黑盒测试..........................................10 5.3白盒测试...........................................11
5.4 静态测试..........................................14
5.5动态测试...........................................15 6 软件测试中的类测试.....................................15 6.1念面向
对
象
软
件的6.2.类类
测测
试试
概技.....................................................15术.........................................16 7 参考文献..............................................17 8 致谢...................................................18
1软件测试的发展史
软件测试的发展历史:20世纪60年代(软件工程建立前),为表明程序正确而进行测试。.1972年在北卡罗来纳大学举行了首届软件测试正式会议。.1975年John Good Enough和Susan Gerhart在IEEE上发表了《测试数据选择的原理》的文章,软件测试被确定为一种研究方向。.1979年,Glenford Myers的《软件测试艺术》,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。.20世纪80年代早期,“质量”的号角开始吹响。软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。制定了各类标准。.1983年,Bill Hetzel在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。.20世纪90年代,测试工具盛行起来。.1996年提出的测试能力成熟度TCMM(Testing Capability Maturity Model)、测试支持度TSM(Testability Support Model)、测试成熟度TMM(Testing Maturity Model)。.到了2002年,Rick和Stefan在《系统的软件测试》一书中对软件测试做了进一步定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命过程。2软件测试的相关背景
相关背景:前段时间, 就是在我没有认真了解测试行业之前, 可能由于测试在中国的重视程度的问题, 我也一直认为测试应该是不重要的, 甚至认为有必要有专门的测试职业吗?认为软件主要是开发人员的事, 软件的成果也是由开发人员决定的, 当我在参加工作后, 真正从学校的学习环境中走上实际运用开发的时候, 事实上真的不是那么一回事哦。软件无处不在, 软而, 软件是人编的——所以不完美。臭名昭著的软件测试案例:
1、迪士尼的狮子王(1994~1995)软件在少数系统中能正常工作, 但在大众使用的常见系统中不行。后来证实, 迪士尼公司没有对市场上投入实用的各种pc机型进行正确的测试。
2、英特尔奔腾浮点除法软件缺陷(1994)英特尔为自己处理软件缺陷拿出4亿美元支付更换坏芯片的费用。导致付出如此昂贵的代价, 其主要原因是发现了软件缺陷没有正确的处理。
3、美国航天局火星极地登陆(1999)该项目使用前有经过测试, 两个测试小组双方独立工作都很好, 但从未走在一起。
4、爱国者导弹防御系统(1991)一枚导弹在多哈击毙28名美国士兵, 症结在于一个软件缺陷:一个很小的系统时钟错误累积起来就可能拖延14小时, 造成跟踪系统失去准确度。在多哈袭击战中系统被拖延100小时。
5、千年虫(大约1974)估计世界各地更换或升级该系统程序解决原有2000年错误的费用已经超过数亿美元。
3软件测试的概述 3.1软件测试的定义
软件测试使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness)完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;
(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;
(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
3.2软件测试的描述
测试是软件开发过程的重要组成部分, 是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的, 第一是确认软件的质量, 其一方面是确认软件做了你所期望的事情 6(Do the right thing), 另一方面是确认软件以正确的方式来做了这个事件(Do it right);第二是提供信息, 比如提供给开发人员或程序经理的反馈信息, 为风险评估所准备的信息;第三软件测试不仅是在测试软件产品的本身, 而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题, 这说明此软件开发过程很可能是有缺陷的。
3.3软件测试的目的
如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。在谈到软件测试时,引用Grenford J.Myers在《The Art of Software Testing》一书中的观点:(1)软件测试是为了发现错误而执行程序的过程;(2)测试是为了证明程序有错,而不是证明程序无错误;(3)一个好的测试用例是在于它能发现至今未发现的错误;(4)一个成功的测试是发现了至今未发现的错误的测试。这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便 改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
3.4软件测试的原则
1.应当把“尽早和不断的测试”作为开发者的座右铭。2.程序员应该避免检查自己的程序, 测试工作应该由独立的专业的软件测试机构来完成。
3.设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件, 特殊情况下要制造极端状态和意外状态, 比如网络异常中断、电源断电等情况。
4.一定要注意测试中的错误集中发生现象, 这和程序员的编程水平和习惯有很大的关系。
5.对测试错误结果一定要有一个确认的过程, 一般有A测试出来的错误, 一定要有一个B来确认, 严重的错误可以召开评审会进行讨论和分析。
6.制定严格的测试计划, 并把测试时间安排的尽量宽松, 不要希望在极短的时间内完成一个高水平的测试。
7.回归测试的关联性一定要引起充分的注意, 修改一个错误而引起更多的错误出现的现象并不少见。
8.妥善保存一切测试过程文档, 意义是不言而喻的, 测试的重现性往往要靠测试文档 4软件测试的内容
4.1验证(verification)验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件做了你所期望的事情。(Do the right thing)1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;
2.程序正确性的形式证明, 即采用形式理论证明程序符号设计规约规定的过程;
3.评市、审查、测试、检查、审计等各类活动, 或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。4.2确认(validation)确认(validation)是一系列的活动和过程, 目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right)1.静态确认, 不在计算机上实际执行程序, 通过人工或程序分析来证明软件的正确性;
2.动态确认, 通过执行程序做分析, 测试程序的动态行为, 以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试, 软件测试应该包括整个软 9 件开发期问各个阶段所产生的文档, 如需求规格说明、概要设计文档、详细设计文档, 当然软件测试的主要对象还是源程序。
5软件测试的分类
5.1常用分类
从是否需要执行被测软件的角度, 可分为: —静态测试 和动态测试
从测试是否针对系统的内部结构和具体实现算法的角度来看, 可分为 :
-白盒测试 和黑盒测试 5.2黑盒测试
黑盒测试
指的是把被测软件看作是一个黑盒子, 我们不去关心盒子里面的结构是什么样子, 只关心软件的输入数据和输出结果。
黑盒测试方法是在程序接口上进行测试, 主要是为了发现以下错误: • 是否有不正确或遗漏了的功能? • 在接口上, 输入能否正确地接受? 能否输出正确的结果? • 是否有数据结构错误或外部信息(例如数据文件)访问错误? •性能上是否能够满足要求? • 是否有初始化或终止性错误?
用黑盒测试发现程序中的错误, 必须在所有可能的输入条件和输出条件中确定测试数据, 来检查程序是否都能产生正确的输出。但这是不可能的。
n假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数, 按黑盒方法进行穷举测试:
n可能采用的 测试数据组: 232×232 =264 n如果测试一组数据需要1毫秒, 一年工作365× 24小时, 完成所有测试需5亿年。
黑盒测试的测试用例设计 •等价划分法 •边界值法 •错误推测法 •因果图法
5.3白盒测试
白盒测试指的是把盒子盖打开, 去研究里面的源代码和程序结构。
白盒测试也称结构测试或逻辑驱动测试, 它是知道产品内部工作过程, 可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行, 按照程序内部的结构测试程序, 检验程序中的每条通 路是否都有能按预定要求正确工作, 而不顾它的功能。使用被测单元内部如何工作的信息, 允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例, 对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识, 测试是基于覆盖全部代码、分支、路径、条件。
白盒测试的主要方法: •逻辑驱动测试 •基本路径测试
主要用于软件验证。
使用程序设计的控制结构导出测试用例。
逻辑驱动测试:
主要是测试覆盖率, 以程序内在逻辑结构为基础的测试。包括以下6种类型:
•语句覆盖 •判断覆盖 •条件覆盖 •判定-条件覆盖 •条件组合覆盖 •路径覆盖 白盒测试的主要目的
• 保证一个模块中的所有独立路径至少被执行一次; •对所有的逻辑值均需要测试真、假两个分支; •在上下边界及可操作范围内运行所有循环; •检查内部数据结构以确保其有效性
白盒测试的实施方案
在开发阶段
要保证产品的质量, 产品的生产过程应该遵循一定的行业标准。软件产品也是同样, 没有标准可依自然谈不上质量的好坏。所有关心软件开发质量的组织、单位, 都要定义或了解软件的质量标准、模型。其好处是保证公司实践的均匀性, 产品的可维护性、可靠性以及可移植性等。
在测试阶段
与软件产品的开发过程一样, 测试过程也需要有一定的准则, 来指导、度量、评价软件测试过程的质量。
定义测试准则
为控制测试的有效性以及完成程度, 必须定义准则和策略, 以判断何时结束测试阶段。准则必须是客观的, 可量化的元素, 而不能是经验或感觉。
根据应用的准则和项目相关的约束, 项目领导可以定义使用的度量方法, 和要达到的覆盖率。度量测试的有效性、完整性
对每个测试的测试覆盖信息和累计信息, 用图形方式显示覆盖比率, 并根据测试运行情况实时更新, 随时显示新的测试所反映的测试覆盖情况。
允许所有的测试运行依据其有效性进行管理, 用户可以减 少不适用于非回归测试的测试的过程。
概念:
1.语句覆盖:语句覆盖就是设计若干个测试用例, 运行被测试程序, 使得每一条可执行语句至少执行一次;
2.判定覆盖(也称为分支覆盖):设计若干个测试用例, 运行所测程序, 使程序中每个判断的取真分支和取假分支至少执行一次;
3.条件覆盖:设计足够多的测试用例, 运行所测程序, 使程序中每个判断的每个条件的每个可能取值至少执行一次;
4.判定-条件覆盖:设计足够多的测试用例, 运行所测程序, 使程序中每个判断的每个条件的所有可能取值至少执行一次, 并且每个可能的判断结果也至少执行一次, 换句话说, 即是要求各个判断的所有可能的条件取值组合至少执行一次;
5.条件组合测试:设计足够多的测试用例, 运行所测程序, 使程序中每个判断的所有可能的条件取值组合至少执行一次;
6.路径测试:设计足够多的测试用例, 运行所测程序, 要覆盖程序中所有可能的路径。
5.4静态测试
是指不实际运行被测软件, 而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。
其中包括代码测试、界面测试和文档测试3个方面。对于代码测 14 试, 主要测试代码是否符合相应的标准和规范。对于界面测试, 主要测试软件的实际界面与需求中的说明是否相符。对于文档测试, 主要测试用户手册和需求说明是否符合用户的实际要求。
5.5动态测试
是指实际运行被测程序, 输入相应的测试数据, 检查实际输出结果和预期结果是否相符的过程。所以, 我们判断一个测试属于动态还是静态测试 , 唯一的标准就是看是否运行程序。
6软件测试中的类测试
6.1 面向对象软件从宏观上来看是各个类之间的相互作用。在面向对象系统中,系统的基本构造模块是封装了的数据和方法的类和对象,而不再是一个个能完成特定功能的功能模块。每个对象有自己的生存周期,有自己的状态。消息是对象之间相互请求或协作的途径,是外界使用对象方法及获取对象状态的唯一方式。对象的功能是在消息的触发下,由对象所属类中定义的方法与相关对象的合作共同完成,且在不同状态下对消息的响应可能完全不同。对象中的数据和方法是一个有机的整体,测试过程中不能仅仅检查输入数据产生的输出结果是否与预期的吻合,还要考虑对象的状态。模块测试的概念已不适用于对象的测试“类测试将是整个测试过程的一个重要步骤。
6.2类测试技术
6.2.1基于服务的类测试技术
基于服务的类测试主要考察封装在类中的一个方法对数据进行的操作,它可以采用传统的白盒测试方法。为克服软件测试的盲目性和局限性,保证测试的质量,提高软件的可靠性,下面我们介绍一种类的服务的测试模型及相应的测试策略。
BBD通常有两种获取途径。一是采用逆向工程的方法根据源程序画出流程图,然后构造出BBD。但这毕竟是在缺少软件开发前期的分析、设计文档或文档不齐全的情况下退而求其次的办法。当源程序不正确时构造出来的BBD就是错误的。另一种途径就是追根溯源,在软件的分析、设计阶段就根据测试的需要构造出相应的BBD。这样就能从根本上解决问题,正确地指导类的服务的测试。
6.2.2基于层次增量的类测试
层次增量测试的基本思想是:首先分别测试父类的各个成员函数,再测试成员函数间的相互作用,把测试用例和执行信息保存在/测试历史中,在测试子类时,根据父类的测试历史修改部分的定义以及实现语言的继承映射来决定子类中的哪些特征应当重测试以及父类的哪些测试用例可以复用。
这种根据类间继承关系的层次特性对类进行增量测试的技术是由M.Harrold等人提出的,其特点是复用父类的测试信息来指导子类的测试。
7参考文献 参考书籍:
1、Ron Patton 《软件测试》机械工业出版社
2、张克东等 《软件工程与软件测试自动化教程》电子工业出版社
3、Dustin,E.《软件自动化测试:引入、管理与实施》电子工业出版社
4、James A.Whittaker 《实用软件测试指南》电子工业出版社
5、Zadrozny 《J2EE性能测试》电子工业出版社
6、Jones,C.《软件评估、基准测试与最佳实践》机械工业出版社
7、Edward Kit 《软件测试过程改进》机械工业出版社
8、Hung Q.Nguyen 《Web应用测试》电子工业出版社
9、Robert V.Binder《面向对象系统测试 模型 视图与工具(影印版)》
10、Rakitin,S.K.《软件验证与确认的最佳管理办法》电子工业出版社
11、麦格雷戈 《面向对象的软件测试》机械工业出版社
8致谢 非常感谢陈林华老师在我大学的最后学习阶段——毕业设计阶段给自己的指导,从最初的定题,到资料收集,到写作、修改,到论文定稿,她们给了我耐心的指导和无私的帮助。为了指导我们的毕业论文,她们放弃了自己的休息时间,她们的这种无私奉献的敬业精神令人钦佩,在此我向她们表示我诚挚的谢意。同时,感谢所有任课老师和所有同学在这四年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才,桃李满天下!
通过这一阶段的努力,我的毕业论文《 软件测试的概述及方法 》终于完成了,这意味着大学生活即将结束。在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。
写作毕业论文是一次再系统学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始。
感谢各位专家的批评指导。
读书的好处
1、行万里路,读万卷书。
2、书山有路勤为径,学海无涯苦作舟。
3、读书破万卷,下笔如有神。
4、我所学到的任何有价值的知识都是由自学中得来的。——达尔文
5、少壮不努力,老大徒悲伤。
6、黑发不知勤学早,白首方悔读书迟。——颜真卿
7、宝剑锋从磨砺出,梅花香自苦寒来。
8、读书要三到:心到、眼到、口到
9、玉不琢、不成器,人不学、不知义。
10、一日无书,百事荒废。——陈寿
11、书是人类进步的阶梯。
12、一日不读口生,一日不写手生。
13、我扑在书上,就像饥饿的人扑在面包上。——高尔基
14、书到用时方恨少、事非经过不知难。——陆游
15、读一本好书,就如同和一个高尚的人在交谈——歌德
16、读一切好书,就是和许多高尚的人谈话。——笛卡儿
17、学习永远不晚。——高尔基
18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向
19、学而不思则惘,思而不学则殆。——孔子
20、读书给人以快乐、给人以光彩、给人以才干。——培根
第三篇:软件测试课题解读
XX学院
××届××学院毕业设计
软件测试课题
2012-03-13
目 录
第一章 毕业设计目的..............................................................................................................3 第二章 毕业设计安排..............................................................................................................3 第三章 指导老师简介..............................................................................................................3 第四章 毕业设计选题..............................................................................................................4
4.1“如何写一个好的测试计划?” 或 “XXX项目测试计划”.....................................4 4.2“如何做好功能测试?” 或 “XXX项目功能测试实践”.....................................4 4.3“如何做好自动化测试?” 或 “XXX项目自动化测试实践”.............................5 4.4“如何做好性能测试?” 或 “XXX项目性能测试实践”.....................................5 4.5如何测试一个电梯/纸杯?..........................................................................................5 4.6怎样才能做好本地化测试?.......................................................................................5 4.7 学生自己想做的测试相关的其他选题(需要与指导老师确认)..........................6 第五章 总结..............................................................................................................................6
ii
第一章 毕业设计目的
培养学生运用所学基础理论、基本知识和基本技能进行分析与解决实际问题的能力; 培养学生严谨认真的态度、理论联系实际的动手能力;
通过完成具有一定实际或理论意义的软件测试项目,使学生受到基本的软件测试训练,巩固与扩展所学的基础理论和专业知识,为就业铺路搭桥;
培养学生分析设计、实际测试和计算机应用的能力,以及进行解决问题和文字表达等基本技能;
培养学生的创新意识和创新能力;
为学生面试与就业提供指导,帮助学生尽快就业,找到如意工作。
第二章 毕业设计安排
开始时间:2012年3月底 结束时间:2012年5月上旬 毕业论文完成时间:2012年5月上旬
说明:根据实际情况可能会有所调整。
第三章 指导老师简介
XX老师,北航软件工程硕士,PMP(项目管理专业认证),信息系统项目管理师(高级职称资格认证)。11年IT工作经验,精通软件测试理论、测试工具、测试流程、测试架构设计及测试管理。软件测试理论娴熟,实战经验丰富,对数据库和UNIX/Linux有 3
致谢
很深的功底,带过多次毕业设计。其中参与过黑龙江移动公司《新版BOSS系统》的开发和测试工作,明天集团的《工商项目档案管理系统》的开发和测试工作,网络版的《电力系统安全性评价专家系统》的开发和测试工作,中国石油集团下属《中国石油石化企业网络信息库》、《世界石油大会中国国家委员会网站》、《中油香港网站》、《中国石油商务网》《中国石油集团外部网站》的开发设计和验收工作,现在某外企公司任软件测试项目经理,负责软件测试项目的管理和执行,团队总人数达20余人。
联系方式:
第四章 毕业设计选题
4.1“如何写一个好的测试计划?” 或 “XXX项目测试计划”
测试的发展及相关理论 项目相关理论 测试管理
测试计划的重要性 测试计划的基本要素 测试计划实例
4.2“如何做好功能测试?” 或 “XXX项目功能测试实践”
测试的发展及相关理论 功能测试理论 项目相关理论 测试需求 测试流程 测试用例 测试工具
4.3“如何做好自动化测试?” 或 “XXX项目自动化测试实践”
测试的发展及相关理论 自动化测试理论 项目相关理论 测试需求 测试流程 测试用例 测试工具
4.4“如何做好性能测试?” 或 测试的发展及相关理论 性能测试理论 项目相关理论 测试需求 测试流程 测试用例 测试工具
4.5如何测试一个电梯/纸杯?
测试的发展及相关理论 项目相关理论 测试用例
4.6怎样才能做好本地化测试?
测试的发展及相关理论 深入理解本地化测试 如何做好本地化测试
XXX项目性能测试实践”
“ 致谢
4.7 学生自己想做的测试相关的其他选题(需要与指导老师确认)
第五章 总结
毕业设计(论文)是学生毕业前的最后一个重要学习环节,是学习深化与升华的重要过程。它既是学生学习、研究与实践成果的全面总结,又是对学生素质与能力的一次全面检验,还是对学生的毕业资格认证的重要依据。为了保证我院毕业设计质量,让同学们能够圆满完成这次毕业论文设计,我愿意和同学们一起努力,共同奋斗!
读书的好处
1、行万里路,读万卷书。
2、书山有路勤为径,学海无涯苦作舟。
3、读书破万卷,下笔如有神。
4、我所学到的任何有价值的知识都是由自学中得来的。——达尔文
5、少壮不努力,老大徒悲伤。
6、黑发不知勤学早,白首方悔读书迟。——颜真卿
7、宝剑锋从磨砺出,梅花香自苦寒来。
8、读书要三到:心到、眼到、口到
9、玉不琢、不成器,人不学、不知义。
10、一日无书,百事荒废。——陈寿
11、书是人类进步的阶梯。
12、一日不读口生,一日不写手生。
13、我扑在书上,就像饥饿的人扑在面包上。——高尔基
14、书到用时方恨少、事非经过不知难。——陆游
15、读一本好书,就如同和一个高尚的人在交谈——歌德
16、读一切好书,就是和许多高尚的人谈话。——笛卡儿
17、学习永远不晚。——高尔基
18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向
19、学而不思则惘,思而不学则殆。——孔子
20、读书给人以快乐、给人以光彩、给人以才干。——培根
第四篇:软件测试工程师笔试试题(大集合)
软件测试工程师笔试试题
01.为什么要在一个团队中开展软件测试工作?
02.您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作?
03.您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?(对于软件测试部分,可以简述)
04.您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
05.您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试„„)
06.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
07.测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
08.您认为做好测试计划工作的关键是什么?
09.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
10.您认为做好测试用例设计工作的关键是什么?
11.请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。
12.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
13.您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。
14.您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
15.您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
16.在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
17.您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?
如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
18.您以往是否曾经从事过单元测试和集成测试?如果有,请谈一下这些工作的实际开展情况。
19.您如何看待软件过程改进?在您曾经工作过的企业中,是否有一些需要改进的东西呢?您期望的理想的测试人员的工作环境是怎样的?
20.您以往工作过的企业中,是否开展了软件配置管理工作?您能否描述一下这项工作的开展情况和您对这项工作的认识?
21.您是否熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP。如果熟悉,您是否可以谈一下对这些方法论和思想的认识?
22.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
23.在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?
24.在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)
一、判断题(每题1分,12 分,正确的√,错误的╳)
1.软件测试的目的是尽可能多的找出软件的缺陷。()
2.Beta 测试是验收测试的一种。()
3.验收测试是由最终用户来实施的。()
4.项目立项前测试人员不需要提交任何工件。()
5.单元测试能发现约80%的软件缺陷。()
6.代码评审是检查源代码是否达到模块设计的要求。()
7.自底向上集成需要测试员编写驱动程序。()
8.负载测试是验证要检验的系统的能力最高能达到什么程度。()
9.测试人员要坚持原则,缺陷未修复完坚决不予通过。()
10.代码评审员一般由测试员担任。()
11.我们可以人为的使得软件不存在配置问题。()
12.集成测试计划在需求分析阶段末提交。()
二、不定项选择题(每题2 分,10分)
1.软件验收测试的合格通过准则是:()
A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
B. 所有测试项没有残余一级、二级和三级错误。
C. 立项审批表、需求分析文档、设计文档和编码实现一致。
D. 验收测试工件齐全。
2.软件测试计划评审会需要哪些人员参加?()
A.项目经理
B.SQA 负责人
C.配置负责人
D.测试组
3.下列关于alpha 测试的描述中正确的是:()
A.alpha 测试需要用户代表参加
B.alpha 测试不需要用户代表参加
C.alpha 测试是系统测试的一种
D.alpha 测试是验收测试的一种
4.测试设计员的职责有:()
A.制定测试计划
B.设计测试用例
C.设计测试过程、脚本
D.评估测试活动
5.软件实施活动的进入准则是:()
A.需求工件已经被基线化
B.详细设计工件已经被基线化
C.构架工件已经被基线化
D.项目阶段成果已经被基线化
三、填空题(每空1分,24 分)
1.软件验收测试包括、、三种类型。
2.系统测试的策略有功能测试、、、、易用性测
试、、、、、、、、、、等15 种方法。
3.设计系统测试计划需要参考的项目文档有、和迭代计划。
4.对面向过程的系统采用的集成策略有、两种。
5.通过画因果图来写测试用例的步骤为、、、及把因果图转
换为状态图共五个步骤。
四、简答题(共37分)
1. 阶段评审与同行评审的区别。(4 分). 什么是软件测试。(3 分). 简述集成测试的过程。(5 分). 怎样做好文档测试?(4 分)
5. 白盒测试有那几种方法?(6 分)
6. 系统测试计划是否需要同行评审,为什么?(4 分)
7. Alpha 测试与beta 测试的区别。(4 分). 比较负载测试、容量测试和强度测试的区别。(6 分). 测试结束的标准是什么?(3 分)
五、设计题(共15分)
对下面给出的程序控制图,分别以各种不同的测试方法写出最少的测试用例。
测试人员_考试试卷(考试时间100分钟,满分100分)
姓名:__________部门:__________员工号:__________
一、填空题:(每一空格2分,共60分)
1、软件实施活动的输出工件有、、、。
2、代码评审主要做 工作。
3、软件实施活动中集成员的职责是。
4、验证与确认软件实施活动主要有、代码评审、、、、SQA 验证。
5、表明测试已经结束。
6、软件测试的目的是。
7、软件测试主要分为、、、四类测试。
8、软件测试活动有制定测试计划、、、、、、测
试评估、测试结束八个步骤。
9、软件测试活动的输出工件有_、、、、。
10、软件测试角色有、、、。
二、不定项选择题:(每题3 分,共15分)
1、软件实施活动的进入准则是()
A、需求工件已经被基线化
B、详细设计工件已经被基线化
C、构架工件已经被基线化
D、项目阶段成果已经被基线化
2、下面角色不属于集成计划评审的是()
A、配置经理
B、项目经理
C、测试员
D、编码员
3、软件测试设计活动主要有()
A、工作量分析
B、确定并说明测试用例
C、确立并结构化测试过程
D、复审并评估测试覆盖
4、不属于集成测试步骤的是()
A、制定集成计划
B、执行集成测试
C、记录集成测试结果
D、回归测试
5、属于软件测试活动的输入工件的是()
A、软件工作版本
B、可测试性报告
C、软件需求工件
D、软件项目计划
三、问答题:(共25 分)
1、项目的集中管理在软件公司的哪一个层面?(2 分)
2、请描述软件测试活动的生命周期。(8 分)
3、什么是测试评估,测试评估的范围是什么?(5 分)
4、阐述工作版本的定义。(2 分)、请画出软件测试活动的流程图。(8 分)
测试人员考试试卷(考试时间90分钟,满分100分)
姓名:__________部门:__________员工号:__________
一、判断题(每题2分,正确的“√”,错误的“╳”)、好的测试员不懈追求完美。()
2、测试程序仅仅按预期方式运行就行了。()
3、不存在质量很高但可靠性很差的产品。()
4、软件测试员可以对产品说明书进行白盒测试。()
5、静态白盒测试可以找出遗漏之处和问题。()
6、总是首先设计白盒测试用例。()
7、可以发布具有配置缺陷的软件产品。()
8、所有软件必须进行某种程度的兼容性测试。()
9、所有软件都有一个用户界面,因此必须测试易用性。()
10、测试组负责软件质量。()
二、简答题
1、软件的缺陷等级应如何划分?(3 分)
2、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?(5 分)
3、你认为一个优秀的测试工程师应该具备哪些素质?(3 分)
4、产品测试到什么时候就算是足够了?(2 分)
5、测试计划的目的是什么?(2 分)
6、为什么要进行软件测试?软件测试的目的是什么?(5 分)
7、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?(8、如何做一名合格的测试人员?(3 分)
9、针对缺陷采取怎样的管理措施?(5 分)
三、专业词语解释(每题2 分)
α测试: β测试: 驱动模块: 桩模块: 白盒测试:
静态测试:
四、选择题(每题2分)
1.下面哪些属于动态分析()A. 代码覆盖率
B. 模块功能检查
C. 系统压力测试
D. 程序数据流分析
2.下面哪些属于静态分析()A、代码规则检查
B、序结构分析
C、序复杂度分析
D、内存泄漏
五、设计题(10分)分)
在三角形计算中,要求三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误,可构成三角
形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程
序流程图、控制流程图、找出基本测试路径 ,对此设计一个测试用例。
六、论述题
1、试叙述对一个软件项目测试的全过程。(10 分)
2、简述你对测试工作的认识过程、在以后的工作的一些建议。(6 分)、述静态测试和动态测试的区别?(5 分)
测试人员_考试试卷(考试时间100分钟,每题10 分,满分100分)
姓名:__________部门:__________员工号:__________ 1. 什么是软件测试,以及软件测试的意义?
2. 什么是软件测试静态分析,软件测试动态分析,3. 下面那些属于静态分析()
A、编码规则检查
B、程序结构分析
C、程序复杂度分析
D、内存泄漏
4. 下面那些属于动态分析()
A、代码覆盖率
B、模块功能检查
C、系统压力测试
D、程序数据流分析
5. 从测试技术角度,正确的选择是(),给出各自的含义?
A、静态测试
B、黑盒测试
C、动态测试
D、白盒测试
6. 从测试阶段角度,测试正确的顺序是(),同时给出所选择的正确策略含义和被测对象是什么?
A、单元测试
B、集成测试
C、系统测试
D、确认测试
7. 针对缺陷采取怎样的管理措施?
8. 在测试生命周期,测试过程分为几个阶段,以及各个阶段的含义?
9. 简要写出自己在理解的基础质上所认为引入测试管理的意义
10. 在三角形计算中,要求三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等
边三角形”。画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。
第五篇:软件测试(推荐)
一、简答5*6’
1.为什么不让时间有余的人做测试工作
表面上看这体现了管理的效率和灵活性,但实际上也体现了管理者对测试的轻视。测试和测试的人有很大关系。测试工作人员应该是勤奋并富有耐心,善于学习、思考和发现问题,细心有条理,总结问题,如果具备这样的优点,做其它工作同样也会很出色,因此这里还有一个要求,就是要喜欢测试这项工作。2.软件测试风险主要体现在哪里
我们没有对软件进行完全测试,实际就是选择了风险,因为缺陷极有可能存在没有进行测试的部分。因此,我们要尽可能的选择最合适的测试量,把风险降低到最小 3.所有软件测试缺陷都需要修复吗
从技术上讲,所有的软件缺陷都是能够修复的,但是没有必要修复所有的软件缺陷。测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目团队,要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复。发生这种现象的主要原因如下:-没有足够的时间资源。在任何一个项目中,通常情况下开发人员和测试人员都是不够用的,而且在项目中没有预算足够的回归测试时间,修改缺陷可能引入新的缺陷。
-有些缺陷只是特殊情况下出现,这种缺陷处于商业利益考虑,可以在以后升级中进行修复。-不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理,这类问题可以以后有时间时考虑再处理。缺陷是否修改要由软件测试人员、项目经理、程序员共同讨论来决定是否修复,不同角色的人员从不同的角度来思考,以做出正确的决定。4.如何减少测试人员跳槽带来的损失 建议我们从以下两个方面做起:
-加强部门内员工之间的互相学习,互相学习是建立学习型组织的基本要求,是知识互相转移的过程。在此基础上,可以把个人拥有的技术以知识的形式沉积下来,也就完成了隐性知识到显性知识的转化。
-管理者就应该把员工的个人成长和企业的发展联系起来,为员工设定合理发展规划并付诸实现。
5.验收测试的注意点有哪些 测试要注意下面的事项:
(1)用户现场测试不可能测试全部功能,因此要测试核心功能。这需要提前做好准备,这些核心功能一定要预先经过测试,证明没有问题才可以和用户共同进行测试。测试核心模块的目的是建立用户对软件的信心。当然如果这些模块如果问题较多,不应该进行演示。(2)如果某些模块确实有问题,我们可以演示其它重要的业务功能模块,必要时要向用户做成合理的解释。争得时间后,及时修改缺陷来弥补。(3)永远不能欺骗用户,蒙混过关。6.完全测试程序是可能的吗
实际上完全测试是不可能的。主要有以下原因:-完全测试比较耗时,时间上不允许;
-完全测试通常意味着较多资源投入,这在现实中往往是行不通的;-输入量太大,不能一一进行测试;-输出结果太多,只能分类进行验证;-软件实现途径太多;
-软件产品说明书没有客观标准,从不同的角度看,软件缺陷的标准不同;因此测试的程度要根据实际情况确定 7.是不是发现的缺陷越多就说明软件缺陷越多 其中的原因主要如下:
-代码复用、拷贝代码导致程序员容易犯相同的错误。类的继承导致所有的子类会包含基类的错误,反复拷贝同一代码意味可能也复制了缺陷。-程序员比较劳累是可以导致某些连续编写的功能缺陷较多。
“缺陷一个连着一个”不是一个客观规律,只是一个常见的现象。如果软件编写的比较好,这种现象就不常见了。测试人员只要严肃认真的测试程序就可以了。8.软件测试就是QA吗
软件测试人员的职责是尽可能早的找出软件缺陷,确保得以修复。而质量保证人员(QA)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。测试人员的主要工作是测试,质量保证人员日常工作重要内容是检查与评审,测试工作也是测试保证人员的工作对象。软件测试和质量是相辅相成的关系,都是为了提高软件质量而工作。9.测试产品和测试项目区别
习惯上把开发完成后进行商业化、几乎不进行代码修改就可以售给用户使用的软件成为软件产品,也就是可以买“卖拷贝”的软件,软件项目是一种个性化的产品,可以是按照用户要求全部重新开发,也可以修改已有的软件产品来满足特定的用户需求。项目和产品的不同特点,决定我们测试产品和测试项目仍然会有很多不同的地方:
-质量要求不同。通常产品的质量要高一些,修复发布后产品的缺陷成本较高,甚至会带来很多负面的影响。而做项目通常面向某一用户,虽然质量越高越好,但是一般只要满足用户要求就可以了。测试资源投入多少不同。做软件产品通常是研发中心来开发,进度压力要小些。同时由于质量要求高,因此会投入较多的人力、物力资源。项目最后要和用户共同验收测试,这是产品测试不具有的特点。此外,测试产品与测试项目在缺陷管理方面、测试策略制定都会有很大不同,测试管理者应该结合具体的环境,恰如其分的完成工作 10.如何编写提交给用户的测试报告
测试报告一般分为内部测试报告和外部测试报告。内部报告是我们在测试工作中的项目文档,反映了测试工作的实施情况,一般外部测试报告要满足下面几个要求:
根据内部测试报告进行编写,一般可以摘录;不可以向客户报告严重缺陷,即使是已经修改的缺陷,开发中的缺陷也没有必要让客户知道;报告上可以列出一些缺陷,但必须是中级的缺陷,而且这些缺陷必须是修复的;报告上面的内容尽量要真实可靠;整个测试报告要仔细审阅,力争不给项目带来负面作用,尤其是性能测试报告。总之,外部测试报告要小心谨慎的编写。
二、论述2*12’
1.请论述为什么要进行软件测试,并列举历史上2~3个著名软件测试(缺陷)案例,说明测试重要性
软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情(,另一方面是确认软件以正确的方式来做了这个事情。第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。
爱国者导弹防御系统把“枪口”对准了自己人 美国迪斯尼公司的狮子王游戏软件的兼容性问题 售票系统性能问题
2.论述软件测试科学的发展历程 1957年之前-调试为主 20世纪50年代,计算机刚诞生不久,只有科学家级别的人才会去编程,需求和程序本身也远远没有现在这么复杂多变,相当于开发人员一人承担需求分析,设计,开发,测试等所有工作,当然也不会有人去区分调试和测试。
1957–1978-证明为主 当时计算机应用的数量,成本和复杂性都大幅度提升,随之而来的经济风险也大大增加,测试就显得很有必要了,这个时期测试的主要目就是确认软件是满足需求的,也就是我们常说的“做了该做的事情”。
1979–1982-破坏为主 我们不仅要证明软件做了该做的事情,也要保证它没做不该做的事情,这会使测试更加全面,更容易发现问题。
1983–1987-评估为主 人们提出了在软件生命周期中使用分析,评审,测试来评估产品的理论。软件测试工程在这个时期得到了快速的发展.1988–至今-预防为主 预防为主是当下软件测试的主流思想之一。测试不是在编码完成后才开始介入,而是贯穿于整个软件生命周期。3.论述软件缺陷的由来
软件缺陷的产生主要是由软件产品的特点和开发过程决定的。
软件本身:①需求不清晰,导致设计目标偏离客户的需求,从而引起功能或产品特征上的缺陷。②系统结构非常复杂,而又无法设计成一个很好的层次结构或组件结构,结果导致意想不到的问题或系统维护、扩充上的困难;即使设计成良好的面向对象的系统,由于对象、类太多,很难完成对各种对象、类相互作用的组合测试,而隐藏着一些参数传递、方法调用、对象状态变化等方面问题。③对程序逻辑路径或数据范围的边界考虑不够周全,漏掉某些边界条件,造成容量或边界错误。④对一些实时应用,要进行精心设计和技术处理,保证精确的时间同步,否则容易引起时间上不协调,不一致性带来的问题。⑤没有考虑系统崩溃后的自我恢复或数据的异地备份、灾难性恢复等问题,从而存在系统安全性、可靠性的隐患。⑥系统运行环境的复杂,不仅用户使用的计算机环境千变万化,包括用户的各种操作方式或各种不同的输入数据,容易引起一些特定用户环境下的问题;在系统实际应用中,数据量很大。从而会引起强度或负载问题。⑦由于通信端口多、存取和加密手段的矛盾性等,会造成系统的安全性或适用性等问题。⑧新技术的采用,可能涉及技术或系统兼容的问题,事先没有考虑到。
团队工作:系统需求分析时对客户的需求理解不清楚,或者和用户的沟通存在一些困难。不同阶段的开发人员相互理解不一致。对于设计或编程上的一些假定或依赖性,相关人员没有充分沟通。项目组成员技术水平参差不齐技术问题。算法错误:在给定条件下没能给出正确或准确的结果。语法错误:对于编译性语言程序,编译器可以发现这类问题;但对于解释性语言程序,只能在测试运行时发现。计算和精度问题:计算的结果没有满足所需要的精度。系统结构不合理、算法选择不科学,造成系统性能低下。接口参数传递不匹配,导致模块集成出现问题。
项目管理的问题:缺乏质量文化,不重视质量计划,对质量、资源、任务、成本等的平衡性把握不好,容易挤掉需求分析、评审、测试、等时间,遗留的缺陷会比较多。系统分析时对客户的需求不是十分清楚,或者和用户的沟通存在一些困难。开发周期短,需求分析、设计、编程、测试等各项工作不能完全按照定义好的流程来进行,工作不够充分,结果也就不完整、不准确,错误较多;周期短,还给各类开发人员造成太大的压力,引起一些人为的错误。开发流程不够完善,存在太多的随机性和缺乏严谨的内审或评审机制,容易产生问题。文档不完善,风险估计不足等。4.软件测试V模型
①绘制示意图
②阐述每个步骤是做什么 需求分析
即首先要明确客户需要的是什么,需要软件作成什么样子,需要有那几项功能
概要设计
主要是架构的实现,指搭建架构、表述各模块功能、模块接口连接和数据传递的实现等项事务。详细设计
对概要设计中表述的各模块进行深入分析,对各模块组合进行分析等。软件编码
按照详细设计好的模块功能表,编程人员编写出实际的代码。单元测试
按照设定好的最小测试单元进行按单元测试,主要是测试程序代码,为的是确保各单元模块被正确的编译,单元的具体划分按不同的单位与不同的软件有不同。集成测试
经过了单元测试后,将各单元组合成完整的体系,主要测试各模块间组合后的功能实现情况,以及模块接口连接的成功与否,数据传递的正确性等,其主要目的是检查软件单位之间的接口是否正确。根据集成测试计划,一边将模块或其他软件单位组合成系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。系统测试
经过了单元测试和集成测试以后,我们要把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞,等。验收测试
主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。