中小型公司针对一般类应用软件的测试过程
中小型公司针对一般类应用软件的测试过程
在这里,强调两点,一是目前国内的中小型公司由于处在起步阶段,虽然已经有了对开发的软件要进行测试验证的概念,但是对其的投入力度还不大,很多这类的公司只配备了1-2名的测试员。连基本的测试团队(最少4人)都不具备,这在一定程度上限制了测试人员自身的发展。第二,一般类应用软件指OA软件、MIS系统、轻量级的电子政务网站等。
一般的,软件测试要经历的过程为:单元测试、集成测试、系统测试、验收测试。具体的,本人在工作中将之定义为:单元测试、模块内功能测试、模块间功能测试、软件系统测试、Beta测试、正式验收测试。
具体解释如下:
单元测试:这里的单元测试进行的是编写的代码功能检测,一般由研发员互相进行测试,测试员可参与的有代码审查,利用工具进行复杂度分析等,比如Logiscrope等,一般很少的中小型公司会进行代码走查,因为这个很费人力,特别是在人力资源紧张的时候(开发嵌入式软件除外)。
模块内功能测试:现在的软件研发都是分模块进行的,每人负责一些模块,只有某些比较核心的模块才由几个人共同完成,但是即使这样,一般也是将这些核心模块进行细分,也就是说每人完成模块内的某些功能,因此,完成可以从具体的功能入手,等每个功能一编译通过能正常运行就可以提交验证。此过程已经可以开始进行UI测试,为的是是界面模式统一。很多时候,我们都将UI测试忽略或者将之归类入到系统测试阶段进行。其实,像这么“鸡肋”的东西是越早进行规范越能节省时间,不单单是测试员的时间,也是研发员的。在这里的测试用例可以从UML中获取行为图,参考进行编写本模块的用例。
模块间功能测试:这个步骤对应于集成测试阶段,根据目前的测试经历推荐使用从底向上的模块集成,这个相对于从顶向下的方法便利于贴近项目的研发进度,节省人力,能更好的定位缺陷被暴露位置,此时的测试用例也不用写的太复杂,对测试员有个循序渐进的加深认识的过程。测试用例可以从UML中获取交互图,从中编写模块间的用例。
软件系统测试:此阶段的特征是--核心功能已完成,其余模块编码80%完成(用80%只是代表此时已经无其他技术障碍,可测的功能基本可以进行)。这时,可进行的测试有UI测试(最后一次的UI测试,以后无特殊需求可以少测)、安全测试(一般类应用软件不如特殊应用软件般对安全性有过高的要求,因此可以放在项目中后期进行)、性能测试等。另外,在此测试阶段中包含了Alpha版的发布与测试。可以利用正交法、场景法互相补充来扩充完善测试用例。本人认为,场景法的利用可以从业务流程中获取,这个比较主观,正交法就相对客观些,这两者的互补性将可以使测试用例更完善。
Beta测试:发布一个版本提交用户使用,直到验收开始的这一阶段所进行的用户使用测试。这时,可进行安全测试、性能测试等。
正式验收测试:依据之前各个阶段的测试安排的最为周密的一次系统测试,提交测试报告,签字确认通过,测试组正式退出该项目,以后用户的的新需求或者新版本发布所需的测试通过测试需求单进行提交于测试组进行安排测试。而在此项目实施了之后发现的Bug由维护小组(一般是技术支持人员)反馈给研发员进行软件的Bug修复。
以上的步骤糅合了基于W模型、H模型、UML用例模型还有些测试用例编写的一些具体应用,特别突出的是测试部的独立性。一般的,研发在概要编写与详细设计时已经开始某些模块的某些功能的编写,而这些,都会反应在UML图中,因此,可以从UML中获取静态图,从而进行单元测试的用例编写;另外,能够先完成的功能编写耦合性一般不高,而且很多只是与数据库进行交互即可的功能在完成时就可以验证其正确性,这些测试用例也可以从UML图中的行为图或使用了某些工具(PB、Erwin等)设计出来的数据库模型获取要测试的用例;其余的阶段类似。
假若要套用CMMI等级的话,这里要求企业内部至少满足CMMI-2级(管理级)。即使到今天,相信还有不少的企业还处于缺乏项目开发文档,测试介入于编码即将完成或者是已实施过程中的阶段。这就又要求测试员兼任起SQA的职责,除了建立一套比较完整的测试管理流程外还要改进研发的管理流程。
注:
1、鸡肋:在软件研发中专指无技术含量或技术含量不高却又要花费大量时间进行的项目。
2、测试需求单(参考评测机构的样版):
软件基本情况 |
|||||||
软件名称(中文) |
版本号 |
||||||
软件名称(英文) |
应用领域 |
||||||
软件类型 (软件类型只能在第1 ~ 4类中选择一类,一旦选取某一类后,可在该类中选择多个选项。) |
□ |
1.系统软件: □操作系统 □中文处理系统 □网络系统 □嵌入式操作系统 □其它 |
|||||
□ |
2.支持软件: □程序设计语言 □数据库系统 □工具软件 □网络通信软件 □中间件/构件 □其它:______________ |
||||||
□ |
3.应用软件: □行业管理软件 □办公软件 □模式识别软件 □图形图像软件 □控制软件 □网络应用软件 □信息管理软件 □数据库管理应用软件 □安全与保密软件 □嵌入式应用软件 □教育软件 □游戏软件 □其它:______________ |
||||||
□ |
4.其它: |
||||||
软件规模 |
□ 大(>50万行) □ 中(<50万行) □ 小(<10万行) |
||||||
开发语言 |
|||||||
软件架构 |
□ 单机版 □ C/S □ B/S □ 其它:____________________ |
||||||
软件简介: 1. 主要功能与用途:
2. 关键技术和特点:
|
|||||||
测试要求 |
|||||||
测试环境要求 |
客户端 |
硬件 |
终端配置 |
||||
CPU: 内存: 硬盘: 其它: |
|||||||
软件 |
操作系统: 浏览器: 其它支撑软件: |
||||||
服务器端 |
硬件 |
服务器配置 |
|||||
CPU: 内存: 硬盘: 其它: |
|||||||
软件 |
操作系统: 数据库: 中间件: 其它支撑软件: |
||||||
网络类型 |
|||||||
其它 |
|||||||
测试用途 |
□ 确认测试 □ 项目验收 □成果鉴定 □ 比较测试 □其它:________________ |
||||||
测试特性 |
□功能性 □可靠性 □易用性 □维护性 □性能 □可移植性 □产品描述 □用户文档 □其它: |
||||||
客户具体需求 |
|||||||
测试时间要求 |
|||||||
客户特殊要求 |
□ 回归测试,次数:____________。 □ 现场测试,理由:_______________________________________。 □ 其它特殊要求或说明(如技术、样品、保密等): |
||||||
送测样品(文档和介质)清单 |
|||||||
文档 |
□ 需求说明书 □ 用户手册 □ 其它:__________________________ |
||||||
介质 |
□ 光盘 □ 软盘 □ 其它:________________ |