软件测试项目实践教程习题答案_第1页
软件测试项目实践教程习题答案_第2页
软件测试项目实践教程习题答案_第3页
软件测试项目实践教程习题答案_第4页
软件测试项目实践教程习题答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

同步练习一判断分析题1-5√×××√6-10××√×√简单题1、什么是软件测试?软件测试的目的和作用是什么?软件测试的定义:(1)IEEE定义:使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际之间的差别。即软件测试是一个过程,包含若干活动,运行软件测试只是活动之一。(2)扩展定义:软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。(3)具体定义:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(包括输入数据与预期输出结果),并利用这些测试用例运行软件,以发现软件错误的过程。软件测试的目的和作用:对于软件开发来说,软件测试通过找到的问题缺陷帮助开发人员找到开发过程中存在的问题,包括软件开发的模式、工具、技术等方面存在的问题与不足,预防下次缺陷的产生。对于软件测试来说,使用最少的人力、物力、时间等找到软件中隐藏的缺陷,保证软件的质量,也为以后软件测试积累丰富的经验。对于客户需求来说,软件测试能够检验软件是否符合客户需求,对软件质量进行评估和度量,为客户评审软件提供有力的依据。 2、简述软件测试的目的和原则。(1)软件测试的目的和作用:对于软件开发来说,软件测试通过找到的问题缺陷帮助开发人员找到开发过程中存在的问题,包括软件开发的模式、工具、技术等方面存在的问题与不足,预防下次缺陷的产生。对于软件测试来说,使用最少的人力、物力、时间等找到软件中隐藏的缺陷,保证软件的质量,也为以后软件测试积累丰富的经验。对于客户需求来说,软件测试能够检验软件是否符合客户需求,对软件质量进行评估和度量,为客户评审软件提供有力的依据。(2)软件测试的原则1)测试应基于客户需求。2)测试要尽早进行。3)穷尽测试是不可能的。4)遵循GoodEnough原则。5)测试缺陷要符合“二八”定理。6)避免缺陷免疫。

同步练习二1、因果图法实现自动售货机的测试用例设计。(1)根据需求分析,找出原因和结果原因: 1.售货机有零钱找2.投入10元 3.投入5元 4.按下气泡水按钮 5.按下酸奶按钮建立中间结点,表示处理中间状态:

11.投入10元且按下饮料按钮

12.按下〖气泡水〗或〖酸奶〗的按钮

13.应当找5元零钱并且售货机有零钱找

14.钱已付清结果:21.售货机〖零钱找完〗灯亮22.退还10元23.退还5元24.送出气泡水25.送出酸奶(2)画出因果图。所有原因结点列在左边,所有结果结点列在右边,标识原因和结果,原因和原因之间的关系。(3)分析组合不能出现的情况,由于2与3,4与5不能同时发生,分别加上约束条件E。(4)因果图转换成判定表(5)设计测试用例2.使用场景法实现测试用例设计有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。(1)根据题目,分析场景流程基本流程:进入网站——选购商品——在线购买——账号登录——登录成功——付钱交易——交易成功——生成订购单(2)根据流程分析基本流和备选流基本流进入网站——选购商品——在线购买——账号登录——登录成功——付钱交易——交易成功——生成订购单备选流1网站无法正常进入备选流2商品数量不足备选流3选购商品受限(限购)备选流4账号不存在备选流5登录密码输入不正确,还有输入机会备选流6登录密码输入不正确,没有输入机会备选流7账户余额不足备选流8支付密码输入错误备选流9订购单生成失败(3)根据基本流和备选流设计场景场景/条件基本流购买成功基本流进入网站失败基本流备选流1商品数量不足基本流备选流2商品限购基本流备选流3账号不存在基本流备选流4登录密码输入错误(还有输入机会)基本流备选流5登录密码输入错误(没有输入机会)基本流备选流6账户余额不足基本流备选流7支付密码错误基本流备选流8生成订购单失败基本流备选流9(4)设计测试用例测试用例场景/条件登录付款预期结果1场景1购买成功有效有效购买成功2场景2进入网站失败不适用不适用购买失败3场景3商品数量不足有效不适用购买失败4场景4商品限购有效不适用购买失败5场景5账号不存在无效不适用购买失败6场景6登录密码输入错误(还有输入机会)有效不适用购买失败7场景7登录密码输入错误(没有输入机会)有效不适用购买失败8场景8账户余额不足有效无效购买失败9场景9支付密码输入错误有效无效购买失败10场景10生成订购单失败有效有效购买成功测试用例数据测试用例ID场景/条件账号密码预期结果1场景1购买成功98765432123456购买成功2场景2进入网站失败不适用不适用购买失败3场景3商品数量不足98765432123456购买失败4场景4商品限购98765432123456购买失败5场景5账号不存在aaa1234不适用购买失败6场景6登录密码输入错误(还有输入机会)987654321111购买失败7场景7登录密码输入错误(没有输入机会)98765432222购买失败8场景8账户余额不足98765432123456购买失败9场景9支付密码输入错误98765432123456购买失败10场景10生成订购单失败98765432123456购买成功

