洛阳理工毕业实习报告2.docx
- 文档编号:7745371
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:21
- 大小:106.53KB
洛阳理工毕业实习报告2.docx
《洛阳理工毕业实习报告2.docx》由会员分享,可在线阅读,更多相关《洛阳理工毕业实习报告2.docx(21页珍藏版)》请在冰豆网上搜索。
洛阳理工毕业实习报告2
洛阳理工学院
毕业实习报告
系别计算机与信息工程学院
专业计算机应用技术
班级Z120551
完成日期2015.4.10
一、实习单位名称
洛阳米兔电子商务公司
二、实习单位基本情况
米兔电子商务有限公司是洛阳的一家B2C化妆品电商,由在校大学生创立,总部位于洛阳恒生科技园。
公司注册资本500万元,员工30余人目前正在运营米兔校园,一个适合大学生购物的化妆品特卖网站,属于B2C美妆垂直商城。
公司的主要经营范围:
利用互联网销售化妆品、生活日用品、办公用品、针纺织品、服装、电子产品(不含卫星电视广播地面接收设施和发射装置)、软件及计算机辅助设备、工艺品(不含文物)、首饰(不含黄金、白银制品);同时招聘软件开发,软件测试等员工从事相关工作。
洛阳米兔电子商务有限公司正在运营米兔网(米兔校园),米兔校园主要为大学生提供各类流行信息、时尚情报、生活品味以及购物乐趣,让大学生在校园里也能够第一时间接触社会时尚,体验社会时尚。
针对大学生的消费习惯和消费水平,米兔校园商城凭借自身特色有针对性的引入了100多个国际、国内一线日化品牌,并获得了欧诗漫、韩束、韩后、自然堂等多个知名品牌网上销售授权书和区域代理,目前,米兔校园产品主要包括:
美容护肤品、彩妆、香水、工艺品、精油、环保时尚产品等。
米兔校园采用的是电商行业前景最好的OTO区域电子商务运营模式和运营理念,为大学生购物搭建一个正品特卖、专业可信、快捷高效的美妆购物平台,实现最简单、最快捷、最省钱、最放心、最开心购物,让大学生超前体验所想即所得的购物快感。
在信息化方面,他们的认知有限,缺乏专业的IT技术人员,投资预算很少,但又非常渴望通过信息化手段提升竞争能力。
中国企业的这些特点,决定了他们在信息化建设方面,既需要持续、有力的保障,又要求低成本、负担得起,而基于“云平台”的应用服务可能是最适合这种需要的信息化实现模式。
所谓“云平台”,是基于行业领先技术搭建的,集硬件、软件、网络基础设施、数据中心为一体的应用导向性的服务平台,它将企业的各类信息化需求按功能拆分成不同的模块,以标准化组件的形式集成在这一平台之上。
这里的“云”,即指互联网络。
“云平台”所提供的应用服务均通过互联网提供给使用者,“云”中的资源对使用者来说可以随时获取、按需使用、随时扩展、按使用付费。
因此,“云平台”具有开放性、可扩展性,支持无缝升级,其标准化接口能够灵活对接多种应用服务,使服务内容能够不断扩展延伸。
而用户可以根据自身的需要灵活选用平台上的各类服务,按使用付费,如同使用水电一样,无需掌握IT技术,即可轻松应用。
专业的7X24小时运营维护支持,保障了云平台的安全、稳定和高效运行;庞大用户群体所形成的规模经济效应,则能够大幅度降低单一用户的使用成本,使企业客户真正能够以低廉的使用费获得高品质服务。
领先的技术实力和完善的运营服务体系是米兔电子商务有限公司信息化运营服务理念的强大支撑。
米兔电子商务有限公司在多个主要城市设立了专业的超大规模数据中心,拥有千兆的独享带宽,数千台高性能服务器,专业的防火墙、防病毒网关等安全设施,7×24小时不间断的运营维护服务,实时响应客户的需求,即时解决用户的问题。
多年来,米兔电子商务有限公司以建立行业服务品质标杆为目标,全面推出了面向客户的服务品质诺——服务水平协议(ServiceLevelAgreement),继续领先构建中国企业信息化运营领域的新标杆。
米兔电子商务有限公司在广告技术领域采用大数据研究方法,搭建多个以Hadoop为基础的云计算平台,成为大数据在广告技术领域应用的实践者,其自主研发的大数据广告投放系统,拥有完整的产品线,可以在PC端、视频端和移动端进行DSP广告投放。
3月2日-3月3日
开学之后在米兔电子商务有限公司实习,负责餐饮管理软件测试,完成项目经理布置的测试任务,自己学习使用了自动化测试软件,测试后要撰写测试文档。
这是我第一次在正规的软件公司工作,有机遇也有挑战,希望每一天我都会认真的对待。
由于每个客户都需要定制产品,所以我就要负责新开发的功能的测试工作,基本采用黑盒测试方法,测试出bug要写到测试文档上,等待开发人员修改后,再次进行相应的验证测试,这其实就是软件开发的瀑布模型。
通过做这项工作,认识到了软件测试在整个软件开发的过程中具有重要的作用,它是在交付客户使用前的最后一步,起到产品把关的作用。
3月4日-3月5日
对于实习生公司进行了上岗培训,今天做了有关TestLink的测试管理计划、报告的撰写。
TestLink用于进行测试过程中的管理,通过使用TestLink提供的功能,可以将测试过程从测试需求、测试设计、到测试执行完整的管理起来,同时,它还提供了好多种测试结果的统计和分析,使我们能够简单的开始测试工作和分析测试结果。
软件开发主要学习linux一些基础的知识,熟悉了软件软件测试管理的流程,以及工具管理整个缺陷的过程,使得测试管理变得方便,有计划为测试更好的进行做了保证。
1.TestLink管理工具的使用和学习。
在TestLink系统中,每个用户都可以维护自己的私有信息。
admin可以创建用户,但不能看到其它用户的密码。
在用户信息中,需要设置Email地址,如果用户忘记了密码,系统可以通过mail获得。
TestLink系统提供了六种角色,分别是admin、leader、seniortester、tester、guest、testdesigner。
相对应的功能权限如下:
Guest:
只有读的权限,适合于查看测试用例和测试需求,以及项目分析的用户。
Testdesigner:
可以开展测试用例和测试需求的所有工作。
Tester:
只能执行测试用例。
Seniortester:
可以查看和维护测试用例,并且可以执行测试用例,但是不能管理测试计划、分配测试任务。
Leader:
可以开展测试规格和测试需求的所有工作,还可以管理测试计划、分配测试任务。
Admin:
维护产品,用户。
同时,支持不同地域用户对不同语言的需求,可以根据用户的喜好对用户提供不同的语言支持。
3月7日-3月8日
练习使用一些linux常用的一些命令,熟悉linux系统的基本操作。
1.Linux下常用命令的练习
1)查看man命令的用法
#manman
输出的结果是man命令的先关用法,仔细阅读该命令的用法信息,直至当前显示结尾。
2)按下空格键,进行翻页显示
显示的man命令用法的信息向后翻页,仔细阅读当前显示的信息
3)按下b键
显示的man命令用法的信息向前翻页
4)继续按空格键,阅读完man命令用法信息,知道出现“(END)”字符
5)按下q键,结束man命令用法信息显示
6)查看ls命令的用法
#manls
输出的结果是ls命令的先关用法,仔细阅读该命令的用法信息,直至当前显示结尾。
7)按下空格键,进行翻页显示
显示的ls命令用法的信息向后翻页,仔细阅读当前显示的信息
8)按下b键
显示的ls命令用法的信息向前翻页
9)按下q键,结束ls命令用法信息显示
ls+[选项]+command
不带任何选项,是对目录内容的普通显示
选项-a:
列出目录内的所有文件(包含隐含文件)
选项–l:
列出文件的详细信息(包括文件属性,所属用户,文件大小,文件创建时间,文件名等信息)
echo+[目标目录]
不带任何选项时默认换行输出;当需要输出变量时,可以在前面添加“$”符号
选项-n:
输出的字符之后不换行
cd/home进入'/home'目录'
cd..返回上一级目录
cd../..返回上两级目录
cd进入个人的主目录
cd~user1进入个人的主目录
cd-返回上次所在的目录
pwd显示工作路径
ls查看目录中的文件
ls-F查看目录中的文件
ls-l显示文件和目录的详细资料
ls-a显示隐藏文件
ls*[0-9]*显示包含数字的文件名和目录名
tree显示文件和目录由根目录开始的树形结构
(1)
3月10日-3月11日
主要内容:
linux系统下gcc的开发。
掌握GCC的安装,理解GCC编译器编译C程序的过程。
熟悉GCC的编译命令及参数的使用,了解库依赖、代码优化、警告提示等参数的使用。
代码:
多文件学生成绩管理系统
用gcc编译并运行代码、使用makefile编译代码、使用GDB调试代码、在eclipse中编译、执行并调试代码。
代码过程中也遇到过甚多问题,比如刚开始makefile文件的编写,运行过程中存在错误,这些都是常见的编码问题,经过调试和修改也都迎刃而解了。
1.GCC的使用
在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一 位Linux程序员面临的首要问题都是如何灵活运用C编译器。
目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。
GCC不仅功能非常强大,结构也异常灵活。
最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。
开放、自由和灵活是Linux的魅力所在,而这一点在GCC上的体现就是程序员通过它能够更好地控制整个编译过程。
在使用GCC编译程序时,编译过程可以被细分为四个阶段:
◆ 预处理(Pre-Processing)
◆ 编译(Compiling)
◆ 汇编(Assembling)
◆ 链接(Linking)
清单1:
hello.c
#include
int main(void)
{
printf ("Hello world, Linux programming!
\n");
return 0;
}
然后执行下面的命令编译和运行这段程序:
# gcc hello.c -o hello # ./hello Hello world, Linux programming!
首先,GCC需要调用预处理程序 cpp,由它负责展开在源文件中定义的宏,并向其中插入“#include”语句所包含的内容;接着,GCC会调用ccl和as将处理后的源代码编译成目 标代码;最后,GCC会调用链接程序ld,把生成的目标代码链接成一个可执行程序。
为了更好地理解GCC的工作过程,可以把上述编译过程分成几个步骤单独进行,并观察每步的运行结果。
第一步是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程
# gcc -E hello.c -o hello.i
此时若查看hello.cpp文件中的内容,会发现stdio.h的内容确实都插到文件里去了,而其它应当被预处理的宏定义也都做了相应的处理。
下一步是将hello.i编译为目标代码,这可以通过使用-c参数来完成
# gcc -c hello.i -o hello.o
GCC默认将.i文件看成是预处理后的C语言源代码,因此上述命令将自动跳过预处理步骤而开始执行编译过程,也可以使用-x参数让GCC从指定的步骤开始编译。
最后一步是将生成的目标文件链接成可执行文件:
# gcc hello.o -o hello
在采用模块化的设计思想进行软件开发时,通常整个程序是由多个源文件组成的, 相应地也就形成了多个编译单元,使用GCC能够很好地管理这些编译单元。
假设有一个由foo1.c和foo2.c两个源文件组成的程序,为了对它们进行编 译,并最终生成可执行程序foo,可以使用下面这条命令:
# gcc foo1.c foo2.c -o foo
如果同时处理的文件不止一个,GCC仍然会按照预处理、编译和链接的过程依次进行。
如果深究起来,上面这条命令大致相当于依次执行如下三条命令:
# gcc -c foo1.c -o foo1.o # gcc -c foo2.c -o foo2.o # gcc foo1.o foo2.o -o foo
3月13日-3月14日
1.mantis的使用和熟悉
Mantis是一个基于PHP技术的轻量级的缺陷跟踪系统,其功能与前面提及的JIRA系统类似,都是以Web操作的形式提供项目管理及缺陷跟踪服务。
主要分为报告员,管理员,经理,开发员,修改员等角色,分别具有各自的只能。
1)使用管理员登录,熟悉菜单栏模块,单击【管理】-【项目管理】-【创建新项目】,填写完相应信息后创建,创建完毕在单击项目名称即可修改项目。
2)单击【管理】-【配置管理】-【工作流】,拉到最下面更改【已关闭】最低权限为报告员,单击更改配置。
切换到报告员登陆,开始提交问题,单击【提交报告】,填写相应信息,单击【提交报告】。
总之熟悉了Mantis的管理流程,管理软件测试过程中的缺陷等。
3月17日-3月18日
主要内容:
Linux下GTK+的熟悉及运用。
使用MySQLCAPI编写代码实现表创建和插入,根据自己所在小组的组员信息创建小组表“group”,字段名可以参考students表:
带图形界面的查询与显示,结合GTK建立图形用户界面,利用MySQLCAPI进行应用开发,建立班级通信录,并能够在图形界面上进行相关主题的查询、学生的添加和删除、学生信息的浏览和相关数据统计。
用gcc编译并运行代码,在eclipse中编译、执行并调试代码。
1.Gtk+基本构件添加
a)Gtk+单窗口显示程序编写
代码目的:
练习最基本的窗口创建操作,熟练掌握构件添加流程
源代码:
参考课本P207
运行结果:
代码讲解:
所有程序应该包含gtk/gth.h,其中声明了变量、函数以及数据结构等,这些东西会在程序中使用。
gtk_init(gint*argc,gchar***argv)函数会在每个Gtk应用程序中调用。
gtk_window_new创建一个窗口,GTK_WINDOW_TOPLEVEL参数指定我们要使用窗口管理器来修饰和放置窗口。
这里不会创建一个0x0大小的窗口,一个没有子构件的窗口默认大小设置为200x200,这样我们仍然能操作它。
gtk_widget_show()显示窗口函数让Gtk知道,已经设置完构件的属性,可以显示它了。
gtk_main()使程序进入Gtk主处理循环,它是另一个可以在每个Gtk程序中见到的函数调用。
当程序运行到这里,Gtk会“睡眠”等待X事件(如按钮或键盘按下)、超时或文件IO通知发生。
在本例中,事件被忽略。
b)Gtk+布局容器(组装盒)的使用
代码目的:
练习使用Hbox和Vbox布局设计下图界面形式。
运行结果:
代码讲解:
创建窗口,设置名称、大小、位置、回调函数。
新建3个按钮、2个组装盒,注意组装盒的嵌套应用。
2.Gtk+信号、事件及回调函数
代码目的:
掌握回调函数与signal信号响应功能实现
源代码:
参考gtk+-1.2.10/example/helloworld.c
运行结果:
讲解:
g_signal_connect(gpointer*object,//发出信号的构件的指针
constgchar*name,//信号名称
GCallbackfunc,//回调函数(对信号要采取的动作)
gpointerdata);//传给回调函数的数据
第一个参数*object是将要发出信号的构建指针,第二个参数*name是希望捕获的信号的名称,第三个参数func是捕获信号是要调用的函数,第四个参数data是要传递给函数的用户数据参数。
在第三个参数里指定的函数称为“回调函数”,它的形式通常是:
voidfunc(GtkWidget*widget,//发出信号的构件的指针
gpointercallback_data);//穿过来的数据
这个函数的第一个参数是一个指向发出信号的构件的指针,第二个参数是一个指向传递给回调函数的用户数据的指针。
注意上述对“信号”的回调函数的声明仅仅是一个通用的规则,因为一些构件的特殊“信号”产生不同调用参数。
g_signal_connect_swapped(gpointer*object,//发出信号的构件
constgchar*name,//信号名称
GCallbackfunc,//回调函数
gpointer*widget);//传给回调函数的数据
gtk_signal_connect_swapped()跟gtk_signal_connect()一样,除了回调函数仅仅使用一个参数一—指向Gtk对象的指针。
希望当鼠标单击按钮时让窗口关闭,就可以加这样一个信号连接函数:
g_signal_connect_swapped(G_OBJECT(button),"clicked",//让鼠标发出"clicked"事件
G_CALLBACK(gtk_widget_destroy),//调用系统函数使窗口关闭
G_OBJECT(window));//把window作为参数传给gtk_widget_destroy()
在这里,参数object(如button)通常是一个构件。
在Linux下编译helloworld.c
Gcc–Wall–ghelloworld.c–ohelloworld`pkg-config–cflags–libsgtk+2.0`
helloworld程序分析
按钮被单击时调用的回调函数hello
destroy事件处理回调函数
main函数解释
基于信号响应处理的Gtk+程序设计流程
定义构建类型。
Gtk初始化:
gtk_init(&argc,&argv)。
创建一个新窗口作为主窗口。
为主窗口设置参数:
大小,标题,空间,间距,显示位置。
定义组件,为组件关联事件,关联函数为:
布局组件,为主窗口添加布局。
Gtk循环,用以等待事件(消息):
gtk_main();
3月20日-3月21日
主要内容:
GTK+下计算器软件编写实现。
1.Gtk+综合案例–计算器软件编写实现
代码目的:
应用按钮控件、单行输入控件构建计算器的外观,设计函数实现计算器的功能,从而实现一个简单的计算器软件。
运行结果:
应首先考虑计算器功能,设计计算器各按键的处理流程。
分别编写回调函数
注意表格容器的使用方法,以及表格容器、组装盒容器及其他容器的混合使用方法。
界面的分析:
主要用到Vbox,Hbox,Label,Button,可编辑框等控件。
编写界面,主要使用GTK界面库里的控件,编写出界面大致的框架后,优化界面的布局,使界面最终接近图中所示的界面。
3月22日-3月23日
1.QQ注册页面测试用例编写
QQ聊天注册界面需求如下:
昵称:
支持数字和字符组合,昵称长度不少于4位;
密码:
为增强登陆安全型,要求密码必须为数字和英文字符的组合,密码不能为空,且长度不能少于4位,错误提示“密码不能为空”或“密码长度不少于4位”;密码和确认密码必须保持一致,错误提示“密码不一致”;
性别和生日及所在地为必选项,生日未填提示“请选择生日”;
验证码:
注册页面需有验证码输入界面,当验证码输入不正确时,会提示“请输入正确验证码”;
“同时开通QQ空间”和“我已阅读并同意相关服务条款和隐私政策”均为必选项,在其他信息填写正确的情况下,没有选中会提示“请选中同时开通QQ空间”或“请选中我已阅读并同意相关服务条款和隐私政策”;
基于以上要求方能成功进入注册下一界面:
基于以上需求进行了QQ注册页面测试用例的编写。
老师讲解了几种测试用例的编写方法。
例如:
边界值,等价类,因果图等方法来设计测试用例。
3月25日-3月26日
1.Splint的应用。
1)空引用错误
在引用没有指向任何内存地址的指针时,会导致这种错误.也就是使用了一个没有赋值的指针.
splint支持一种特别的注释.这种注释写在C程序代码中,用于对程序进行特殊说明.
如下面这段程序.使用了/*@null@*/进行了说明,表示说明*s的值可能会是NULL.
//null.c
charfirstChar1(/*@null@*/char*s)
{
return*s;
}
charfirstChar2(/*@null@*/char*s)
{
if(s==NULL)return'\0';
return*s;
}
//END
使用splint扫描这个程序时,会输出:
#splintnull.c
Splint3.1.1---28Apr2005
null.c:
(infunctionfirstChar1)
null.c:
3:
11:
Dereferenceofpossiblynullpointers:
*s
null.c:
1:
35:
Storagesmaybecomenull
Finishedchecking---1codewarningfound
由于firstChar1和firstChar2都使用了null说明,表示指针s可能是个NULL值.所以,splint会对s值的使用情况进行检查.因为firstChar2函数中,对s的值进行了NULL的判断。
所以,没有对firstChar2函数的指针s输出警告信息。
2)未定义的变量错误
C语言中,要求先定义变量,而后才可使用。
所以,当使用一个没有定义的变量时,编译就会出错。
如下例,使用/*@in@*/说明的变量,表示必须进行定义。
使用/*@out@*/说明的变量,表示在执行过此函数后,这个变量就进行了定义。
//usedef.c
externvoidsetVal(/*@out@*/int*x);
externintgetVal(/*@in@*/int*x);
externintmysteryVal(int*x);
intdumbfunc(/*@out@*/int*x,inti)
{
if(i>3)return*x;
elseif(i>1)
returngetVal(x);
elseif(i==0)
returnmysteryVal(x);
else
{
setVal(x);
return*x;
}
}
//END
3月28日-3月29日
主要内容:
Jforum论坛系统为本次性能测试的被测试系统。
1.该系统是为满足软件测试学习交流需要而开发的论坛系统。
系统具有完备的论坛功能,包括发帖,回帖,置顶,会员注册,日志管理等。
为了支持该系统上线后庞大的用户访问量,保证系统的稳定运行,决定对该系统进行性能测试。
2.对Jforum论坛系统有如下性能指标要求:
(1)系统能够支持50个在线用户进行登录,发帖,查询操作。
(2)20个用户并发登录时,要求系统平均响应时间不超过1S。
(3)10个用户并发发布新主题时,要求系统平均响应时间不超过3S。
(4)20个用户并发搜索主题时,要求系统平均响应时间不超过3S。
(5)系统运行过程中内存利用率始终不应超过80%。
(6)系统运行过程中CPU利用率始终不应超过90%。
3.测试场景介绍及概要
(1)单业务会员场景设置:
20
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 洛阳 理工 毕业 实习 报告