测试思想-项目启动 项目启动过程

项目启动过程(摘录)

by:授客 QQ1033553122

 

1、选定测试组长

首先,测试组长在项目一启动就要确定;

其次,大多数场合中会先选定项目测试负责人-暂且称测试组长(也可能是测试经理)

然后,由选定的测试组长来决定测试组人选或者是测试组长和测试团队的上层管理者商量如何组建项目测试组,包括测试组的具体人选。

更为重要的原因是测试资源和开发资源的分配关系,虽然两者需要同时介入一个项目,但在前期对测试人员的需求会少些,测试组长可以先于测试组其他人员进入项 目,了解项目背景、审查项目有关文档并制定测试计划。这时并不需要很多的测试人员,此时项目组的测试人员还在其他项目的收尾工作上,虽然大部分开发人员已从那个项目抽出来了。开发人员和测试人员在项目上的投入存在一定的时间差。动态地平衡项目人力资源,能更充分地利用资源,提高生产力,创造更好的效益

 

1.1、测试组长人选

 

2、掌控项目背景

无论是做什么,要想成功,都必须弄清楚项目背景,软件测试也不例外

项目的基本要素包括项目范围、工期、质量和成本,如果进一步展开项目要素,它将包括项目的目标、客户和用户、范围、工期、预算和成本、质量、人员、材料设备、技术和合同管理等。即使在软件特定领域,软件项目的要素也离不开这些内容,而且这些内容也都是很重要的内容,只不过许多技术人员不关心预算、成本、合同等,甚至不关心客户。

在这里,讨论的焦点虽然集中在技术方面,但也绝对不能忽视客户或用户的需求,不能忽视软件开发成本和合同中的有关条款内容。

要掌控软件测试项目的背景,就要了解下列软件项目的要素及其相关的信息。

(1)用户:软件的用户是谁?是为个人服务,还是为中小企业服务,或者为大企业服务?用户是专业的技术人员,还是普通的教师、学生、公务员?如果是面向公务员.可进一步分析,是面向政府机关各层次的工作人员(包括高层领导、中层领导、办事员),还是只而向办事人员?面向不同层次的人员,对软件系统的界而、权限等有什么不同的特殊要求?

(2)目标:就是软件要真正解决的问题,或要实现的业务功能,如处理个人所得税网上申报的所有流程、网上购物、信用片认证、英语词汇学习等,非常具体、清楚

(3)范围:软件产品功能的范围和服务对象的范围。如个人所得税网上申报业务项目,只是完成中报、查询工作,还是否包括税率调赘通告、咨询、申诉、个税管理等功能?是为某个城市居民服务,还是包括农村居民?是为北京市服务,还是为全国服务?

(4)工期:项目的阶段划分、各个里程碑的日期等。项目什么时候启动?系统设计和编程又分别在什么时候完成?产品发布和市场宣传等日期是否己确定?

(5)项目类型:是长期性产品,还是一次性项目?是独立项目,还是多方合作的、综合性集成项目?是本地项目,还是外包项目?是企业应用系统,还是一般软件工具开发?如果是Web应用系统,也可以进一步分为以页面内容为中心、以数据库为中心、以应用逻辑(工作流)为中心等不同类型。

(6)软件平台:是单机,还是网络?是客户端软件,还是服务器端软件?是Windows,还是Mac, Linux, Solaris?是企业内部网络(Intranet),还是互联网(Internet)、无线移动网络?是微软公司Net平台,还是J2EE/J2SE/J2ME等?

(7)开发工具和语言:Visual Studio,还是Eclipse, PowerBuilder?是C++, C#,InvaASP_ ASP. PHP, VB等语言中的种,还是混合编程语言?

-----------------------------------------------------------------------