同步练习三DBDB5画出该程序的流程图:测试用例设计:循环次数输入数据覆盖路径kR[1]R[2]R[0]路径0112①③1121①②③22231②③

同步练习四使用Loadrunner录制脚本=1\*GB3①脚本录制录制一个登录和订票的脚本(添加注释)其中登录在action1中,添加事务,登录操作中添加集合点订票在action2中,添加事务=2\*GB3②脚本运行以上脚本迭代5次=3\*GB3③场景设计20个虚拟用户登录集合点策略为:100%到达运行vuser数目释放运行时间5分钟每5秒启动5个用户最后每5秒停止10个用户=4\*GB3④查看分析结果脚本录制脚本:见参考资源附件(2)场景设计如图:(3)查看运行结果使用badboy和jmeter,参数化出发地和目的地,实现一人买三张票详见参考答案

同步练习五1.请选择一种页面元素定位方法,模拟实现qq邮箱的登录功能。代码实现:fromseleniumimportwebdriverfromtimeimportsleeppage=webdriver.Chrome()page.get("/")page.maximize_window()sleep(5)page.switch_to.frame(page.find_element_by_id("login_frame"))page.find_element_by_id("u").send_keys("个人账号")page.find_element_by_id("p").send_keys("个人密码")page.find_element_by_id("login_button").click()sleep(3)page.switch_to.default_content()page.quit()2.编写自动化测试脚本实现以下过程:浏览器打开百度页面,进入登录--注册过程中,获取百度页面首页句柄,遍历所有窗口句柄,判断是否是首页,如果不是,返回百度首页。fromseleniumimportwebdriverfromtimeimportsleepdriver=webdriver.Chrome()driver.get("")#1、获取当前窗口的句柄百度首页的句柄first_window=driver.current_window_handle#点击登录按钮driver.find_element_by_link_text("登录").click()sleep(5)#点击立即注册按钮driver.find_element_by_link_text("立即注册").click()sleep(5)#2、获取当前所有打开的窗口的句柄all_handles=driver.window_handles#遍历所有的句柄如果句柄不是百度首页则切换到百度页面forhandleinall_handles:ifhandle!=first_window:sleep(5)driver.switch_to.window(first_window)sleep(10)driver.quit()注意:如果驱动版本不对运行有可能报错ConnectionAbortedError:[WinError10053]您的主机中的软件中止了一个已建立的连接。

