51Testing软件测试论坛

标题: 软件开发测试流程包括哪些,软件测试何时介入,为什么 [打印本页]

作者: hopegenius    时间: 2010-6-21 13:56
标题: 软件开发测试流程包括哪些,软件测试何时介入,为什么
如题
作者: 投缘    时间: 2010-6-21 15:08
你了解V模型吗?可以看一下那个模型
作者: msnshow    时间: 2010-6-21 19:57
从需求分析开始介入,不过多数情况是在软件开发快结束时才介入的,现实如此
作者: hopegenius    时间: 2010-6-22 08:50
标题: 回复 3# 的帖子
为什么要从需求分析开始介入呢?

需求分析                      验收测试
    概要设计              系统测试
        详细设计      集成测试
             编码  单元测试

从这个V模型型看,前一个“\”好像是开发介入阶段,后一个“/”好像才应该是测试介入阶段吧

[ 本帖最后由 hopegenius 于 2010-6-22 09:05 编辑 ]
作者: chengning    时间: 2010-6-22 11:03
标题: 回复 4# 的帖子
楼主没有理解到位哈
V图说明了
在编码阶段的所做的测试是相对应的单元测试
详细设计阶段所做的测试是集成测试



从上图整体来看软件的开发过程有; 需求分析、概要设计、详细设计和编码  而在这4个阶段都要进行测试。所以了测试介入即测试最早开始的时间是在需求分析阶段
作者: hopegenius    时间: 2010-6-22 11:10
标题: 回复 5# 的帖子
需求分析的意思好像是在开发一款软件之前做的调查吧,看这款软件有没有开发的价值
这个阶段,为什么要测试介入,有什么意义呢?
作者: chengning    时间: 2010-6-22 14:49
楼主好像不是学软件或计算机的吧 建议你看看http://bbs.51testing.com/thread-209521-1-1.html中 软件工程思想  前面几章的知识 和一些测试的基础知识  会对你有帮助的
作者: 千里    时间: 2010-6-22 16:08
标题: 回复 5# 的帖子
chengning理解得不错
作者: qianniaozmj    时间: 2010-6-22 16:12
标题: 回复 6# 的帖子
我理解的哈 需求是程序员做的 测试人员介入 可以检测这个需求是否做得合理到位。同时需求阶段介入,可以根据客户需求信息作出验收测试计划。
作者: chengning    时间: 2010-6-23 13:55
标题: 回复 9# 的帖子
需求不是开发做的
需求是需求人员从客户那里得到的客户的需要。然后再把这些需要进行专业化的规范后递交给项目负责人等。然后再由项目负责人、开发、测试等研究出该需求的可行性方案并对其进行风险评估后得到一个待实施的方案。这个方案就是需求。
需求是开发的大纲。需求也是测试人员的标准。
个人理解的 。供大家讨论。
作者: hopegenius    时间: 2010-6-23 21:41
原帖由 chengning 于 2010-6-23 13:55 发表
需求不是开发做的
需求是需求人员从客户那里得到的客户的需要。然后再把这些需要进行专业化的规范后递交给项目负责人等。然后再由项目负责人、开发、测试等研究出该需求的可行性方案并对其进行风险评估后得到一个待 ...

你说的这些我都明白,但我还是不理解需求分析时测试人员为何要进入。
或许是因为软件测试的目的是为了尽早的发现问题?所以在一开始就需要测试进入?
作者: zhangting85    时间: 2010-6-24 09:44
标题: 回复 11# 的帖子
首先,先修正一下4楼的说法,以便理解。
“在编码阶段的所做的测试是相对应的单元测试
详细设计阶段所做的测试是集成测试

从上图整体来看软件的开发过程有; 需求分析、概要设计、详细设计和编码  而在这4个阶段都要进行测试。所以了测试介入即测试最早开始的时间是在需求分析阶段

并不是这样子。在V模型中:
需求分析、概要设计、详细设计和编码4个阶段都需要进行测试,而对应的测试工作并不是在这4个阶段做的。而是这4个阶段之后的4个测试阶段来做。

“在编码阶段的所做的测试是相对应的单元测试
详细设计阶段所做的测试是集成测试”
这两句话应该反过来就对了,单元测试是测试编码阶段的工作是否正确,集成测试是测试详细设计阶段的工作是否正确。
在前面的4个阶段,测试人员虽然介入了,但并不是做测试执行的工作,做什么工作我在第二个问题里再解释。

然后,第二个问题,为什么一开始就需要测试进入。
这有两点原因,

第一点,是成本的问题,在传统的软件工程流程中(非敏捷),修复一个bug越早,其成本越低。在需求阶段修复bug只需要改需求文档,编码阶段修复bug只需要改代码,而在测试阶段修复bug则需要测试员测一遍,提交给开发,开发修复,再提交给测试确认,成本大大增加(这里还没有算上项目外部人员的成本,比如销售做了一个demo,但是因为这个bug要修改这个demo了等等,也没有算上客户因为一个bug受到的损失的成本等等)。解决这个问题,有两种方法,第一种方法是尽早的发现bug,所以测试员需要在项目的前期就介入,一旦发现需求设计就有问题可以尽早提出来修复。第二种方法是降低项目后期修复bug的成本,这就是我们通常说的敏捷开发所解决的问题。

第二点,是为了测试人员尽早的对测试进行设计。在需求分析阶段,我们可以确定验收测试要验收哪些测试点,在概要设计阶段,我们可以确定系统测试要验证哪些功能点。依此类推,每个阶段都有一个对应关系。而为了尽早做测试的准备,测试人员就需要尽早介入。我们的测试文档都必须在前4个阶段设计好,以节约时间。

