章一 软件测试的背景

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1485137 章一 软件测试的背景一、软件失败的术语缺点defect,偏差variance,故障fault,失败failure,问题problem,矛盾inconsistency,错误error,特殊feature,事件incident,缺陷bug,异常anomaly。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1485137

章一 软件测试的背景


一、软件失败的术语
缺点defect,偏差variance,故障fault,失败failure,问题problem,矛盾inconsistency,错误error,特殊feature,事件incident,缺陷bug,异常anomaly。
二、软件缺陷的定义
1、产品说明书(product specification):是软件开发小组的一个协定。它对开发的产品进行定义,给出产品的细节、如何做、做什么、不能做什么。
满足下列5个规则之一才能称发生了一个软件缺陷(software bug):
1)软件未出现产品说明书要求的功能;
2)软件出现了产品说明书指明不应该出现的错误;
3)软件实现了产品说明书未提到的功能;
4)软件未实现产品说明书虽未明确提及但应该实现的目标;
5)软件难以理解、不易使用、运行缓慢。
注意:在运用这五条测试规则时应记住下面这几点:要全面,最重要的是要客观评价,并非所有测试发现的缺陷都要修改。
2、导致软件缺陷的最大原因是产品说明书。
在许多情况下,说明书没有写。其它原因是说明书不够全面、经常修改,或者整个开发小组没有很好的沟通。
为软件做计划是极其重要的,如果没做好,软件缺陷就会出现。
软件缺陷的第二大来源是设计。
三、软件测试员的工作:
软件测试员的目标是发现软件缺陷,尽可能早地找出软件缺陷,并确保其得以修复。
大多数成熟的公司都把软件测试视为高级技术工程职位。
四、软件测试员应具备的素质:
1)他们是群探索者;
2)他们是故障排除员;
3)不放过任何蛛丝马迹;
4)具有创造性;
5)追求完美者;
6)判断准确;
7)注重策略喝外交;
8)善于说服。


章二  软件开发的过程


要想成为好的软件测试员,至少要对软件开发的全过程有个总体了解。
一、软件设计文档
1)结构文档:描述软件整体设计的文档,包括软件所有主要部分的描述以及相互之间的交互方式。
2)数据流图:表示数据在程序中如何流动的正规示意图。有时称为泡泡图(bubble chart),因为它是用圆圈和线画的。
3)状态转换图:把软件分解为基本状态或者条件的另一种正规示意图,表示不同状态间转换的方式。
4)流程图:用图形描述程序逻辑的传统方式。
5)代码注释:便于维护代码的程序员轻松掌握代码的内容和执行方式。
二、测试文档
它是完整的软件产品的一部分。
1)测试计划(test plan):描述用于验证软件是否符合产品说明书和客户需求的整体方案。包括质量目标、资源需求、进度表、任务分配、方法等。
2)测试用例(test cases):列举测试的项目,描述验证软件的详细步骤。
3)缺陷报告(bug reports):描述执行测试用例找出的问题,通常记录在数据库中。
4)测试工具和自动测试(test tools and automation):必须有文档记录。
5)度量、统计和总结(metrics,statistics,summaries):测试过程的汇总。采用图形、表格和报告等形式。
三、软件产品的组成部分:
帮助文件、用户手册、样本和示例、标签和不干胶、产品支持信息、图标和标志、错误信息、广告和宣传材料、安装、说明文件。
错误提示信息是软件产品最容易忽视的部分,通常有程序员而不是训练有素的高手来写。
四、软件项目成员
1)项目经理、程序经理、监制人员:自始至终驱动整个项目。通常负责编写产品说明书、管理进度、进行重大决策。
2)体系架构师、系统工程师:产品小组中的技术专家。
3)程序员、开发人员或者代码制作者:设计、编写软件并修复软件中的缺陷。
4)测试员、质量保证员(Quality Asssurance,QA):负责找出并报告软件产品中的缺陷。
5)技术作者、用户协助专员、用户培训专员、手册编写员、文案专员:编制软件产品附带的文件和联机文档。
6)配置管理员、构建员:负责把程序员编写的代码及技术作者些的全部文档资料组合在一起,合成为一个软件包。
五、软件开发生命周期模式
1)大爆炸模式:优点是简单,计划、进度安排和正规开发过程几乎没有,所有精力都花在开发软件和编写代码上。
2)边写边改模式:适合意在快速制作而且用完就扔的小项目。
3)瀑布模式:强调产品的定义,各步骤分立无交叉,无法回溯。开发过程有完整细致的说明。缺点是测试仅在最后执行。
4)螺旋模式:总体思想是一开始不必详细定义所有细节。从小开始,定义重要功能,努力实现这些功能,接受客户反馈,然后进入下一阶段,重复上述过程,直至得到最终产品。
螺旋模式每一次循环包括6个步骤:
1)确定目标、可选方案和限制条件;
2)明确并化解风险;
3)评估可选方案;
4)当前阶段开发和测试;
5)计划下一阶段;
6)确定进入下一阶段的方法。
螺旋模式中包含了一点瀑布模式(分析、设计、开发和测试的步骤)、一点边写边改模式(螺旋模式的每一次)和一点大爆炸模式(从外界观察)。
六、敏捷软件开发(Agile Software Development)
敏捷软件开发也叫快速原型开发、极限编程开发 或者 进化开发等。
敏捷软件开发的目的,是:
1)通过过程和工具理解个人和交流的作用;
2)通过全面的文档理解运行的软件;
3)通过合同和谈判得到客户的协作;
4)在计划的执行中做出对变更的响应。
也即,在一方面有价值的时候,更应评价它在另外一方面的价值。
 

