287.软件测试概述

1.软件的缺陷及其影响

1.1什么是软件缺陷

软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。
从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、误差等各种问题。
从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

软件缺陷的类型:
(1)软件未实现产品说明书要求的功能。
(2)软件出现了产品说明书不应该出现的错误。
(3)软件实现了产品说明书未提到的功能。
(4)软件未实现产品说明书虽未明确提及但应该实现的功能。
(5)软件难以理解、不易使用、运行缓慢——从测试员的角度看——最终用户会认为不好。

1.2 存在软件缺陷的案例及影响

(1)千年虫问题(产生约1974年)

    日期存储未存储世纪

(2)爱国者导弹防御系统(1991年)

    时钟计算做了一个舍入操作,二进制转十进制,无限循环导数

(3)英特尔奔腾浮点除法缺陷(1994年)

    

(4)“冲击波”病毒(2003年)

    

(5)诺基亚手机平台缺陷(2008年)

    

2. 软件测试的产生与发展

1、软件测试的产生

软件缼陷产生的主要原因:
(1)需求解释有错误;
(2)用户定义错误;
(3)需求记录错误;
(4)设计说明错误;
(5)编码说明有误;
(6)程序代码有误;
(7)其他有误,如:数据输入等。

2、软件测试的发展

(1)初级阶段(1957-1971年)
(2)发展阶段(1972-1982年)
(3)成熟阶段(1983年至今)

3、修复软件缺陷的成本

软件开发过程是使用软件工程的方法,在整个过程中,都有可能出现各种各样的软件缺陷。随着开发时间的推移,软件缺陷修复成本呈倍数的增长。假如早在进行分析时发现相关功能缺失,立即补上就可了,可以说付出的代价小得几乎忽略不计。如果在发布时发现缺失某个功能,那么此时加上一个功能,相当于重新开发一样,这时的修补费用可以说高许多。因此要尽早进行测试。

2 软件测试的基本概念

2.1软件测试的定义

软件测试专家G.J.Myers早在1979年给软件测试下定义:软件测试是为了发现错误而针对某个程序或系统的执行过程。

G.J.Myers给出与测试相关的三个要点:
(1)测试是为了证明程序有错,而不是证明程序无错误;
(2)一个好的测试用例是在于它能发现至今未发现的错误;
(3)一个成功的测试是发现了至今未发现的错误的测试。

1990年,IEEE再次给出软件测试的定义:
(1)在特定的条件下运行系统或构件,观察或记录结果,对系统的某个方面做出评价;
(2)分析某个软件项以发现现存的和要求的条件之差别并评价此软件项的特性。

2.2 软件测试用例

1、软件测试用例定义
IEEE标准610(1990)给出的定义:
测试用例是一组测试输入、执行条件和预期结果的集合,目的是要满足一个特定的目标,比如执行一条特定的程序路径或检验是否符合一个特定的需求。

2、测试用例的元素
软件测试设计的关键问题可以概括为5W1H:
Why:为什么测试?对功能、性能、可用性、容错性、安全性等测试,检验是否符合相关要求。
What:测什么?测试的对象可以是文档,代码,图表等。
Where:在哪里测?测试用例的环境,包括系统的硬件、软件和网络环境等。
When:什么时候测?测试用例所需的前提条件,尽早开始。
Which:什么数据?测试用例设计的各种数据。
How:如何执行?结果怎样?要据测试用例设计的步骤来执行,最后进行结果比较,确定是否一致。若一致才能通过测试。

3、测试用例设计的基本原则
从两个层次考虑测试用例:
(1)低层次——从单个测试用例看,衡量其描述的规范性、可理解性及可维护性条等。
(2)高层次——以满足某一个测试目标或测试任务来衡量一组测试用例的结构、设计思路和覆盖率等;

测试用例的基本原则:
(1)代表性。测试用例能代表并覆盖各种合法的或不合法、边界内的或越界的以及极限的输入数据、操作和环境的设置。
(2)可判定性。测试执行的结果的正确性是可以判定的。每一个测试用例都应有相应的预期结果。
(3)可再现性。对于同样的测试用例,系统执行的结果应当相同的,并且相同的测试的执行过程可以反复操作。

4、测试用例模板

2.3 软件测试环境

1、什么是测试环境
软件测试环境就是软件测试运行的平台。包括系统的硬件、软件和网络等。

可以用一公式来表示:
测试环境=硬件+软件+网络+数据

2、测试环境的搭建和维护
(1)机房环境的建立
(2)硬件环境的建立
(3)软件环境的建立
(4)网络环境的建立
(5)安全措施的实施

2.4 软件测试人员的要求

1、软件测试人员的角色与职责
测试人员的角色主要有四类:
(1)测试经理:主要负责测试队伍的内部管理以及与外部人员、客户的交流工作,包括进度管理、风险管理、资金管理、人力资源管理、交流管理等。还有测试计划书的编写、测试总结报告的归纳等。必须具有项目经理的知识和技能。
(2)测试设计师:主要根据软件开发各阶段产生的设计文档来设计各阶段的测试用例。
(3)测试文档审核师:主要负责前置测试,包括对各个阶段的分析与设计文档进行审核,如:需求说明书、概要与详细设计说明书等。
(4)测试工程师:对测试设计师设计的测试用例分阶段完成测试工作。

2、软件测试人员的基本素质要求
基本素质要求如下:
(1)具备计算机软件测试的基本理论知识
(2)熟悉开发工具和平台
(3)掌握测试工具的使用
(4)善于学习,理解与归纳
(5)耐心、细致、工作态度好

