发布时间:2021-08-26 15:01:36来源:转载
软件是计算机系统中与硬件相互依存的一部分,包括程序、数据、与其相关文档的完整结合。软件 = 程序 + 数据 + 文档。使用人工或自动的手段来运行或测量软件系统的过程,目的是检验软件系统是否满足规定的需求,并找出与预期结果之间的差异。那么,软件测试的目的是什么?
软件测试基础理论知识
软件的特点:
① 软件是一种逻辑体,而不是具体的物理体,因而它具有抽象性;
② 软件的生产与硬件不同,它没有明显的制造过程,对软件质量的控制,必须在开发方面下功夫;
③ 在软件运行和使用期间,没有硬件那样的机械磨损和老化问题,然而它存在退化问题,必须进行多次的修改和维护;
④ 软件的开发和运行常常受计算机系统的制约,对计算机系统有着不同程度的依赖性,为了解除这种依赖性,在软件开发过程中提出了软件移植问题。
⑤ 软件本身是复杂的,软件的复杂性可能来自它所反映问题的复杂性,也可能来自程序逻辑结构的复杂性。
⑥ 软件成本的昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力,它的成本比较高。
软件的分类:
按照功能划分:
系统软件:如操作系统、数据库管理系统,各种驱动软件等
应用软件:
如Office、金山词霸、QQ等
按照技术结构划分:
单机版本:
如Office,画图工具等
C/S结构软件:
如QQ、MSN等
B/S结构软件:
如新浪、搜狐、google等
按照用户划分:
产品软件:
Office、财务处理软件、金山毒霸等
项目软件:
如为企业定制的OA系统等
按照开发规模划分:
类别 参与人数 开发时间
小型 10人以下 1-4个月
中型 10-100人 1年以下
大型 100人以上 1年
软件测试的概念:
软件测试就是为了发现错误而执行程序的过程(狭义观点)。
使用人工或自动的手段,来运行或测试软件系统的过程,目的是检验软件系统是否满足规定的需求,并找出与预期结果之间的差异。(标准定义IEEE )
软件测试就是为了证明程序有错,而不是证明程序无错误(辨证观点) 。
测试被定义为“对软件系统中潜在的各种风险进行评估的活动”。(风险观点)软件测试就是“验证(Verification)”和“有效性确认(Validation)”活动构成的整体,即软件测试V&V 。(标准观点)
要完整理解软件测试,就要从不同方面去审视软件测试,概括起来,软件测试就是贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件的缺陷。
软件测试的对象:
① 源程序/目标代码
② 各开发阶段的文档(需求规格说明、概要设计说明、详细设计说明及其它相关文档)
软件测试的目的:
从用户角度看的目的:通过软件测试发现隐藏的错误和缺陷,考虑是否可以接受该产品。从开发者角度看的目的:表明软件产品不存在错误,验证软件实现了所有用户的要求。从测试人员角度看的目的:发现错误,预测错误,提供软件可靠性错误,对软件做出评价。
① 帮助开发人员、测试工程师发现问题、分析问题。
② 减少软件的缺陷数目或者降低软件缺陷的密度。
③ 提高软件的可靠性
④ 评估软件的性能指标。
⑤ 增加用户对软件的信心。
⑥ 测试的较终目的是尽快尽早地发现在软件中的缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
软件测试的原则:
① 所有测试的都应追溯到用户需求。
② 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
③ 由于软件的复杂性和抽象性,在软件生命周期各个阶段都可能产生错误,所以不应把软件测试仅仅看作是软件开发的一个独立阶段的工作,而应当把它贯穿到软件开发的各个阶段中。在软件开发的需求和设计阶段就应开始测试工作,编写相应的测试文档。
④完全测试是不可能的,测试需要终止。
⑤ 想要进行完全的测试,在有限的时间和资源条件下,找出所有的软件缺陷和错误 使软件趋于是不可能的主要有三个原因:① 输入量太大;② 输出结果太多;③ 路径组合太多。
⑥ 测试无法显示软件潜在的缺陷:进行测试是可以查找并报告发现的软件缺陷和错误,但不能增加软件缺陷和错误全部找到。
⑦ 充分注意集试中群集现象(二八定理):经验表明,在所测试程序段中,若发现的错误数目多,则残存的错误数目也较多。缺陷的二八定理指的是,一般情况下,80%软件缺陷出现在20%的功能区域,在测试过程中,投入主要的人力和精力重点测试这20%的功能区域。
⑧ 开发人员应避免检查自己的程序:基于心理因素,揭露自己程序中的问题总不是一件愉快的事,不愿否认自己的工作;由于思维定势,人们难于发现自己的错误。因此为达到测试的目的,应由客观、公正、严格的独立的测试部门或独立的第三方测试机构进行测试。
⑨ 尽量避免测试的随意性:应从工程的角度理解测试,它是有组织、有计划、有步骤的活动。
软件测试误区:
误区一:
如果发布出去的软件有质量问题,都是软件测试人员的错。
误区二:
软件测试技术要求不高,至少比编程容易多了。
误区三:
有时间就多测试一些,来不及就少测试一些。
误区四:
软件测试是测试人员的事,与开发人员无关。
误区五:
根据软件开发瀑布模型,软件测试是开发后期的一个阶段。
软件测试需要学习哪些技术?
温州软件测试培训班哪家教得好?
唐山怎么选择软件测试培训机构?
广州海珠软件测试培训班哪家靠谱?
南宁软件测试培训班有哪些?
临沂达内软件测试培训机构怎么样
更多培训课程: 长春软件测试 更多学校信息: 长春达内IT教育培训 咨询电话: