题目:
远职业技术学院
毕业论文
关于手机软件测试的学习和研究
姓 名: 李裕 学 号: 02040902020 专 业: 计算机网络技术 指导老师及职称: 黄华(班主任)
年4月25日
2012
目录
摘要 ………………………………………………………………………………….3 第一章 软件测试的基本知识 ……. ……….…………………………………4 1.1 软件测试的背景 …………….…………………………………………4 1.2 软件测试的意义 …………….…………………………………………4 1.3 软件测试的内容 ………………….…………………………………….4 1.4 软件测试的原则 …………………….………………………………….5 第二章 常用软件测试工具 ……………….………………………………….5 2.1 AutoRunner (自动化测试工具) ……………………………………….5 2.2 TestCenter(测试管理工具) ………………………………………….6 第三章 软件测试的方法 …………………………………………………….6 3.1 黑盒测试 ……………………………………………………………….6 3.2 白盒测试 ……………………………………………………………….7 3.3 自动化测试 …………………………………………………………….7 3.4 压力测试 ……………………………………………………………….7 3.5 随机测试 ………………………………………………………………7 第四章 软件测试用例 ……………………………………………………………8 4.1 测试用例的重要性 ……………………………………………………8 4.2 功能测试用例 ……………………………………………………………8 第五章 软件测试的心理学问题…………………………………………………….9 5.1 程序测试的过程具有破坏性 …………………………………………….9 5.2 程序员应避免测试自己的程序 ……………………………………………….9 5.3 程库设计机构不应测试自己的程序 ……………………………………….10 5.4 好的测试工程师应具备的素质 ……………………………………….10 第六章 信息模块测试 …………………………………………………….11 6.1 短信息[SMS]的基本功能测试 …………………………………11 6.2 短信息的交叉事件测试 …………………………………………….11 6.3 短信息的压力性能测试 …………………………………………….11 6.4 短信息的容量性能测试 …………………………………………….11 6.5 短信息的兼容性能测试 …………………………………………….11 结论 …………………………………………………………………………12 致谢 ………………………………………………………………………….12 参考文献 ………………………………………………………………………….12
摘要
近年来,由于软件错误而造成经济损失、导致严重后果的事例屡
见不鲜,因此,如何保证软件产品的质量和可靠性就成为人们必须解决的一个重要问题,而软件测试便是保证软件质量的一个重要手段。据统计,国外在软件开发中,开发费用的近一半甚至更多要用于软件测试,由此也可以看出软件测试在软件开发中的重要地位。在宇龙通信科技有限公司着手软件测试工作,使我对软件测试有了更充分认知。
软件测试是软件开发过程的重要组成部分是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的第一是确认软件的质量第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这就说明此软件开发过程很可能是有缺陷的。因此软件测试的第一个目的是保证整个软件开发过程是高质量的。
通过研究表明在软件测试整个行业,最重要的一件事就是从客户的需求出发从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。本文通过对手机软件测试描述、测试流程以及信息模块测试说明让你大体了解手机软件测试基本工作。 关键词:软件测试、测试方法、测试用例、心理学、短信息
第一章 软件测试的基本知识
1.1软件测试的背景
随着计算机技术的迅速发展和越来越广泛深入的应用于国民和社会生活的各个方面,随软件系统的规模和复杂性与日俱增,软件的生产成本和软件中存在的缺陷和故障造成的各类损失也大大增加,甚至会带来灾难兴的后果。软件质量问题已成为所有使用软件和开发软件的人关注的焦点。由于软件是人脑的高度智力化的体现和产品这一特殊性,不同于其他科技和生产领域,因此软件与生俱来就有可能存在着缺陷。如何防止和减少这些可能存在的问题呢?回答是进行软件测试。测试是最有效的排除和防止缺陷于故障的手段,并由此促进了软件测试理论与技术实践的快速发展。新的测试理论,测试方法,测试技术手段在不断涌出,软件测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起来。
1.2软件测试的意义
引用Grenford J. Myers在《The Art of Software Testing》一书中的观点: (1)软件测试是为了发现错误而执行程序的过程;
(2)测试是为了证明程序有错,而不是证明程序无错误; (3)一个好的测试用例是在于它能发现至今未发现的错误; (4)一个成功的测试是发现了至今未发现的错误的测试。
这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。
首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
1.3 软件测试的内容
软件测试主要工作内容是验证(verification)和确认(validation ),下面分别给出其概念:
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。(Do the right thing)
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;
2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;
3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。 确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right)
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否
存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
1.4软件测试的原则
软件测试时为了使软件质量得到改善,以确保满足产品的需求。在设计有效测试用例之前,测试工程师必须理解软件测试的基本原则,具体有以下原则: (1)、所有的测试都是为了满足用户的需求。 (2)、在测试开始之前,拟好测试计划。 (3)、应尽早地和不断地进行软件测试。
应当把软件测试贯穿到整个软件开发的过程中,而不应该把软件测试看作是其过程中的一个独立阶段。因为在软件开发的每一环节都有可能产生意想不到的问题,其影响因素有很多,比如软件本身的抽象性和复杂性、软件所涉及问题的复杂性、软件开发各个阶段工作的多样性,以及各层次工作人员的配合关系等。所以要坚持软件开发各阶段的技术评审,把错误克服在早期,从而减少成本,提高软件质量。
(4)、对测试用例要有正确的态度
第一,测试用例应当由测试输入数据和预期输出结果这两部分组成;第二,在设计测试用例时,不仅要考虑合理的输入条件,更要注意不合理的输入条件。因为软件投入实际运行中,往往不遵守正常的使用方法,进行了异常操作,就很容易产生一系列的问题,轻则输出错误的结果,重则瘫痪失效。因此常用一些不合理的输入条件来发现更多的鲜为人知的软件缺陷。 (5)、人以群分,物以类聚。
软件测试也不例外,一定要充分注意软件测试中的群集现象。不要以为发现几个错误并且解决这些问题之后,就不需要测试了。反而这里是错误群集的地方,对这段程序要重点测试,要经过反复测试,才能真正地解决问题,这样才能提高测试投资的效益。 (6)、严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作。在测试过程中,要仔细,不能有半点马虎,这样才能找出问题的所在,以便更快地解决问题。 (7)、应当对每一个测试结果进行全面检查。一定要全面地、仔细地检查测试结果,但常常被人们忽略,导致许多错误被遗漏。 (8)、妥善保存测试用例、测试计划、测试报告和最终分析报告,以备回归测试及维护之用。
第二章 常用软件测试工具
2.1 AutoRunner (自动化测试工具)
AutoRunner是黑盒测试工具,可以用来执行重复的手工测试。主要用于:功能测试、回归测试等工作的自动化。它采用数据驱动和参数化的理念,通过录制用户对被测系统的操作,生成自动化脚本,然后让计算机执行自动化脚本,达到