概念:客户和用户是两个不同的概念软件产品的使用者或软件服务接受者是用户(User ),客户((Customer)是更为广义的概念,是公司为实现目标所需的产品和过程而影响到的人,不仅包括接受产品或服务的组织或个人,而且包括潜在的客户,例如消费者、委托人、最终使用者、零售商、受益者和采购方等.当一个软件组织直接为用户服务,为特定的用户完成特定的项目时,这时客户和用户是同一个对象。但如果某个用户的产品是通过第3--软件承包商等委托给软件组织进行开发的,这时客户和用户则是分离的。

-----------------------------------------------------------------------

3、制定测试规范

为了保证后续的测试工作质量,需要制定软件测试规范。当然,对于一个软件组织来说,并不是等到每个测试项目到来时,才开始进行测试规范的制定,实际上一个规 范的软件组织,事先已有一套软件开发过程规范,这其中包括了软件测试的规范,但对于一个具体项目,可能要对组织定义的测试规范进行剪裁,从而获得适合本项 目的软件测试规范。不管是哪种情况,软件测试规范都是重要的,伴随着整个测试过程,规范着测试活动的行为,能确保测试工作的质量,进而确保软件产品的质 量。

一个完整的软件测试规范应该包括规范本身的详细说明,比如规范目的、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程/规范、指南、模板、检查表、培训、工具、参考资料等。这里主要讨论软件测试规范中实质性的内容,而不讨论一些附属性的内容(如规范目的、范围、文档结构、词汇表、参考信息、可追溯性等)

3.1、角色的确定

任何项目的实施,首先要考虑的是人的因素,对人进行识别与确认,软件测试尤其不能例外。在软件测试中,通常会把所有涉及人员进行分类以确立角色,并按角色进行职责划分。

举例如下,

测试思想-项目启动 <wbr>项目启动过程

 


 

3.2、进入准则

进入准则也就是对软件测试切入点的确立。根据软件测试的广义观点,软件测试伴随着整个软件开发生命周期中的活动,在软件过程的各个阶段都离不开验证和确认活动,因此软件项目立项并得到批准,就意味着软件测试的开始。对于各个阶段,也需要定义测试进入准则,见下面活动过程的描述。

3.3、输入项

软件测试需要相关的文档作为测试设计及测试过程中判断是否符合要求的依据和标准,包括需求描述、系统设计、程序代码及软件配置计划等文档资料。这些文档都是测试的输入项。

举例如下,

测试思想-项目启动 <wbr>项目启动过程

 

 

3.4、活动过程

a.制定测试计划

角色:测试设计人员,一般由测试组长、资深测试工程师担任

活动描述:

制定测试计划--收集和组织测试计划信息,并且创建测试计划

确定测试需求--根据需求规格说明书、质量计划等收集和整理测试需求信息,确定质量需求和测试目标

制定测试策略--针对测试需求,定义测试阶段、测试类型、测试方法、测试风险回避措施及所需的测试工具等。

建立测试通过准则--根据项目实际情况,为每一个层次的测试或每个测试阶段建立通过准则。

确定资源和进度--确定测试所需的软硬件资源、人力资源及测试进度

评审测试计划--根据同行评审规范,对测试计划进行同行评审

b.测试设计

c.开发测试工具和脚本

……

3.5、输出项

软件输出项较多,包括软件测试计划、测试用例,还包括测试缺陷记录、测试结果分析报告等。

举例如下:

测试思想-项目启动 <wbr>项目启动过程

 


 

3.6、验证与确认

验证和确认是一个过程,在这过程中,依据需求定义和产品规范,确定软件活动和产品是否满足所给定的要求和条件,判断产品中所实现的功能、特性是否满足客户的实际需求。

举例如下

测试思想-项目启动 <wbr>项目启动过程

 

 

3.7、退出准则

退出准则满足组织/项目的测试结束的标准

3.8、度量

软件测试活动达到退出准则的要求时,对于当前版本的测试活动就结束了。软件质量度量工作,一般SQA人员通过系列活动收集数据,利用统计学知识对软件质量进行统计分析,得出较准确的软件质量可靠性评估报告,提供给客户及组织内部的管理层

 

转载于:https://www.cnblogs.com/shouke/p/10158338.html

任务描述 相关知识 1. Runnable接口 2.两者结合使用 编程要求 测试说明 任务描述 本关任务:编写使用Callable接口重写call()方法,方法体为输出5遍“Thread.currentThread().getName() +“的call()方法在运行"”,循环结束后返回线程的名字。 相关知识 1. Runnable接口         在java中,Runnable 接口仅提供多线程编程的基本功能。它有很多限制。Callable 和 Future 接口解决了许多限制。   Runnable 接口用于指定一个打算由线程执行的类。它有一个单独的无参数方法,称为 run(),它必须被实现的类覆盖。这个接口的核心思想是为那些想要在代码仍在执行中执行的对象提供一个通用协议——换句话说,一个正在运行的代码段调用另一段代码而不被停止或终止(同时执行)。有一个名为 Thread 的类,它提供相同的功能,但不同之处在于它必须是子类(继承)才能使用。存在接口和类的原因是为了达到相同的目标,这是面向对象设计所遵循的建议:除非我们打算通过操作一个或多个类来改变它的含义,否则不应继承类。它的方法和增强它的属性。通过实现 Thread 类的对应接口,称为 Runnable,我们几乎可以摆脱扩展类(子类化)的重任,同时在我们的程序中获得线程实现的全部好处。Java API 文档也符合相同的想法:在大多数情况下,如果你打算覆盖 run() 方法而不是其他 Thread 方法,则应该使用 Runnable 接口。 2.两者结合使用 class MyThread implements Callable { @override public Object call() throws Exception { 业务代码 return xxx; } } public static void main(String[] args) { MyThread mt = new MyThread(); FutureTask futureTask = new FutureTask(mt); new Thread(futureTask).start(); try { // 获取call()的返回值 xxx = futureTask.get(); } catch {...} } 编程要求 根据提示,在右侧编辑器补充代码,完成使用Callable接口编写线程并获取线程的结果。 测试说明 平台会对你编写的代码进行测试: 预期输出: thread1的call()方法在运行 thread2的call()方法在运行 thread1的call()方法在运行 thread2的call()方法在运行 thread1的call()方法在运行 thread1的call()方法在运行 thread1的call()方法在运行 thread2的call()方法在运行 thread2的call()方法在运行 thread2的call()方法在运行 thread1返回结果:thread1 thread2返回结果:thread2 开始你的任务吧,祝你成功!package step2; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; // ---------------------Begin------------------------ //tips: 输出语句为:Thread.currentThread().getName()+"的call()方法在运行" //定义一个实现Callable接口的实现类,类名必须命名为MyThread_callable // ---------------------End------------------------ public class CallableExample { public static void main(String[] args) throws InterruptedException, ExecutionException { // 创建Callable接口的实现类对象 MyThread_callable myThread3 = new MyThread_callable(); // 使用FutureTask封装Callable接口 FutureTask<Object> ft1 = new FutureTask<>(myThread3); // 使用Thread(Runnable target ,String name)构造方法创建线程对象 Thread thread1 = new Thread(ft1, "thread1"); // 创建并启动另一个线程thread2 FutureTask<Object> ft2 = new FutureTask<>(myThread3); Thread thread2 = new Thread(ft2, "thread2"); // ---------------------Begin------------------------ // 调用线程对象的start()方法启动线程 // 可以通过FutureTask对象的方法管理返回值 // ---------------------End------------------------ } }
最新发布
12-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值