目录
相关文章
|
测试技术 程序员 安全
带你读《软件测试(原书第2版)》之一:软件测试的背景
本书涵盖了软件测试的方方面面:软件测试如何适应软件开发过程,基本的和高级的软件测试技术,在常见的测试任务中运用测试技能,使用自动化提高测试的效率,测试工作的计划和文档化,有效地报告发现的问题,衡量测试工作的成效和产品的改进,测试和质量保证的区别,寻求软件测试员的工作。
|
6月前
|
Cloud Native Go
软技能的重要性:在面试中展示团队合作与沟通能力
软技能的重要性:在面试中展示团队合作与沟通能力
69 0
|
7月前
|
前端开发 JavaScript Java
软件开发和软件测试方向,到底选择那个会更好?
在选择职业方向时,开发和软件测试都有其独特的优势和挑战。开发方向通常与软件编码和功能设计相关,这需要深厚的编程技能和创造力。开发人员通常享有更高的薪酬和职业晋升机会,但也面临更多的工作压力和截止日期。另一方面,软件测试职业侧重于发现和修复软件中的问题,需要系统性思维和详细的测试技巧。测试人员通常拥有更好的工作生活平衡,但薪酬和职业晋升机会相对较低。 选择哪个方向更好取决于个人兴趣和职业目标。如果你喜欢解决复杂问题、编写代码并参与项目的全面开发过程,开发方向可能更适合你。如果你更喜欢分析和发现软件中的问题、确保产品质量,那么软件测试可能更适合你。此外,考虑你的技能和职业目标,以确定哪个方向更有
136 0
|
9月前
|
算法 程序员
在你写的代码中寻求安宁的艺术
在编程中,代码的质量和可读性对于程序员来说至关重要。而寻求代码中的安宁,则是一种注重代码的整洁和优雅,追求高效和可维护性的艺术。本文将探讨在编写代码时如何寻求代码中的安宁,并提供一些实践建议。
48 0
|
存储 人工智能 自然语言处理
计算机编程背景
随着时间与需求的变化,因德军engima(英格玛)机器加密,然图灵研究了engima底层,用机器破译机器加密,推动了后来的,诺曼底登陆(攻守易势)
139 1
计算机编程背景
|
前端开发 程序员 Go
自动化的艺术
自动化的艺术
118 0
自动化的艺术
|
架构师 测试技术 项目管理
软件测试有哪些前景?
说在前面,这是个不进步就滚蛋的行业! 问软件测试有哪些前景,准确的说,应该是软件测试工程师的职业规划是什么样的。这边已经内推200+的测试开发进入大厂,经常和他们交流,关于一些职业规划上的意见建议,我从下面几个方面梳理一下,供您参考。(原来大佬都在评论区....)