可视化编辑器,alt+1到9键,切换到工具区,tab键,选择按钮,esc键,返回编辑
软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
测试简介
软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
Glenford J.Myers曾对软件测试的目的提出过以下观点:
1.测试是为了发现程序中的错误而执行程序的过程。
2.好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
3.成功的测试是发现了至今为止尚未发现的错误的测试。
4.测试并不仅仅是为了找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。
5.这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。
6.没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
7.另外,根据测试目的的不同,还有回归测试、压力测试、性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。
测试原则
1.测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
2.程序员应该避免检查自己的程序,软件测试应该由第三方来负责。
3.设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,如网络异常中断、电源断电等。
4.应该充分注意测试中的群集现象。
5.对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。
6.制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
7.妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
测试目标
1.发现一些可以通过测试避免的开发风险。
2.实施测试来降低所发现的风险。
3.确定测试何时可以结束。
4.在开发项目的过程中将测试看作是一个标准项目。
案例分析:
我们接着上一章的例子来说明什么是软件测试。李女士的网店设计好了, 那测试人员怎么测试呢?显然测试工程师需要站在用户的角度来切身体验这款软件,测试的基本点包括:
1.下载,安装和卸载软件,其中该软件支持哪些手机系统以及对手机品牌是否有限制。
2.是否能正常打开软件,注册用户以及登录。
3.界面是否友好,设计风格是否满足主题消费群。
4.基本功能是否正常使用并且运行流畅。
5.... ...
测试目的
一个合格的或者说是一个有价值的软件测试工程师,首先要知道自己从事的这份职业到底对软件的生命起着什么样的作用。在这里,我想说,软件测试工程师给了软件第二次生命,让软件能够健康茁壮成长。那么软件测试的目的何在呢?
第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事情(Do it right)。
第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。
第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。
在此引用引用Grenford J. Myers在《The Art of Software Testing》一书中的观点:
l 软件测试是为了发现错误而执行程序的过程;
l 测试是为了证明程序有错,而不是证明程序无错误;
l 一个好的测试用例是在于它能发现至今未发现的错误;
l 一个成功的测试是发现了至今未发现的错误的测试;
这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。
首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。
其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。详细而严谨的可靠性增长模型可以证明这一点。
因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。
最后从软件生命周期投资来考虑,软件测试能够在软件孕育初期就开始保证质量,那么就是有效地避免了软件重新投资的风险。
案例分析:
用户测试XXX产品,发现上面有个链接,当点击链接之后出现了以下页面,那么这是个bug吗?有些人分析这是产片自身的设计,看那页面多卡哇伊啊,有些人分析这个产品有问题啊,我想点击链接去查看相关信息,却调出来什么404的东东,尽管页面设计好看,可是没有找到我要的页面啊!
软件测试的目的就是为了保证产品的质量,找到产品潜在的以及明显的问题,是为了发现问题而执行的过程,而不是主观猜测,所以要尽可能的提出在测试过程中发现的任何问题。