(User Guide)
1. 前言
软件测试在开发软件的过程中能够系统的监督和评估项目的各个方面,以确保质量标准,分析并确定产品是否满足客户的需求和期望的所有活动。软件测试的首要目的就是保证软件质量,确保产品满足设计的要求和客户的需求,同时降低软件的开发成本和维护成本,并最终签发产品。
在开发过程中,测试也是开发进度和质量的主要度量标准之一。同等数量代码与功能模块中被发现的Bug的数量、程序性能瓶颈分析结果等都可以被用来衡量程序员开发工作优劣。是否能够通过所有的测试方案也是判断相应功能模块的开发工作是否全部完成的主要标志。
测试还对开发团队灵活适应市场、客户等需求的变化有重要的意义。如果建立了完整的测试方案并实施了高效率的自动化测试,那么当程序员对程序进行修改、重构后,程序员能够迅速通过运行所有相关测试案例来确定其所做的修改与重构是否正确、是否因为修改部分代码而导致程序的其他部分出现问题。如果没有完备的测试,由于修改或重构程序引起的其他程序的错误将被推迟发现,进而大大增加修正错误的成本。
高质量的测试能够帮助降低软件的开发成本。由于在软件开发过程中,修改程序、修复缺陷的成本会随着开发进度不断增大。高质量的测试能够尽早的发现程序中的缺陷,使之被及时修复,因此能够帮助降低开发后期发现重大缺陷的几率,降低软件开发在成本与进度上的风险。
-1-
2. CVS实现源代码管理
2.1 什么是CVS
CVS(Version Control System)即版本控制系统。用来记录源文件的历史信息。甚至二进制文件,媒体文件等。
软件测试流程
例如,当软件修改时有时会产生Bugs,并且你可能在做这次修改后很长时间不会发现这些Bugs。使用CVS,你可以容易地回顾老的代码版本去发现哪一次的修改导致这些问题。有时候这样会非常有帮助。
你可能会保留你每一次的代码版本,这可能会浪费你很多的代码空间。CVS 使用种聪明的办法保存你的多个版本在一个文件中。它仅仅保留版本间的不同内容。
它可以协助一组人共同开发一个工程。如果你是一个项目中的一组成员之一,CVS也能够帮助你。除非
你特别仔细,你很容易覆盖其他人的工作。一些编辑器,例如GNUEmacs,试图去判定一个文件是否被两人同时修改。不幸的是,如果一个人使用其它的编辑器时,这个安全方式将不再有效。CVS使用让不同开发者独立工作的方式解决了这个问题。每一个开发者的工作都在他自己的目录内,并且CVS将在每个开发者的工作完成后进行合并工作。
2.2基本概念
仓库(Repository)
CVS的仓库存储全部的版本控制下的文件copy,通常不容许直接访问,只能通过cvs命令,获得一份本地copy,改动后再check in(commit)回仓库。而仓库通常为与工作目录分离的。CVS通过多种方式访问仓库。每种方法有不同目录表示形式。
数据如何存放在repository中:随着CVS版本的不同,存放结构会发生变化,一般情况下用户无需了解数据到底是如何存放的。
修订版(Revision)
每一个file的各个revision都不相同,形如1.1, 1.2.1,一般1.1是该文件的第一个revision,后面的一个将自动增加最右面的一个整数,比如1.2, 1.3, 有时候会出现1.3.2.2,这是因为在branch1.3.2之后重新
命名了revision。revision总是偶数个数字。一般情况下将revision看作时CVS自己内部的一个编号,而tag则可以标志用户的特定信息。
标记(Tag)
用符号化的表示方法标志文件特定revision的信息。通常不需要对某一个孤立的文件作tag,而是对所有文件同时作一个tag,以后用户可以仅向特定tag的文件提交或者checkout。另外一个作用是在发布软件的时候表示哪些文件及其哪个版本是可用的;各文件不同revision可以包括在一个tag中。如果命名一个已存在的tag 默认将不会覆盖原来的;
分支(Branch)
当用户修改一个branch时不会对另外的branch产生任何影响。可以在适当的时候通过合并的方法将两个版本合起来;branch总是在当前revision后面加上一个偶数整数(从2开始,到0结束),所以branch总是奇数个数字,比如1.2后面branch为1.2.2,该分支下revision可能为1.2.2.1,1.2.2.2,...
冲突(Conflict)
完全是纯文本的冲突,不包含逻辑上的矛盾,比如CVS不能解决如下问题:某人修改了函数f的参数,而另外一个人在另外一个地方用老的参数调用该函数。文本冲突需要用户自己参与解决,CVS无法自动解
决。
WinCVS是CVS的一个客户端软件,它运行在Windows上,采用图形化方式登陆CVS服务器和CVS相关的操作与管理,不要学习复杂的cvs命令。企业内部都采用Linux/Unix做服务器,用Windows做客户端,所以WinCVS与CVS服务器是目前应用最广泛的版本控制与管理的组合。
详细使用WinCVS的方法,见“WinCVS操作说明”。
-3-
3. Bugzilla实现缺陷跟踪管理
3.1 目的
缺陷能够引起软件运行时产生的一种不希望或不可接受的外部行为结果,软件测试过程简单说就是围绕缺陷进行的,对缺陷的跟踪管理一般而言需要达到以下的目标:
n 确保每个被发现的缺陷都能够被解决;这里解决的意思不一定是被修正,也可能是其他处理方式(例如,在下一个版本中修正或是不修正),总之,对每个被发现的BUG的处理方式必须能够在开发组织中达到一致;
n 收集缺陷数据并根据缺陷趋势曲线识别测试过程的阶段;决定测试过程是否结束有很多种方式,通过缺陷趋势曲线来确定测试过程是否结束是常用并且较为有效的一种方式。
n 收集缺陷数据并在其上进行数据分析,作为组织的过程财富。
3.2 Bug描述
从狭义上说,Bug是指软件开发中的错误或缺陷。广义来说,Bug也包括意见和建议等。"只要有软件开发,就会有Bug存在"。对于Bug的管理和控制是保证项目开发质量的重要依据。Bug系统就是基于此需求开发的,它记录一个Bug从最初的登记到最后消亡的整个生存周期,通过对Bug的管理,可以保证提供降低开发成本、提高产品质量和缩短开发周期,将一些错误消灭于萌芽状态。
Bug是该系统中最重要的概念,可以把Bug理解为任何软件中的影响软件质量的所有部分,而不仅仅是导致程序运行失败的程序片断。
3.3 Bug管理流程
Reassign
3.4 操作说明
3.4.1 用户登录及设置
3.4.1.1用户登录
1)用户输入亚太公司Bugzilla客户端地址10.101.0.133/。
2)进入注册页面,输入用户名和密码即可登录。用户名为Email 地址,初始密码为服务端发E-mail通知,用户可以修改初始密码。登录成功后自动进入查询页面Search for bugs。
3)如忘记密码,输入用户名, 点击【submit request】,根据收到的邮件进行重新设置。
3.4.1.2修改密码及设置
1)Login登录后,【Edit prefs】->【account settings】进行密码修改。
2)【Edit prefs】->【email settings】进行邮件设置。
3)【Edit prefs】-> 【permissions】进行权限查询。
3.4.2 Bug的处理
3.4.2.1、报告Bug
一、测试或开发人员报告Bug
1.请先进行查询:根据要求选好各个参数,点击Search,就会出现一个bug 的列表。这是所有的人存在数据库中的bug。若要查询自己曾经输入的bug,点击页面下方的my bugs链接。还可以点击Report链接,可以得到各个bug的状态列表。如果要查看bug的详细信息,可以点击该bug的序号。
2. 确认要提交的bug报告不会在原有记录中存在,若已经存在,不要提交,若有什么建议,可在原有记录中增加注释Additional Comments,告知其属主,让bug的属主看到这个而自己去修改。
3.若Bug不存在,创建一份有效的bug报告后进行提交, 操作如下:
4.操作:点击New,选择产品后,填写下表。
-5-