原文地址:https://www.cnblogs.com/ZanderZhao/p/11514706.html

时间: 2024-10-11 22:49:17

287.软件测试概述的相关文章

一、 软件测试概述

1. 软件的概念  软件就是程序与文档的集合. 文档指软件从无到有整个生命周期中产生的各类图文集合.具体可包括用户需求规格说明书.需求分析.系统概要设计.系统详细设计.数据库设计.用户操作手册等. 2. 软件生命周期 生命周期包括需求定义.可行性分析.软件概要设计.软件详细设计.编码实现.调试和测试.软件验收与应用.维护升级到废弃的各个阶段. 3. 软件测试   软件测试是软件质量的重要保证. 软件测试主要描述了两项内容: (1)软件测试是为了发现软件中的错误而执行程序的过程: (2)通过设计测

软件测试概述

• 不论软件的生产者还是软件的使用者,均生存在竞争的环境中: 软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局. 用户为了保证自己业务的顺利完成,当然希望选用优质的软件. 软件带来错误的原因很多,具体地说,主要有如下几点: • 交流不够.交流上有误解或者根本不进行交流 • 软件复杂性 • 程序设计错误 • 需求变化 • 时间压力 • 代码文档贫乏 • 软件开发工具 什么是软件测试 软件测试就是在软件投入运行前,对软件需求分析.设计规格说明和编码的最终复审

第一节 软件测试概述

软件测试是软件质量保证的关键步骤,也是软件工程的重要组成部分,对软件产品的质量起着至关重要的作用.软件测试工作的目的就在于尽早找到软件缺陷,并保证其得到修复. 1.软件及其特点 IEEE Std 610.12 给出了软件(Software) 的定义:软件是计算机程序及其相关的文档,以及用以操作计算机系统的附属数据. 一般而言,软件来源于应用问题.应用问题经过抽象(包括数据抽象和过程抽象)后,形成软件的设计(包括数据结构和算法等内容),继而被编码实现.其后软件即可运行于硬件之上. 从软件的定义可以

软件测试概述、结构化测试

一.软件测试的目的 是在最小的成本和最短的时间内,通过设计良好的测试规程和测试用例,系统地发现不同类别的错误. 二.软件测试的基本原则 设计好的测试用例.不可能进行穷举测试.尽早开展测试.重点测试.定期进行检验与修正测试用例,并增加新的测试用例.测试依赖于系统环境.测试用例应该包含合理和不合理的输入条件. 测试过程模型 V模型特点:1.对应瀑布模型的变种(自下到上)线性关系 2.有局限性,在于不能体现"尽早地和不断地进行软件测试"的原则 3.仅仅把测试过程作为在需求分析.概要设计.详细

《软件测试管理公开课》2015.8.7~8 深圳 2015.8.11~12 北京 2015.8.18~19上海,欢迎报名!

课时:13小时(2天) 在软件开发流程中构筑软件质量 --软件测试管理     2015.8.7~8 深圳 2015.8.11~12 北京 2015.8.18~19上海   [课程背景] 据中国软件行业协会研究报告显示,2010年1-11月,我国软件业呈快速增长态势,同比增长30%,增速比去年同期提高8.6个百分点,软件产业已成为中国高科技发展重要支柱之一,但中国软件产品质量保证手段以及测试流程和管理的规范性,与国外同行(美国.印度等)存在较大的的差距.      在软件业较发达的国家, 软件测

软件测试基础概念总结

一.软件测试概述 (一)什么是测试,与测试相关常见活动有哪些? 测试:与科学方法中的实验类似,是对事物状态.功能的测量和观察.通过将测量结果与已知状态或理论假设相比较,测试者得以对事物状态.功能做出判断. 质检:顾名思义是质量检验,而质量是一个企业生存的根本,没有质量,企业只是空中楼阁! 解读:药品.食品等都有专门的质检员,我国有专门的质检机构--质检总局 QC:Quality Control['kwɑ?l?ti? k?n'tro?l],即质量控制.质量管理(检测产品质量的方法),在ISO900

软件测试重点

文章1章  软件测试概述 什么是软件测试 ü  广义的概念:它指的是整个软件生命周期的检查.审查和验证,其中包含分析.设计阶段,毕开发后维护阶段的各类文档.代码的审查和确认 ü  狭义概念:识别软件缺陷的过程,即实际结果与预期结果的不一致 ü  软件測试通常包含验证(verification)和确认(validation): -    验证指保证软件正确的实现了某一特定功能的一系列活动 -    确认指的是保证软件的实现满足了用户需求的一系列活动 软件測试的目的 ü  測试的目的就是发现软件中的

深入理解软件测试应用(测试用例+测试应用+测试技术及工具+测试等级)

我这里有个课程想和大家分享,有兴趣的朋友可以加我的QQ2059055336和我联系. 本课程为软件测试课程,主要讲述内容:软件测试概述.软件测试过程.软件测试技术.软件测试的应用.自动化测试技术等软件测试前言和问题的提出                             问题的提出 1课时                            基本概念                             本课程的主要内容                             各部分的

软件测试视频教程在线学习

课程观看地址:http://www.xuetuwuyou.com/course/22 课程来自学途无忧网:http://www.xuetuwuyou.com/ 课程介绍 一.课程所需软件及版本号:tomcat6.0.JDK1.6.Oracle10.TestDirector8.0 二.课程涉及知识点:软件测试基础理论.软件工程基础理论.数据库基础.java开发基础 三.课程目标: 课程设计从零基础开始,强化基础理论储备,然后理论结合实际,从小项目练习入手,由浅入深. 通过项目实战使学生掌握软件测试