为什么做软件测试
⑴ 我为什么选择软件测试
先说说软件测试的现状吧!
原因之一:软件产品成熟度的问题。记得产品的竞争力分为多个层次:人无我有、人有我优、人优我廉、人廉我转。先保证产品存在,然后谈产品的质量,质量好价格低的产品更畅销,质量好、价格低、服务好是用户追求的目标。以前的软件大多属于形象工程,有就行了。现在越来越多的软件用起来了,质量自然提上了日程。怎无奈,花钱的客户不是使用产品的用户,客户不懂产品质量,但他懂价格,导致的问题就是让开发商拼价格,降低成本。如果有一天,产品的质量对于软件的销售起决定作用的时候,开发商才会想办法提升质量。
原因之二:软件的质量并不完全依赖于测试水平。软件的缺陷是由开发人员引入的,如果少一点引入缺陷,即使没有测试,软件的质量也会很高。这是一个不错的观点。开发人员自身水平的提升对产品质量的影响是第一位的。ok,站在这个角度来讲,测试人员的存在是对产品质量提升的一个补充。
原因之三:测试人员没有争取。测试人员往往在公司的位置较低,同时他们却选择了逆来顺受,听之任之的态度。大多数软件测试人员的水平的确不行,连代码都看不懂,与开发人员根本没有办法交流,当然开发人员瞧不起你。
原因之四:高水平的测试人员都不做测试。水平高了,为了追求好的待遇,转开发了、做管理了,让自己的测试技能浪费了。
那“软件测试”还有救吗?是不是命中注定就是软件开发的“次要角色”?先提一些观点。
1、软件产品的质量越来越重要,而且是个趋势。——应该没有人反对吧!
2、为了保证产品的质量,有两条路可以走。第一预防,让错误少出现;第二验证,如果有错误,发现、处理。第一条路的主人公是开发人员。第二条路的主人公是开发人员和测试人员。测试人员的位置就是通过验证的方式去发现问题。而这两条路相互补充,在整个开发过程不会舍弃其一。
3、开发人员和测试人员越走越近,开发人员需要测试技能,测试人员也需要开发技能,只是在特定阶段完成不同的任务。开发和测试是软件开发过程中的不同角色。代表着工作范围或者工作方式,为了实现同一个目标。举个例子:TDD让测试与开发真正走到了一起。
4、测试从软件开发过程的一开始就进入。这是一种正确的工作方式,让测试人员有更多的表现机会。
5、测试人员需要掌握更多的技能。需求分析的技能、设计的技能、编码的技能(不见得有开发人员精通)、测试的技能。这样,测试人员在整个软件开发过程中,才能真正承担需求分析验证、软件设计评估、测试尽可能自动化、软件验证等开发任务。才能真正体现出:测试人员只是站在另外一个角度解决问题的角色。
一种理想状况是:开发人员和测试人员具有相同的技能,他们拥有不同的角色,一起合作开发软件,共同打造高质量的软件。如果项目小的话,其实开发人员和测试人员就是一个人。
说说最初的问题,作为第一篇blog的结束。“软件测试”对我的诱惑。
2、站在用户的角度,为你的客户着想,我们开发的目的不是为了写代码,然后自己欣赏,让更多的人用起来才是真正的价值所在。
3、软件测试是软件工程师发展的必经之路。
4、软件测试是一种趋势,它将在软件开发中占据越来越重要的位置。试想,如果将来web service盛行,软件构造的方式可能会发生质的变化:也许就是选择web service,然后再验证的过程。
也许将来不再会有开发人员、测试人员之分,也说不清是开发人员吞并了测试人员,还是测试人员吞并了开发人员。
⑵ 为什么要做测试
1、测试是做什么的?
如果是专业的测试人员的话,那软件测试的工作就相当复杂了,首先制定测试计划是势在必行的,包括测试的起始结束时间,在什么时间要有什么进度,之后就是进行各个测试环节,单元测试——集成测试——系统测试——验收测试。这里边前两步是用到白盒测试,后两步需要的是黑盒测试。
如果是找测试方面的工作的话,那一开始我相信问得不会很深,但是基础肯定是要知道的,就是什么是黑白盒测试,建议测试文档包含的必须部分等等吧,都是很基础的。
2、软件测试类型都有哪些?测试类型的区别与联系?
测试类型有:功能测试,性能测试,界面测试。
功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。
区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试。
3、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系?
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1)是否有不正确或遗漏的功能?
2)在接口上,输入是否能正确的接受?能否输出正确的结果?
3)是否有数据结构错误或外部信息(例如数据文件)访问错误?
4)性能上是否能够满足要求?
5)是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1)对程序模块的所有独立的执行路径至少测试一遍。
2)对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3)在循环的边界和运行的界限内执行循环体。
4)测试内部数据结构的有效性,等等。
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
4、做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果;
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题。
5、测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。
6、做好测试计划工作的关键是什么?
1)明确测试的目标,增强测试计划的实用性
编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确。
2)坚持“5W”规则,明确内容与过程
“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。
3)采用评审和更新机制,保证测试计划满足实际需求
测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。
4)分别创建测试计划与测试详细规格、测试用例
应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
⑶ 为什么做软件测试报告
一款软件开发出来并不能保证其稳定性与毫无漏洞,这就需要进行软件的测试,找出该软件的缺陷。软件测试的目的理解产品的功能要求,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness)。
简而言之,软件测试在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。
⑷ 软件测试的目的是什么为什么要进行软件测试
为了在现场能更好的运行啊,线下测试OK,线上才能顺利运行
⑸ 什么是软件测试为什么要进行软件测试如何完成软件测试
软件测试就是尽可能的在软件开发中找出软件的缺陷,及我们所说的bug。软件测试的目的就是让软件个缺陷尽早的被发现和改正,从而达到需求的要求,减少后期维护成本。完成软件测试,首先要拟定软件测试计划,提交测试计划,再搭建测试环境,然后就是进行软件测试,最后做测试总结
⑹ 为什么要进行软件测试软件测试的目的是什么
建立软件测试管理体系的主要目的是确保软件测试在软件质量保证中发挥应有的关键作用:
1、软件产品的监视和测量
对软件产品的特性进行监视和测量,主要依据软件需求规格说明书,验证产品是否满足要求。所开发的软件产品是否可以交付,要预先设定质量指标,并进行测试,只有符合预先设定的指标,才可以交付。
2、对不符合要求的产品的识别和控制
对于软件测试中发现的软件缺陷,要认真记录它们的属性和处理措施,并进行跟踪,直至最终解决。在排除软件缺陷之后,要再次进行验证。
3、产品设计和开发的验证
通过设计测试用例对需求分析、软件设计、程序代码进行验证,确保程序代码与软件设计说明书的一致,以及软件设计说明书与需求规格说明书的一致。对于验证中发现的不合格现象,同样要认真记录和处理,并跟踪解决。解决之后,也要再次进行验证。
4、软件过程的监视和测量
从软件测试中可以获取大量关于软件过程及其结果的数据和信息,它们可用于判断这些过程的有效性,为软件过程的正常运行和持续改进提供决策依据。
(6)为什么做软件测试扩展阅读
一个好的测试计划可以起到如下作用:使测试工作和整个开发工作融合起来;资源和变更事先作为一个可控制的风险。
编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确。
⑺ 面试题:为什么做软件测试,不做开发
软件测试是为软件产品的质量把关的,目前软件测试的工业化时代还没有来临,自动化软件测试工具还没有能统一起来的模式,大部分还是靠人工测试,所以软件测试有很大的发展空间和前景。软件测试并不比软件开发轻松,也不比软件开发简单,选择软件测试并不是觉得它更容易,而是自己本身对这个行业更有兴趣,做测试也会更投入,所以选择测试而不是开发。
这只是一方面,还可以加一些其他的因素,比如软件测试贯穿于整个软件开发的生命周期,本人喜欢对个阶段的测试用例进行分析和设计,感觉不开发更有趣。突出出你是真的喜欢测试就可以了,没有什么标准的答案,他就是在考察你的态度问题。希望对你有帮助。
对于任何行业,从业者的水平分布都是成金字塔形的。测试很有前途也很有挑战,祝你成功!
⑻ 研发中,为什么要进行软件测试
不然出现问题引起客户不满影响很大,还可能造成损失