[ 本帖最后由 zhangting85 于 2010-6-24 09:46 编辑 ]
作者: hopegenius    时间: 2010-6-24 16:31
原帖由 zhangting85 于 2010-6-24 09:44 发表
首先,先修正一下4楼的说法,以便理解。
“在编码阶段的所做的测试是相对应的单元测试
详细设计阶段所做的测试是集成测试

从上图整体来看软件的开发过程有; 需求分析、概要设计、详细设计和编码  而在这4个阶段 ...

那依你的意思,“需求分析”就是“需求设计”了?
如果是“需求设计”那这就好理解,为什么测试员要在“需求分析”时就进入了,
但是,“需求分析”就是“需求设计”吗?在字面意思上,我不能确定,这是正确的。
作者: zhangting85    时间: 2010-6-25 09:33
标题: 回复 13# 的帖子
你在6楼说的概念“需求分析的意思好像是在开发一款软件之前做的调查吧,看这款软件有没有开发的价值。这个阶段,为什么要测试介入,有什么意义呢?”

这个调查阶段在标准的软件工程概念里通常叫做“可行性研究”。
至于测试人员能在可行性研究阶段做的工作,仍然是有的。我过去曾接触到过一个做过可行性研究的项目,项目的内容是把一套很老的系统用java重构,并且增加一些新的功能。客户要求在X个月里做完,但是我们不确定这个项目的规模是不能贸然答应的。然后,公司就派了一些技术人员去客户方做这种可行性的研究,其中有项目经理,也有测试组长。他们到了客户方公司之后就做了一个事情,了解需求,然后分析是否可能在客户规定的时间里做完,并且分析需要的成本,以及潜在的风险。这个时候不仅是需要开发估算开发成本,同样测试成本等等也需要估算。最后再决定公司是否接这个项目。

而需求分析就会对现有的实际需求进行分析,并确定软件需要实现的需求。有的项目会把这个阶段再细分成两步,先确定实际需求,由业务人员出一个业务需求文档,再确定软件需求,有开发人员出一个软件需求文档。你可以叫他需求设计,或者其他你觉得可以更容易理解的名称。一般上不同的人都会有一些不同的叫法。
作者: havards    时间: 2010-6-25 10:44
其实你只要知道在需求分析时,测试人员需要做什么就明白了。

1.需求分析时,测试人员需要理解需求的含义,准确的说这个需求是什么意思,要达到什么效果,因为理解不清楚,后来就会导致设计和需求不一致,测试理解的和需求不一致,后果可知。
2.识别那些需求是可测试的,哪些是不可测试的,哪些可以做自动化测试,因为有开发的在,可以一起讨论。
3.知道为什么进行需求分析吗,因为后期发现的大部分严重问题都是需求不明确引入的,这下你应该明白了需求的重要性了吧?
作者: sleepygirl    时间: 2010-6-25 10:58
强烈同意15楼,呵呵
作者: msnshow    时间: 2010-6-26 23:59
其实有没有学过软件工程,大家都应该能想得到,软件产品的质量保证,就得从需求分析开始,需求没做好,那么软件产品的风险就越大
作者: linuxer0503    时间: 2010-6-27 18:49
大家说得很好,其实很简单,做什么事之前先要了解做什么,如果做什么都不知道怎么能做好这件事
作者: 联盟新秀    时间: 2010-6-27 22:26
原帖由 chengning 于 2010-6-22 11:03 发表
楼主没有理解到位哈
V图说明了
在编码阶段的所做的测试是相对应的单元测试
详细设计阶段所做的测试是集成测试



从上图整体来看软件的开发过程有; 需求分析、概要设计、详细设计和编码  而在这4个阶段 ...

很不错
作者: mymarvell    时间: 2010-6-28 23:09
越早介入越好 ,不过具体介入时间还是要各个公司有具体安排。。。
作者: 千里    时间: 2010-7-3 13:30
理论说项目启动测试就可以介入
实际还要看公司具体测试流程和人力等因素
作者: chengning    时间: 2010-7-7 12:28
在国内 真的在需求阶段就让测试介入的公司不是很多吧  唉  我们公司就不是
作者: lcw_1981    时间: 2011-7-24 10:25
十二楼的观点相当正确,感谢。
作者: Mr.Du    时间: 2011-7-24 22:30
楼主   我现在还是51testing的学员没有任何的工作经验  以下所说的仅供参考 如有错误请谅解
软件开发过程可以分为 计划→需求分析→概要设计(HLD)→详细设计(LLD)→编码;
至于测试的加入那要看公司的研发流程   一般有:瀑布、双V、RUP····;
我比较熟悉的只有双V和瀑布   我就拿着这两个举例测试的介入;
瀑布:   瀑布模型测试人员一般会在编码之后介入   
    优点是:这样做的好处是公司能最大程度上的节省时间与资源   
            在这公司测试人员不会太多而且一个测试人员往往要接手多个项目;
    缺点是:在项目发布时还有许多BUG来不及修复;
双V:   双V模型强调的是: 尽早测试(尽早准备、尽早执行)、全面测试(文档、代码)、全过程测试(测试参与到开发过程中、对测试过程全程跟踪)、测试是独立的、迭代的。
        双V模型需要从需求分析开始介入对应的是:需求分析(系统测试)→概要设计(集成测试)→详细测试(单元测试)→编码(代码审查);
    优点是:测试时间充足、软件质量高;
    缺点是:这个我不太清楚  嘿嘿;
   双V模型详细的资料你可以看下这个帖子http://bbs.51testing.com/thread-88193-1-1.html
作者: 小蘑菇    时间: 2011-8-30 21:36
谢谢总结
作者: wyqsht    时间: 2011-12-20 22:00
再找到新工作,就好好学习了。后悔啊




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2