一、软件测试概述
随着计算机技术的迅速发展,软件系统的规模与复杂性与日俱增,软件的成本、软件中存在的缺陷和故障造成的各类损失也大大增加。如何防止和减少这些存在的缺陷和故障?——ujz软件测试。
1.软件测试的定义
(1)常用术语
.测试:
测试是一项活动,在这项活动中某个系统或者组成的部分将在特定的条件下,接过奖杯观察和记录结果将被 观察和记录,并对系统或者组成部分进行评价。
测试是一个或者多个测试用例的集合,若无特别说明,一般所说的测试指的是系统测试。
.测试用例:
为特定的目的而设计的一组测试输入、执行条件和预期的结果,测试用例是测试执行的最小实体。
(2)软件测试的定义
.观点一:评价一个程序和系统的特性或能力,并确定它是否达到预期效果。
.观点二:测试是为了证明程序有错,一个好的测试用例是在于它发现以前未能发现的错误。一个成功的测试是发现了以前未发现的错误测试。
2.软件测试的分类
(1)按是否关心系统内部结构划分
.白盒测试(结构测试或逻辑驱动测试)——穷举路经测试
白盒测试是基于覆盖全部代码、分支、路径、条件的测试。它知道产品内部工作过程,可通过测试来检测产品内部动作是否按照说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不管它的功能。
【白盒测试的主要方法有:逻辑驱动、基路测试等,主要用于软件验证。】
.黑盒测试(功能测试或数据驱动测试)——琼剧输入测试
黑盒测试是只基于需求和功能性的测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接受输入数据而产生正确的输出信息,并且保持外部信息的完整性。
【黑盒测试的主要方法有:等价类划分、边界值分析、因果图、错误推测等。】
(2)按是否需要执行被测软件的角度
.静态测试:不利用计算机运行测试程序而应用其他手段实现测试目的,如,代码审核。
.动态测试:通过运行被测试软件来达到目的。
(3)按阶段划分
.单元测试:
对软件中的基本组成单位进行测试,检验软件的基本组成单位的正确性。因为需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员完成。
【单元测试的主要方法有:数据流测试、数据流测试、排错测试、分域测试】
.集成测试:
在软件系统集成过程中所进行的测试,主要目的是检查软件与单位之间的接口是否正确。
【主要策略有:自顶向下和自底向上】
.系统测试:
对已经集成好的软件进行彻底的测试,已验证软件系统的正确性和性能等满足其规约所制定的要求。
【主要方法有:功能测试、性能测试、随机测试】
.验收测试:
旨在向软件的购买者展示该软件系统满足其用户的需求。
3.软件测试的对象
软件测试贯穿整个软件开发周期的,不仅仅是执行程序,软件测试对象包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序。
4.软件测试的目的
以最少的人力、物力和时间找出软件中潜在的各种错误与缺陷,通过修正各种错误和缺陷提高软件质量,贵软件发布后由于潜在的软件缺陷和错误造成的隐患以及带来的商业风险。
5.软件测试中的模型
(1)V模型
(2)W模型
(3)H模型
二、Bug
1.Bug的定义
软件产品没有达到预期的设计目标,在软件内部村存在的一种缺陷。
2.Bug的类型
(1)产品说明书中规定要做的事情,而软件没有实现。
(2)产品说明书中规定不要做的事情,而软件确实线了却实现了。
(3)产品说明书中没有提到说的事情,而软件确实线了却实现了。
(4)产品说明书中必须要做但是没有提到但是必须要做的事情,软件却没有实现。
(5)软件很难理解,很难使用,速度慢,测试人员站在最终用户的角度看到的问题是平常的但不是正确的。
3.软件Bug的级别
致命::数据被破坏、数据丢失、系统崩溃、系统无法进行/。
严重:处理结果不正确、流程不对、性能不满足要求。
一般:不会影响整个系统的云清性能运行性能。
微小小:操作不方便,错别字,界面布局不合理,难以理解。
建议:界面、描述更改等。
4.软件Bug的产生
程序编写错误、需求变更繁琐】、软件本身复杂、团队沟通问题、测试人员经验不足、项目时间过于紧迫......