同步练习六1.编写关于四则运算的Unittest的代码实现。(1)在一个文件中完成importunittestclassInteTest(unittest.TestCase):#继承父类unittest.TestCasedeftestadd(self):result=10-5expect=5self.assertEqual(result,expect)deftestsub(self):result=10+5expect=15self.assertEqual(result,expect)if__name__=='__main__':unittest.main()(2)独立文件定义计算类完成caculator.py#定义四则运算的类classCaculator:def__init__(self,a,b):#初始化将参数均强制类型转换为intself.a=int(a)self.b=int(b)defadd(self):returnself.a+self.bdefsub(self):returnself.a-self.bdefopp(self):returnself.a*self.bdefdiv(self):returnself.a/self.bTest_caculator.pyimportunittest#导入unittest框架fromcaculatorimportCaculator#导入要测试的四则运算的类#注意:如果这里导入出现红色波浪下项目上右击mark下即可解决classTestMath(unittest.TestCase):#定义的类继承了unitest中的TestCasedefsetUp(self):#setUp()和tearDown()在每个测试用例执行之前都会执行一次print("teststarting…………")deftest_add(self):j=Caculator(5,10)self.assertEqual(j.add(),15)#断言比较实际结果和预期结果是否一致print("addtest")deftest_sub(self):j=Caculator(10,5)self.assertEqual(j.sub(),5)print("subtest")deftest_opp(self):j=Caculator(10,5)self.assertEqual(j.opp(),50)print("opptest")deftest_assert(self):self.assertIs("liu","Liu")deftearDown(self):print("testend************")if__name__=='__main__':#unittest.main()#创建测试用例集合单元测试过程中如果需要对测试用例进行选择执行#一般建议使用测试用例集合suite=unittest.TestSuite()#向集合中添加测试用例suite.addTest(TestMath("test_add"))suite.addTest(TestMath("test_sub"))suite.addTest(TestMath("test_assert"))#执行测试用例集合runner=unittest.TextTestRunner()runner.run(suite)2.使用unittest测试框架模拟百度搜索过程3.编写代码实现百度搜索的测试报告,具体要求是:(1)测试用例在一个文件目录test_case下(2)测试报告在一个文件目录test_report下.test_baidu.pyfromseleniumimportwebdriverimportunittestfromtimeimportsleepclassTestBaidu(unittest.TestCase):defsetUp(self):self.driver=webdriver.Chrome()self.driver.implicitly_wait(10)print("开始测试进入页面……")self.driver.get("")sleep(5)deftest_baidu(self):driver=self.driverdriver.find_element_by_id("kw").send_keys("selenium")driver.find_element_by_id("su").click()sleep(5)title=driver.titleself.assertEqual(title,"selenium_百度搜索")deftearDown(self):print("测试结束……")self.driver.quit()runtest.pyimportunittestimporttimeimportHTMLTestRunnertest_dir='../test_case'discover=unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')if__name__=="__main__":report_dir='../test_report'now=time.strftime("%Y-%m-%d%H_%M_%S")#时间格式化report_name=report_dir+'/'+now+'_report.html'#保存测试报告的名称及位置withopen(report_name,'wb')asf:#使用wb二进制编写文件是因为报告中有图片runner=HTMLTestRunner.HTMLTestRunner(stream=f,title="百度搜索报告",description="百度搜索功能自动化测试总结")runner.run(discover)软件测试理论习题2一、单选题1、下列选项中,哪一项测试模型是瀑布模型的变种()。A、V模型B、W模型C、H模型D、X模型正确答案:A2、软件测试的GoodEnough原则是指()。A用适量的测试用例说明被测试程序正确无误B用适量的测试用例说明被测试程序符合相应的要求C用适量的测试用例发现被测试程序尽可能多的错D用适量的测试用例纠正被测试程序尽可能多的错误正确答案:C3、下列选项中,哪一项一般是由开发人员进行的自测()。A单元测试B冒烟测试C验收测试D集成测试正确答案:A4、下列选项中,哪一项是由因果图转换而来()。A判定表B约束条件表C输入状态表D输出状态表正确答案:A5、关于自动化测试,以下说法正确的是()。A自动化测试比手工测试更容易发现缺陷B手工测试时要求测试人员具备创造力发现更多存在的问题,而自动化测试只需要按照计划进行C运行相同的测试自动化测试一定比手工测试有效D自动化测试时验证期望输出值都正确正确答案:B6、软件测试工作应该开始于()。ACoding之后B需求分析阶段C概要设计阶段D详细设计阶段正确答案:B7、下列选项中适合自动化测试的是()。A需求不确定且变化频繁的项目。B产品设计完成后测试过程不够准确。C项目开发周期长而且重复测试部分较多。D项目开发周期短,测试比较单一。正确答案:C8、下列选项中,不属于按测试阶段分类的测试为()。 A黑盒测试B单元测试C集成测试D系统测试正确答案:A9、关于软件缺陷,下列说法中错误的是()。A软件功能缺失属于软件缺陷B软件功能多出不属于软件缺陷C软件维护过程中出现的错误也属于软件缺陷D软件运行过程中,如果某种功能与需求功能想违背,这种情况也属于软件缺陷正确答案:B10、在软件测试中,下面说法中错误的是()。A测试是为了发现程序中的错误而执行程序的过程B测试是为了表明程序是正确的C好的测试方案是极可能发现迄今为止尚未发现的错误的方案D成功的测试是发现了至今为止尚未发现的错误的测试正确答案:B二、填空题1、按照缺陷的严重程度可以将缺陷划分为()、()、()、()。参考答案:严重、一般、次要、建议2、按软件质量特性分类,可以将软件测试分为()和()。参考答案:功能测试、性能测试3、有一种测试模型,测试与开发并行进行,这种测试模型称为()模型。参考答案:W4、因果图中的()关系要求程序有一个输入和一个输出,输出与输入保持一致。参考答案:恒等5、()是指判定语句中的每个条件都要取真假值各一次。参考答案:条件覆盖6、软件性能测试的目的是为了对软件()情况给于评价,并发现可能存在的性能问题。参考答案:系统性能三、判断题1、软件缺陷产生的主要原因是开发人员水平有限。正确答案:错误2、软件生存周期是从软件开始开发到开发结束的整个时期。正确答案:错误3、只要能够设计出尽可能好的测试方案,经过严格测试之后的软件可以没有缺陷。正确答案:错误4、有效等价类可以捕获程序中的缺陷,而无效等价类不能捕获缺陷。正确答案:错误5、并发数量增大可能会导致系统响应变慢。正确答案:正确6、自动化测试可以达到100%覆盖率。正确答案:错误7、自动化测试可以提高测试效率,却无法保证测试的有效性。正确答案:正确8、软件在升级或者功能发生改变之后不需要进行回归测试,只需要测试改变的部分即可。正确答案:错误9、使用边界值方法测试时,只取边界两个值即可完成边界测试。正确答案:错误10、测试用例的数目越多,测试的效果越好。正确答案:错误四、简单题1、LoadRunner的组成部分及其作用。答:(1)VuGenLoadRunner是通过多个虚拟用户在系统中同时工作或访问系统的环境来进行性能测试的,虚拟用户进行的操作通常被记录在虚拟用户脚本中,而VuGen就是用于创建虚拟用户脚本的工具,因此它也称为虚拟用户脚本生成器。在创建脚本时,VuGen会生成多个函数用于记录虚拟用户所执行的操作,并将这些函数插入到VuGen编辑器生成基本的虚拟用户脚本,这个创建脚本的过程也叫作录制脚本。(2)ControllerController用于创建和控制LoadRunner场景,场景负责定义每次测试中发生的事件,包括模拟的用户数、用户执行的操作以及测试要监控的性能指标等。(3)AnalysisAnalysis是LoadRunner的数据分析工具,它可以收集性能测试中的各种数据,对其进行分析并生成图表和报告供测试人员查看。2、简述常用的性能测试指标。答:(1)响应时间响应时间(ResponseTime)是指系统对用户请求作出响应所需要的时间。这个时间是指用户从软件客户端发出请求到用户接收到返回数据的整个过程所需要的时间,包括各种中间件(如服务器、数据库等)的处理时间。(2)吞吐量吞吐量(Throughput)是指单位时间内系统能够完成的工作量,它衡量的是软件系统服务器的处理能力。吞吐量的度量单位可以是请求数/秒、页面数/秒、访问人数/天、处理业务数/小时等。(3)并发用户数并发用户数是指同一时间请求和访问的用户数量。例如对于某一软件,同时有100个用户请求登录,则其并发用户数就是100。并发用户数量越大,对系统的性能影响越大,并发用户数量较大可能会导致系统响应变慢、系统不稳定等。软件系统在设计时必须要考虑并发访问的情况,测试工程师在进行性能测试时也必须进行并发访问的测试。(4)TPSTPS是指系统每秒钟能够处理的事务和交易的数量,它是衡量系统处理能力的重要指标。(5)点击率点击率是指用户每秒向Web服务器提交的HTTP请求数,这个指标是Web应用特有的一个性能指标,通过点击率可以评估用户产生的负载量,并且可以判断系统是否稳定。点击率只是一个参考指标,帮助衡量Web服务器的性能。(6)资源利用率资源利用率是指软件对系统资源的使用情况,包括CPU利用率、内存利用率、磁盘利用率等,资源利用率是分析软件性能瓶颈的重要参数。3、请简述自动化测试使用的技术。答:自动化测试技术可分为录制与回放技术,使用录制回放工具可以将操作过程录制下来通过回放观察是否存在问题,录制工具如Loadrunner、UFT、Selenium及其衍生工具等;脚本测试可分为线性脚本、结构化脚本、共享脚本,在测试中可以使用自动化测试框架Junit、Unittest框架进行编写或者参考脚本录制回放工具生成的脚本进行测试;数据驱动测试分为关键字驱动测试、行为驱动测试,这两种测试的区别是针对数据操作对象和测试场景进行划分,工具如Loadrunner、Katalon等。软件测试理论习题1一、单选题1、以下关于软件可靠性与硬件可靠性主要区别的说法中,正确的是()。A、软件的每个拷贝都是完全一样的,而按照设计生产出来的同规格硬件总有微小差别B、软件的使用者通常遍及整个世界,而硬件的使用者通常只局限于某个地区C、软件的失效都是逻辑错误引起的,而硬件的失效都不是逻辑错误引起的D、软件经常面临恶意的使者,而硬件没有恶意的使用者正确答案:B2、严重的软件缺陷的产生主要源自()。A、需求B、设计C、编码D、测试正确答案:A3、驱动模块模拟的是()。A、子模块B、第一模块C、底层模块D、主程序正确答案:D4、不属于单元测试内容的是()。A、模块接口测试B、用户界面测试C、路径测试D、局部数据结构测试正确答案:C5、下列选项中,哪一项是等价类划分法用来设计测试用例的基础()。A、有效等价类B、测试用例集C、等价类表D、无效等价类正确答案:C6、下列方式可以提高和改善测试人员和开发人员关系的是()。A、理解项目经理工作的重要性B、测试人员参加代码调试C、单元测试、集成测试和系统测试都由同一批测试人员来完成D、对所发现的可能的缺陷以一种中立的方式进行沟通正确答案:D7、降低缺陷费用最有效的方法是()。A、测试尽可能全面B、尽可能早的开始测试C、测试尽可能深入D、让用户进行测试正确答案:B8、下列选项中,哪一项用于测试软件模块之间的接口()。A、单元测试B、集成测试C、回归测试D、系统测试正确答案:B9、下列选项中,哪一项不是导致软件缺陷产生的原因()。A、软件需求模糊B、用户操作不当C、开发人员水平有限D、软件结构复杂正确答案:B10、下列选项中,哪一项是对新构建的软件版本进行的最基本测试()。A、单元测试B、集成测试C、系统测试D、冒烟测试正确答案:D二、填空题1、验证软件单元是否符合软件需求与设计的测试称为()。正确答案:单元测试2、()的作用是使真假分支均被执行。正确答案:判定覆盖3、决策表通常由()、()、()、()四部分组成。正确答案:条件桩条件项动作桩动作项4、等价类划分法可将输入数据划分为()和()。正确答案:有效等价类无效等价类5、对于源代码插桩,()具有较好的通用性。正确答案:探针三、判断题1、所有软件都有一个用户界面,因此必须测试易用性。正确答案:错误2、正交实验设计法比较适合复杂的大型项目。正确答案:正确3、决策表法是由因果图演变而来的。正确答案:正确4、软件测试是评价软件质量的标准。正确答案:错误5、单元测试能发现80%的软件缺陷。正确答案:正确6、软件测试贯穿于软件的整个生命周期。正确答案:正确7、持续集成测试是软件开发、软件测试、项目部署的有效方法。正确答案:正确8、所有软件项目的缺陷处理流程都是一样的。正确答案:错误9、如果程序要求输入值是一个有限区间的值,可以划分为一个有效等价类(取值范围)和一个无效等价类(取值范围之外)。正确答案:错误10、只要能够设计出尽可能好的测试方案,经过严格测试之后的软件可以没有缺陷。正确答案:错误四、简单题1、简述软件测试的基本流程。答:软件测试的基本流程为:分析测试需求→制定测试计划→设计测试用例→执行测试→编写测试报告。(1)分析测试需求测试人员在制定测试计划之前需要先对软件需求进行分析,以便对要开发的软件产品有一个清晰的认识,从而明确测试对象及测试工作的范围和测试重点。在分析需求时还可以获取一些测试数据,作为测试计划的基本依据,为后续的测试打好基础。(2)制定测试计划测试计划是整个测试工作的导航图,但它并不是一成不变的,随着项目推进或需求变更,测试计划也会不断发生改变,因此测试计划的制定是随着项目发展不断调整、逐步完善的过程。测试计划一般要做好以下工作安排。确定测试范围:明确哪些对象是需要测试的,哪些对象不是需要测试的。制定测试策略:测试策略是测试计划中最重要的部分,它将要测试的内容划分出不同的优先级,并确定测试重点。根据测试模块的特点和测试类型(如功能测试、性能测试)选定测试环境和测试方法(如人工测试、自动化测试)。安排测试资源:通过对测试难度、时间、工作量等因素对测试资源合理安排,包括人员分配、工具配置等。安排测试进度:根据软件开发计划、产品的整体计划来安排测试工作的进度,同时还要考虑各部分工作的变化。在安排工作进度时,最好在各项测试工作之间预留一个缓冲时间以应对计划变

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论