版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持华北科技学院计算机学院综合性实验实验报告课程名称软件测试技术实验学期2015至2016 学年第 1学期学生所在院部计算机学院年级B12专业班级信管B121学生姓名王东东学号4112任课教师白磊实验成绩计算机学院制1文档来源为:从网络收集整理.word版本可编辑欢迎下载支持文档来源为 :从网络收集整理 .word 版本可编辑 . 欢迎下载支持实验报告须知1、学生上交实验报告时,必须为打印稿( A4 纸)。页面空间不够,可以顺延。2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、 内容、结果及分析等。3、教师应该填
2、写的内容包括:实验成绩、教师评价等。4、教师根据本课程的综合性实验指导单中实验内容的要求,评定学生的综合 性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验 中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一 刻录成光盘,与该课程的期末考试成绩一同上交到学院里存档。5、未尽事宜,请参考该课程的实验大纲和教学大纲。1文档来源为 :从网络收集整理 .word 版本可编辑 .欢迎下载支持文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持软件测试技术课程综合性实验报告开课实验室:基础四2015年 12月 08日实验题目1引言1.1编写目的本测试报告为飞机订
3、票系统项目的测试报告,目的在于总结测试阶段的测试以及分 析测试结果,描述系统是否符合需求。预期参考人员包括用户、测试人员、开发人员、 项目管理者、其他质量管理人员和需要阅读本报告的高层经理。1.2项目背景此飞机订票系统为网友提供的一个相互交流,学习的平台可以正常使用,实现数据的 共享和网友的互动交流。1.3参考资料资料名称作者软件测试技术范勇兰金森李慧卓QTP自动化测试最佳实践陈能吉需求规格说明书公司概要设计说明书:公司1.4术语和缩略语缩略语全意BITDDBuild Integration Test Design Document (建立集成测试方案)BITPBulid In tegrati
4、 on Test Pla n(建立集成测试计划)CITCComplete In tegration Test Case(完成测试用例编写)CITReComplete In tegration Test Report(完成集成测试报告)CITRuComplete In tegration Test Rules(完成集成测试规程编写)CSTCComplete System Test Case(完成系统测试用例编写)CSTDDComplete System Test Desig n Docume nt(完成系统测试设计文档)CSTRComplete System Test Rule(完成系统测试规程
5、编写)BSTPBuild System Test Pla n(建立系统测试计划)表二2测试概要2.1测试计划首先明确测试需求,创建测试需求,根据测试需求运用单元测试、集成测试技术编 写测试用例。软件测试贯穿于软件定义与开发的整个周期,软件的需求规格说明书,结 构设计及程序编码,都属于软件测试的对象。该飞机订票系统主要分为个人飞机订票空3文档来源为:从网络收集整理.word版本可编辑欢迎下载支持文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 间,个人飞机订票管理和飞机订票后台管理三个系统模块。运用单元测试对三个模块的 运行效果进行测试。王东东对评分管理系统进行界面的、功能的和性能
6、方面的测试,具体测试包括:界面测试:主要测试系统的登录界面是否合理、美观,各功能按钮、超级链接、输 入框等页面的可用性,易用性。功能测试:主要测试系统提供的功能是否正确运行,是否按照产品需求规格说明书 完成用户需求,保证系统功能正确、完善、实用。性能测试:通过查看多个用户同时登录系统及多个事物同时运行时,系统的响应时 间及反应情况,测试系统性能。2.2测试环境与配置(1) 硬件设备:惠普G系列PC(2) 软件环境。操作系统:WIND0W7WEB 服务器:Tomcat数据库:MYSQL相关软件:PHP,PHPWIND,DREAMWEAVER(3) 网络环境:学校内部的以太网,与服务器的连接速率为
7、100M,与客户端的连接速度 为10/100M自适应。测试内容测试方法测试工具备注功能黑盒、手工、回归QTP、LoadRunner、Junit性能黑盒、手工、回归、工具自动QTP、LoadRunner、Junit可靠性黑盒、手工、回归QTP、LoadRunner、Junit安全性黑盒、手工、回归QTP、LoadRunner、Junit可使用性黑盒、手工、回归QTP、LoadRunner、Junit兼容性黑盒、手工、回归QTP、LoadRunner、Junit安装和手册黑盒、手工、回归QTP、LoadRunner、Junit表三4文档来源为:从网络收集整理.word版本可编辑欢迎下载支持文档来源
8、为:从网络收集整理.word版本可编辑.欢迎下载支持3测试内容和执行情况3.1项目测试内容和执行情况对飞机订票系统的功能、性能、可靠性、安全性、可使用性、兼容性、安装和手册等 方面进行了全面的测试。3.2飞机订票系统功能测试功能模块基本要求测试情况测试通过是否1登录输入正确的用户名和密码可以登录系 统。输入错误的用户名和密码系统给出明 确提示。功能实现。2插入订票输入当前日期以后的任何一天,并填上 起飞地和目的地,选择任意航班,系统 能自动给出航班号、出发时间、到底时 间、航线号,你可以自由选择机票的数 量和等级,然后系统会给出总计的价 格,你还得填上自己的姓名,之后就点 击”n sert o
9、rder ”就完成了一次订票。输入当前日期以前的任何时候,系统会 提示日期错误;起飞地、目的地、姓名 都是必填项。订票完成后,可以删除、更新、查看订 单;任何时候都可以查看通告。功能实现3查询订单已经订票的用户只输入自己订票时输 入的姓名或者只输入自己订票的日期, 或者两者冋时输入,或者单独输入正确 的订单号,都可以查询自己的订单。 如果输入的数据和订票时输入的数据 不致,提示错误。功能实现4删除订单查询订单后可以删除此订单功能实现表四根据登录操作的特点,采用等价类和边界值方法设计测试用例。登录飞机订票系统的测试用例如表所示项目名称登录飞机订票系统 的测试项目编号开发人员XXX模块名称登录飞机
10、订票系统用例作者王东东参考信息需求规格说明书、设计说明书测试类型功能测试设计日期测试人员测试方法手工测试和自动化 测试相结合(黑盒测测试日期试)测试对象测试用户能否正常登录前置条件存在正确的用尸名和密码;登录页面正常装载;(用尸名为仕意四个字节长度以上的字符串,密码为mercury)测试状态(P/F)用例编号操作输入数据预期结果实际结果输入四个字符以上01长度的任意用户名 和正确的密码,点击OK按钮输入四个字符以上用户名 密码:mercury mercury正常登录正常登录P02长度的任意用户名 和正确的密码,点击En ter按钮用户名 密码:mercury mercury正常登录正常登录P0
11、3用户名正确,但密码 输入时未区分大小用户名 密码:mercuryMercury不能正常登 录,显示“密 码错误”的正常登录F与提示 不能正常登不能正常登用户名输入三个字用户名 密码:bbb录,提示“用录,提示“用04符长度的字符串,密户名至少四户名至少四P码正确mercury个字符长个字符长度”度”05用户名正确,密码第 一次错误或为空,点击0K用户名 密码:mercury mercur不能正常登 录,提示“密 码错误,您 可以尝试 3 次”不能正常登 录,只是提 示“密码错 误”并未提 示“您可以 尝试3次”F不能正常登不能正常登 录,只是提 示“密码错 误”并未提 示“您可以06用户名正
12、确,密码第 二次错误或为空,点击OK用户名 密码:mercury mercur录,提示“密 码错误,你 可以尝试 2 次”F尝试2次”07用户名正确,密码第 三次错误或为空,点击OK用户名 密码:mercury a不能正常登 录,提示“密 码错误,你 可以尝试 1 次”不能正常登 录,只是提 示“密码错 误”并未提 示“您可以 尝试1次”F08用户名正确,密码第 四次错误或为空,点击OK用户名 密码:mercury a不能正常登 录,提示“密 码错误,请不能正常登 录,提示“密 码错误,请P稍后重试”稍后重试”09用户名和密码均错 误时,点击OK用户名:mer 密码:mercur不能登录, 提
13、示“用户 名错误”,并 清空输入框不能登录, 提示“用户 名错误”,并 清空输入框P10用户名为空,密码正 确,点击OK按钮用户名:密码:mercury提示“请输 入用户名”提示“请输 入用户名”P11用户名正确,密码为用户名:mercury提示“请输提示“请输P空,点击OK按钮密码:入密码”入密码”12用户名和密码均为用户名:提示“用户提示“用户P空密码:名为空”名为空”用户名正确但是后用户名:aaa+1个13面有一个到多个空空格正常登录正常登录P格,密码正确密码:mercury14用户名正确但是密 码后面有一个到多 个空格,点击OK按 钮用户名:mercury 密码:mercury+1 个
14、空格提示“密码 错误,您还 可以尝试 3 次”提示“密码 错误”,但并 未提示还可 以尝试的次 数F光标可依次 移动到密码15使用Tab键光标在用户名框 内,按Tab键四次输入框和OK按钮、Ca ncel 按 钮、Help按 钮。Tab键功能 正常使用P在用户名框输入:用户名框中 显示:merBackSpace 键能正常使 用16在文本输入框中按Backspace 键mercury,光标在字符串末尾,按4次PBackSpace键在用户名输入框光标必须能左右箭头能17在文本框中使用左跟踪到相应 位置P右箭头屮使用左右箭头正常使用18在文本框中使用在用户名输入框能正常删除Delete键能Pdele
15、te 键中使用delete键正常使用在用户名输入框 中单击鼠标光标必须能19在文本框中单击鼠 标跟踪到相应位置输入框内文正常P在用户名输入框输入框内文20在文本框屮双击鼠P标中双击鼠标本被选中本被选中输入用户名,等待较用户名:mercury21长时间才输入密码等待3分钟输入密正常登录正常登录P吗码:mercury22输入用户名,马上切 换到其他程序,过一 段时间又切换回来用户名:mercury 切换到 window , word,过1分钟再 切换回来光标仍停在 原处光标仍停在 原处P表五1) 录制测试脚本启动 QuickTest 工具,打开 automati on- record and ru
16、n Sett in gs-record and runonly on下选择第三个选项,然后添加系统自带的文件,然后选择主菜单的run开始录制。 录制生成的脚本如下:Dialog(Login).WinEdit(Agent Name:).Set DataTable(”name, dtGlobalSheet)Dialog(Login).WinEdit(Agent Name:).TypemicTabDialog(Logi n).Wi nEdit(Password:).SetSecure DataTable(password, dtGlobalSheet)Dialog(Logi n).Wi nButt
17、on (OK).CIickrem Window(Flight Reservation).Check CheckPoint(Flight Reservation)If dialog(Login).Dialog(Flight Reservations).Exist Thendialog(Login).Dialog(Flight Reservations).WinButton(确定).Clickdialog(Log in ).Closeelsewindow(Flight Reservation).WinMenu(Menu”).Select File;ExitEnd Ifwait(1)录制的脚本用关键
18、字视图为2) 增强脚本录制好脚本后,就需要增强脚本了用户名文本框和密码文本框参数化界面如图所示一次性运行测试脚本,获得测试结果进行参数化后,运行脚本的循环次数由用户名和密码的数据对的个数决定,每执行一 次,QuickTest就会在数据表中读入对应的一组数据。在参数化脚本中,设计了 14组测 试数据,在执行脚本时,就循环了18次。运行结束后,QuickTest将自动弹出测试执行页面,显示每次运行的测试结果。由于用户名和密码有些是不正确的,因此不能正常登 录。对于不能正常登录的页面,系统都将弹出提示页面,QuickTest在迭代多次执行过程 中,将自动关闭弹出的提示页面和系统的登录首页。通过手动测
19、试和自动化测试,发现(1)有些用例不能插入检查点(2)密码未区分大小写(3)密码错误时,未提示还可以尝试的次数根据页面中各组件的特点,选择合适的测试方法和测试策略,分别设计测试用例。项目名称插入订票系统的测试项目编号开发人员XXX模块名称插入订票系统用例作者王东东参考信息需求规格说明书、设计说明书测试类型功能测试设计日期测试人员测试方法手工测试和自动化测 试相结合(黑盒测试)测试日期测试对象测试用户能否正常插入订票前置条件用户正常登录,正确填写该页面的各项内容,最后点击in sert order ”用例编号操作输入数据预期结果实际结果测试状态(P/F)01输入日期在今天以前112713提示“输
20、入的 日期需在2013/11/27 以 后提示“输入的 日期需在2013/11/27以后P02输入日期正确112813没有提示错 误没有提示错 误P03输入日期正确,然后 点击下拉框在02的基础上,点 击下拉框显示一系列 的选项显示很多选 项P04输入正确的日期,分 别选择起飞地和目的提,点击Flights图片112813 Denver Los An geles , 点击 Flights 图片能够选择航 班了点击 flights, 出现一系列 的航班P05在04的基础上,任选 一个航班在04的基础上,选 择第二个航班自动显示航 班号,出发时 间和抵达时 间,还有航线 和机票单价自动显示航 班号
21、,出发时 间和抵达时 间,还有航线 和机票单价F06在05的基础上,填上 任意的姓名在05的基础上,姓 名框中填上tao可以进行插 入订单操作 了右下角的订 单插入操作 的空间生效F07在06的基础上,进行 插入订单的操作在06的基础上,点击 Insert Order插入成功,显 示订单号插入成功,显 示订单号F表六启动 QuickTest 工具,打开 automation-record and run Settings-record and run10文档来源为:从网络收集整理.word版本可编辑欢迎下载支持文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. only on下选择
22、第三个选项,然后添加系统自带的文件,然后选择主菜单的run开始录制。 录制生成的脚本如下:Win dow(FlightReservatio n).Wi nObject(DateofFlight:).TypeDataTable(Date_of_Flight, dtGlobalSheet)Window(Flight Reservation).WinComboBox(Fly From:).Select DataTable(FlyFrom, dtGlobalSheet)Win dow(FlightReservatio n).Wi nComboBox(FlyTo:).Select DataTable(F
23、lyTo,dtGlobalSheet)Win dow(Flight Reservatio n).Wi nButto n(FLIGHT).CIickWin dow(FlightReservatio n).Dialog(Flights Table).Wi nList(From).Select 14686DEN 08:09 AM FRA 08:53 AM AA $179.47Win dow(Flight Reservatio n).Dialog(Flights Table).Wi nButto n(OK).ClickWin dow(Flight Reservatio n).Wi nEdit(Tick
24、ets:).SetSelection 0,1Win dow(Flight Reservatio n).Wi nEdit(Tickets:).Set 3Win dow(Flight Reservatio n).Wi nEdit(Name:).Set taoWin dow(Flight Reservatio n).Wi nRadioButto n(Bus in ess).SetWin dow(Flight Reservatio n).Wi nButton (I nsert Order).Click录制的脚本用关键字视图为图七查看订单模块的测试采用手动测试和自动化测试相结合的方式。对单个组件的测试采
25、 用手动测试,对插入订单页面中的各组件进行组合测试,采用自动化测试方法。手动测 试时要求依次执行各测试用例,并记录测试结果。采用自动化测试时,首先需要录制脚 本,然后采用参数化和插入检查点的方法增强脚本,随后执行测试脚本,分析测试结果。很完美,数据库中已经插入了刚刚生成的订单,可以通过订单号、用户名、订票日期 查看。3.3性能(效率).用组合业务测试用例例名称11文档来源为:从网络收集整理.word版本可编辑欢迎下载支持文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持力 匕匕 号 厶冃在线用户达到高峰时,用户可以正常使用系统,保证200个以内的用户可以冋时在线使用系统目的测试系统1
26、00个以内的用户冋时在线能否使用常用模块方法采用LoadRunner录制工具录制综合业务并发用户数与事务执行情况并 发 用 户 数事物平均响应时间事物最大响应时间事物成功率每秒点击率平均流量(字节/秒)5102050100表八性能测试脚本是描述单个浏览器像 Web服务器发送HTTP请求序列的。将业务流程转 化为测试脚本,通常指的就是虚拟用户脚本或虚拟用户。虚拟用户通过驱动一个真正的 客户程序来模拟真实用户。在这个步骤里,要将各类被测业务流程从头到尾进行确认和 记录,弄清楚这些过程可以帮助分析到每步操作的细节和时间,并能精确地转化为脚本。 此过程类似制造一个能够模仿人的行为和动作的机器人过程,其
27、实质是将现实世界中的 单个用户行为比较精确地转化为计算机程序语言。本次性能测试采用HP公司的LoadRunner工具,脚本编辑和编译工作在 virtual user generator中进行。ugen通过录制对客户端应用程序执行的操作来创建虚拟用户脚本。运行录制的脚本时,生成的虚 拟用户将模拟客户端与服务器之间的交互活动。创建的每个虚拟用户脚本至少包含三部 分:vuser_i nit 、一个或多个Actio ns及vuser_e nd。通常情况下,可以将登录到服务器 的活动陆指导vuser_i nit部分中、将客户端活动录制到 Actio ns部分中,并将注销过程 录制到vuser end部分
28、中。下表显示了要在每一部分录制的内谷以及执行每一部分的时脚本部分录制内容执行时间vuser_ in it登录到服务器初始化vuserActio n客户端活动Vuser处于运行状态Vuser_end注销过程Vuser完成或停止表九运行多次迭代的 Vuser脚本时,只有脚本的Actio ns部分重复,而vuser_i nit 和vuser_end部分将不重复。业务组合的脚本如下vuser_ in it()return 0;Actio n()web_url( WebTours”,URL=.1:1080/WebTours/ ”,Resource=0 ”,RecContentType=text/html
29、 ”,Referer= ”,Sn apshot=t1.i nf ”,Mode=HTML ”,LAST);lr_th in k_time(4);web_submit_form( lbgin.pl ”,Sn apshot=t2.i nf ”,ITEMDATA,Name=user name”,Value=taoxiaoyu ”,ENDITEM,Name=password ”,Value=taoxiaoyu ”,ENDITEM,Name=login.x ”,Value=43”,ENDITEM,Name=login.y ”,Value=12”,ENDITEM,LAST);web_image( Searc
30、h Flights Butt on ”,Alt=Search Flights Butt on ”,Sn apshot=t3.i nf ”,LAST);lr_thi nk_time(5);web_submit_form( reservati on s.pl ”,Sn apshot=t4.i nf ”,ITEMDATA,Name=depart ”,Value=De nver ”,ENDITEM,Name=departDate ”,Value=12/03/2013 ”,ENDITEM,Name=arrive ”,Value=London ”,ENDITEM,Name=returnDate ”,Val
31、ue=12/04/2013 ”,ENDITEM,Name=n umPasse ngers, Value=1”,ENDITEM,Name=roundtrip ”,Value= ”,ENDITEM,Name=seatPref”,Value=No ne ”,ENDITEM,Name=seatType”,Value=Coach ”,ENDITEM,Name=findFlights.x , Value=77,ENDITEM,Name=findFlights.y , Value=11 ,ENDITEM,LAST);web_submit_form( reservati on s.pl_2 ”,Sn apsh
32、ot=t5.i nf ”,ITEMDATA,Name=outboundFlight ”,Value=020;338;12/03/2013 ,ENDITEM,Name=reserveFlights.x ”,Value=33”,ENDITEM,Name=reserveFlights.y ”,Value=2”,ENDITEM,LAST);lr_th in k_time(8);web submit form( reservations.pl 3 ”,Sn apshot=t6.i nf ”,ITEMDATA,Name=firstName ”,Value=tao”,ENDITEM,Name=lastNam
33、e ”,Value=xiaoyu ”,ENDITEM,Name=address1”,Value=hubei ”,ENDITEM,Name=address2”,Value= eijing/china ”,ENDITEM,Name=pass1”,Value=tao xiaoyu ”,ENDITEM,Name=creditCard ”,Value=1234567”,ENDITEM,Name=expDate ”,Value=12/14 ”,ENDITEM,Name=saveCC ”,Value= ”,ENDITEM,Name=buyFlights.x ”,Value=75”,ENDITEM,Name=
34、buyFlights.y ”,Value=5 ”,ENDITEM,LAST);web_image( Sig nOff Butt on ”,Alt=Sig nOff Butt on ”,Sn apshot=t7.i nf ”,LAST);return 0;vuser_e nd()return 0;先设置性能测试场景,如下图:图十然后设置虚拟的IP,最后监控各性能指标。1分钟;2分钟;2分钟;2分钟;场景1:模拟5个用户在同一时刻登录系统,持续时间为场景2:模拟10个用户在同一时刻登录系统,持续时间为场景3:模拟20个用户在同一时刻登录系统,持续时间为场景4:模拟50个用户在同一时刻登录系统,持续
35、时间为场景5:模拟100个用户在同一时刻登录系统,持续时间为 2分钟;设置完成后,控制器将脚本分发到负载生成器向被测系统发起服务请求,同时通过服务 器上的性能监控器收集性能数据。性能信息采样频率会对服务器的性能产生影响,选取 重要的性能计数器并使用低的采样率,降低干扰。执行测试场景的界面模拟如下图所示:图十一分别执行以上五个测试场景,并记录测试数据。测试数据如下表所示:并事物平均响应时间事物最大响应时事物成功每秒点击平均流量(字节/秒)发间率率用户数55.4076.863100%5.6257640106.5789.991100%13.217929209.88614.55100%16.52241
36、15034.77347.82396.3%18.52827166100116.766132.3535%16.72624483表十二测试结果分析就是结合测试结果数据,分析出系统性能行为表现的规律,并准确定 位系统的性能瓶颈所在。在这个步骤里,可以利用数学手段对大批量数据进行计算和统 计,是结果更加具有客观性。用 LoadRunner的Controller 执行完测试后,运行结果数 据将从各负载生成器进行汇总,产生性能分析图表。如下图:图十三下面分析各个结果:从测试结果看,当有510个并发用户的时候,各事物的最大响应时间均在10s以内, 事务成功率为100%满足系统的要求,虽然 20个用户的事务成功率也为100%但是它 的最大响应时间超过了 10s,而在20个用户以上的测试结果表明,此系统的并发用户很 可能不支持50以上的人数。3.4可靠性测试内容基本要求测试情况测试通过是否掉电客户机掉电或强行关机后重启机实现要求。器,不丢失数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44290-2024木材与木制品生物碳含量计算方法
- 眼部化妆品项目运营指导方案
- 石灰制药剂项目营销计划书
- 创意雕塑艺术行业市场调研分析报告
- 家用除湿机产业链招商引资的调研报告
- 加油站用汽油泵产品供应链分析
- 化妆用芦荟凝胶产品供应链分析
- 在线出租服装行业市场调研分析报告
- 剥制加工行业相关项目经营管理报告
- 云身份和访问管理行业相关项目经营管理报告
- 企业合规管理培训课件讲义
- 一年级上学期看图说话写话练习课件
- 《美丽文字-民族瑰宝》课件
- 初中心理健康教育人教八年级上册目录 青春期两性关系PPT
- 合同风险防范培训讲义课件
- 杂草识别与防除课件
- 日间手术的麻醉课件
- DB32 4120-2021 建筑物移动通信基础设施建设标准
- 国家开放大学人文英语1形考任务(单元自测1-8)参考答案-新
- “四风”问题查摆整改台账
- 坚持“两个毫不动摇”课件 2022-2023学年高中政治统编版必修二
评论
0/150
提交评论