软件测试概念篇

概念篇

  • 一、软件测试是什么
    • 软件测试和研发的区别
  • 二、什么是需求
  • 三、什么是bug
  • 四、什么是测试用例
  • 五、开发模型
    • 敏捷开发
    • 敏捷流程
  • 六、测试模型
  • 总结

一、软件测试是什么

软件测试就是证明软件不存在错误的过程
软件测试就是为了证明程序能够正确运行

软件测试和研发的区别

1.软件开发中调试和测试的区别:
目的:
调试是开发人员查看自己写的代码是否实现想要的功能。
软件测试是测试人员查看软件是否实现的用户的需求。
参与人员:
软件测试:黑盒测试工程师,白盒测试工程师,开发人员(单元测试)。
软件调试:开发人员。
执行阶段:
软件调试只在开发阶段。
软件测试的阶段贯穿软件开发的整个生命周期。

2.技能要求,专业度
开发要求技能少,专业度高。
测试要求技能更广,深度低。

3.一个测试人员应该具备哪些素质?
一 踏实细心和积极主动
二 好奇心,怀疑一切
三 与他人良好交流的能力
四 持续不断的自我提高和总结能力
五 强烈的责任感

4.为什么要选择测试岗位?(兴趣,能力,责任感,压力。)
软件测试是一种趋势,它将在软件开发中占据越来越重要的位置;

测试和开发是两个关注点不一样的工作。开发的目标是实现功能,测试的目标是确定功能是否能够正常运作。我选择测试主要是因为在这个过程中可以“发现”和“分析",软件测试讲究的是思路,尝试各种思路去发现问题,我觉得我可以在这方面充分的利用自己的发散性思维;

就性格方面来讲我觉得我也比较适合软件测试,具有好奇心,善于怀疑,同时考虑问题也比较全面,我觉得这在测试过程中是必不可少的;

还有就是成就感,研发是一个从0到1的过程,而测试是从1到1的过程,是在原来1的基础上把1变为一个更强壮的1,前后可以有一个明确的对比,更能从中获得成就感,进而更有动力。

二、什么是需求

IEEE定义:软件需求是 (1)用户解决问题或达到目标所需条件或权能(Capability)。 (2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。 (3)一种反映上面(1)或(2)所述条件或权能的文档说明。它包括功能性需求及非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制。

总结来说:为了满足用户的期望规定的合同(文档,标准,规范)所需要的条件和权能。

软件开发的一个过程:

用户需求–>软件需求–开发编码–>测试–>运行上线。
软件需求由用户需求转化而来,它是经过对用户需求的验证(正确性,合理性),分析后,具体的功能实现的细节说明。

需求是开发人员开发的依据,也是测试人员测试的依据。

三、什么是bug

bug的起源是有一只虫子引起的。
软件错误的一般定义: 程序与规格说明之前不匹配 。
注意:准确的来说,当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。
当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。

软件需求规格说明存在并且合理,软件功能和软件需求不相符,是BUG;
如果软件需求不存在,用户需求存在并且合理,软件最终没有实现用户预期合理需求,是BUG。

四、什么是测试用例

测试用例其实是向被测试系统发起的一组集合,测试环境,测试步骤,测试数据,预期结果,标题,重要性,功能模块,优先级,执行方式。
例如:
软件测试概念篇_第1张图片
上图是对测试思路的整理,功能的测试点要写出来。
如下是一个很经典的水杯测试用例:
软件测试概念篇_第2张图片

五、开发模型

软件开发的生命周期:需求–计划–设计–编码–测试–运行维护
瀑布模型:
优点: –强调开发的阶段性; –强调早期计划及需求调查; –强调产品测试。
缺点:–风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。
螺旋模型:
这对于那些规模庞大、复杂度高、风险大的项目尤其适合。
但是需要更多地人员、资金和时间的投入。
增量模型,迭代模型:
软件测试概念篇_第3张图片

敏捷开发

轻文档,轻流程,重目标,重产出。

周期短,团队人员少,高质量可用的软件。

敏捷流程

角色:
PO(product owner),客户的代表方,整理客户需求,形成user story
SM(scrum master),项目经理,管理整个开发流程,保证敏捷开发流程的顺利实施
ST(scrum team)研发团队,各种技能人员组成,开发,测试,目标是交付一个高质量可用软件。

流程:
发布计划会议
迭代计划会议
每日例会
演示会议
回顾会议

六、测试模型

V模型:
软件测试概念篇_第4张图片
V模型是瀑布模型的变种,仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试。

W模型:
软件测试概念篇_第5张图片
W模型优点:尽早发现前期的问题,便于解决。
缺点:它的过程是串行的,不能够适应需求的变化,不能实现敏捷开发。

总结

你可能感兴趣的:(软件测试,软件测试)