附件六南京航空航天大学金城学院信息工程系专业实习报告实习项目/岗位软件测试实训实习单位/地点学生姓名学号专业软件工程联系方式实习日期:2015年10月26日至2015年12月04日软件测试实训总结报告概述:我的本次实训是软件测试,在本次实训中我们主要学习了对软件的各种测试方法,其中包括两大类,黑盒测试方法与白盒测试方法。黑盒测试方法主要包括:等价类划分法、边界值法、错误推测法、判定表驱动分析法、因果图法、正交试验设计法和场景设计法。白盒测试方法主要包括:代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试法、符号测试法、Z路径覆盖法和程序变异测试法。我们通过对以上的方法学习并且实际运用到项目中去,我们使用以上的方法对下列的项目做了一系列的测试:三角形问题、佣金问题、通讯录管理系统和个人手机测试。通过对以上项目的测试,我熟练的掌握了几种基本测试方法的使用过程,并且对软件测试这一个环节有了进一步的了解。在下面我们会对在本次实训中每个测试项目作出一个总结,其中包括项目的图表,和汇总表格,以下汇总:1.三角形问题测试:测试内容:三角形问题:输入为三角形的三条边,要求输入值为正整数,否则提示输入不合法”;要求三边长度都在1~100之间,否则提示“边长超出范围”如果不能构成三角形,则输出“非三角形”;若三边相等,则输出为“等边三角形”;若有两边相等,则输出“等腰三角形”;若三边都不相等,则输出“一般三角形”;若有一个直角,则输出“直角三角形”;若有一个直角,并且有两边相等,则输出“等腰直角三角形”。(1)认真阅读测试内容,根据内容编写测试程序(开发语言不限)。(2)用黑盒测试以及白盒测试的方法对三角形问题进行软件测试。测试收获与体会:在本次实训中我们认真阅读了需求,然后使用c语言写出了用于测试的程序。这是本次实训第一次做测试,对各种方法都不是很了解。但是在老师细心的教导下,我们都出色的完成了本次的测试。在本次三角形测试中我们做了三角形问题的白盒测试,白盒测试中我们用了逻辑覆盖法中的语句覆盖、判定覆盖、条件覆盖、条件-判定覆盖、条件组合覆盖、路径覆盖测试分别对他们编写用例进行测试。黑盒测试我们分别使用了等价类划分法、边界值分析法、判定表驱动分析法等方法。刚开始时我分不清判定覆盖、条件覆盖和条件-判定覆盖三者之间的关系,常常写的互相颠倒,幸亏有了同学的帮助,才顺利的解决了这个问题。也用了基本路径测试法中的基本路径覆盖对程序进行了测试,得出白盒测试下的结果。开始inta,b,c;printf(a,b,c:\n)a=1&&a=100)&&(b=1&&b=100)&&(c=1&&c=100a+bc||a+cb||b+caa==b&&(a!=c))||(a==c&&(b!=c))||(b==c&&(a!=ca==c&&a==bprintf(一般三角形!\n);请输入1-100之间的数printf(非三角形!\n);printf(等腰三角形\n);printf(等边三角形\n);TFFFFTTT图1.1三角形问题——流程图12468109753图1.2三角形问题——控制流图表1.1三角形问题汇总表通过未通过总测试项通过率语句覆盖707100%判定覆盖707100%条件覆盖808100%条件判定覆盖909100%条件组合覆盖11011100%路径覆盖707100%基本路径覆盖707100%等价类划分法1431782.35%边界值分析法19019100%判定表驱动分析法707100%2.佣金问题:测试内容:“佣金程序”,能够根据销售商的实际销售情况计算佣金,并输出月份销售报告,汇总售出的枪机、枪托和枪管数,销售商的总销售额以及佣金。(1)认真阅读测试内容,根据内容编写测试程序(开发语言不限)。(2)用黑盒测试以及白盒测试的方法对佣金问题进行软件测试。测试收获与体会:在本次测试中,在按照需求编写程序时发现了输入字符的问题,花了一定时间去解决。在本次试验中我们主要以熟练测试方法为目的,将之前学的方法都融会贯通起来,熟练的运用到实际的测试中去。和三角形问题测试相比,我们在本次测试中的水平明显有了一定的提高,并且对各种测试方法的掌握情况,也更加的熟练了。在本次测试中我们依旧对该问题使用了白盒测试和黑盒测试,白盒测试中我们用了逻辑覆盖法中的语句覆盖、判定覆盖、条件覆盖、条件-判定覆盖、条件组合覆盖、路径覆盖测试分别对他们编写用例进行测试。黑盒测试我们分别使用了等价类划分法、边界值分析法、判定表驱动分析法等方法。在本次测试中我进一步的了解,每个方法的使用方法和它们的意义。开始输入x,y,zx=0&&x=70)&&(y=0&&y=80)&&(z=0&&z=900n=1000n=18004枪机数%d、枪托数%d、枪管数%d、总销售额%d、佣金%f,x,y,z,n,c输入格式不正确5枪机数%d、枪托数%d、枪管数%d、总销售额%d、佣金%f,x,y,z,n,b枪机数%d、枪托数%d、枪管数%d、总销售额%d、佣金%f,x,y,z,n,a36n=40*x+30*y+20*z12结束图2.1佣金问题——流程图17238495106图2.2佣金问题——控制流图表2.1佣金问题汇总表通过未通过总测试项通过率语句覆盖404100%判定覆盖404100%条件覆盖606100%条件判定覆盖606100%条件组合覆盖606100%路径覆盖404100%基本路径覆盖404100%等价类划分法1611794.12%边界值分析法19019100%判定表驱动分析法909100%3.通讯录问题:测试内容:随着网络及现代通信技术的发展,人们之间的联系越来越便捷,这也使得同时与多人保持联系成为可能,而单纯依靠人脑已很难记住所有人的联系方式,使用传统纸面的方式记录联系人信息时,在联系人比较多时查找将非常困难.因此,以软件形式实现的通讯录成为了许多人保存联系方式的首选。为此我们构思开发一个软件,实现通讯录的查询和维护,具体需求如下联系人信息要求能分组,例如亲人组,好友组,同事组,其他组。组维护功能,比如增加组和删除组联系人信息要求至少包含如下信息,姓名,性别,工作单位,办公电话,住址,住宅电话,手机,邮箱,QQ,MSN,其他备注信息。其中姓名和性别为必选属性,其他属性至少一项不为空。联系人信息维护功能,比如增加、更新、删除、查询联系人。通讯录的直观显示功能,就是能树形显示整个通讯录。以组作为根节点,联系人作为叶子节点,根节点可以展开并且显示具体的联系人信息。其他要求,通讯录最多可以维护100组,1000个联系人,维护通讯录的界面要友好、美观,对于用户的非法输入要能给出正确的提示。测试收获与体会:在本次测试中,在按照需求编写程序时发现了输入字符的问题,花了一定时间去解决。在本次试验中我们主要以熟练测试方法为目的,将之前学的方法都融会贯通起来,熟练的运用到实际的测试中去。和三角形问题测试相比,我们在本次测试中的水平明显有了一定的提高,并且对各种测试方法的掌握情况,也更加的熟练了。在本次测试中我们依旧对该问题时对每个项都是用了等价类划分法进行测试,在本次测试中我进一步的了解等价类划分法,对它的使用方法更加的熟练了,对所有的用例全部进行了测试,并且在每一步时都仔细核对结果与预期结果,工作量虽然很大,但是大家都做的非常的认真。用户联系人组操作操作姓名性别工作单位办公电话住址住宅电话手机邮箱QQMSN其他备注亲人组好友组同事组其他组未分组删除增加增加更新删除查询属于n1nnmm图3.1通讯录问题——E-R图用户通讯录管理组管理添加信息查询信息修改信息删除信息显示信息删除组增加组图3.2通讯录问题——用例图表3.1通讯录问题等价类划分汇总表通过未通过总测试项通过率姓名404100%性别202100%工作单位404100%办公电话303100%住址404100%住宅电话303100%手机号303100%邮箱505100%QQ303100%MSN505100%备注404100%增加联系人101100%更新联系人404100%删除联系人101100%查询101100%增加组101100%删除组101100%4.手机测试:测试内容:对自己的手机做一个综合的测试,主要对以下几个项进行测试:SMS、MMS、电子邮件、CC、PB、callhistory、wap、娱乐、Game、assistant、电子词典、附加工具、setting、数据备份、情景模式、GPRS、STK、输入法、充电状态等,并且将最终的数据汇总,制成表格。最后验收时拿自己手机和报告一起进行验收。测试收获与体会:在本次测试中,我才真正的体会到测试这一个职业也不是那么简单的,但是却非常的有意思,虽然会反复测到一些手机的常用功能,但是在测试中我也知道了以前不知道的一些功能,对自己的手机也有了进一步的了解。与此同时我们也体会到了真正工作时软件测试人员的工作的繁琐,但是却不乏趣味。本次的测试很好的让我知道了以后工作会接触到怎么样的测试,并且有了一定的心里准备。当然对软件的苛刻程度也有了更大的提高,明白了,测试的真正的含义。虽然工作很繁琐,测试项非常的多,但是我还是坚持做完了测试,测试不仅能够提高软件本身的安全性,也是对测试人员的一份挑战。表4.1手机测试汇总表通过未通过或部分通过实测无法测试总共通过率无法覆盖率SMS6977615723390.79%67.38%MMS6969100.00%电子邮件90441343216667.16%19.28%CC8058569194.12%6.59%PB465516811990.20%57.14%callhistory26127305796.30%52.63%wap122122100.00%娱乐150862365429063.56%18.62%Game434343100.00%0.00%assistant6969100.00%电子词典88100.00%附加工具434369112100.00%61.61%setting7373111184100.00%60.33%数据备份441216100.00%75.00%情景模式5959968100.00%13.24%GPRS2222100.00%STK4747100.00%输入法75148989784.27%8.25%充电状态314475.00%0.00%实训总结在本次六周的软件测试实训中,我深深的了解到软件测试是软件工程中不可或缺的重要,是保证软件质量的重要手段。软件测试是为软件项目服务的,虽然软件测试的目的是为了发现软件中潜在的错误,但根本目的是为了提高软件的质量。软件测试主要分为两大类,白盒测试和黑盒测试。软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。。白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期结果是否一致。黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。在黑盒测试中我们主要使用了等价类划分法、边界值分析法、判定表驱动分析法等方法,对每个项目进行了测试通过为时六周的实训,我认为能独立写测试计划,设计测试用例,精通一种测试工具,理解一种bug管理软件是新手晋级老手的必备素质。致谢:虽然离真正的软件测试人员的要求还有很大的距离,但是自己一定会努力,向着自己的目标前进。其次,在为人处事方面,也让自己成熟了许多。虽然不能用语言来描述,但是确实可以从生活中的点点滴滴感觉得到。经历使人成长,只有真正的经历过,才可以让自己真的成