自动化测试开发:期末复习:解答题

5、简答题[共20题]

296)什么是V模型?简述V模型在软件测试过程中的作用,以及在V模型中各个测试阶段开发过程对应关系
正确答案:(1)是软件开发瀑布模型变种,它反映测试活动分析设计关系。(2)从左到右,描述了基本的开发过程和测试行为,非常明确标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段开发过程期间各阶段的对应关系

(3)左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程各个阶段

297)什么是软件缺陷?请简述软件缺陷出现的原因
正确答案:(1)存在于软件之中的那些不希望,或不可接受偏差,而导致软件产生质量问题。(2)原因: 技术问题;算法错误、语法错误;计算和精度问题;系统结构不合理,造成系统性能问题;接口参数不匹配出现问题。


 

298)瀑布模型和螺旋模型的主要区别是什么?
正确答案:(1) 瀑布模型强调保证软件的质量,忽略人力,时间,资源等成本因素,以质量第一目标,每次需求发生变更都要从头再来。适合于一些大型稳定的项目。

(2) 螺旋模型是比较适合于前期需求不稳定,后期需求新增变更较多的项目,他是一种增量迭代开发的模型,每一次循环都是一次版本的升级。


 

299)在测试生命周期,测试过程分为几个阶段个阶段的含义是什么?
正确答案:分为以下几个阶段:

(1)单元测试:针对每个单元的测试, 以确保每个模块正常工作为目标。

(2)集成测试:对测试过模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题

(3)系统测试:检验软件产品能否与系统其他部分(比如,硬件、数据库及操作人员)协调工作。

(4)验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户作用,同时软件开发人员也应有一定程度的参与


 

300)简述软件测试的流程。正确答案:

(1)测试计划设计(2)测试方案设计(3)测试规程设计

(4)测试用例设计(5)测试环境配置(6)测试用例执行

(7)缺陷跟踪回归(8)测试报告设计


 

301)根据以下HTML代码和实现步骤,完成编码工作。百度搜索框HTML代码:

<span class="bg s_ipt_wr new-pmd quickdelete-wrap">

<span class="soutu-btn"></span>

<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">

<i class="c-icon quickdelete c-color-gray2" title="清空"></i>

<i class="quickdelete-line"></i>

<span class="soutu-hover-tip" style="display: none;">按图片搜索</span>

</span>百度搜索按钮HTML代码:<span class="bg s_btn_wr">

<input type="submit" id="su" value="百度一下" class="bg s_btn">

</span>

实现步骤:

(1)生成Firefox浏览器对象

(2)打开百度网站。

(3)使用ID元素定位方式定位搜索框,并输入“上海开放大学”。

(4)使用ID元素定位方式定位搜索按钮,并点击搜索按钮

(5)等待5s。

(6)退出浏览器。


正确答案:(1)driver=webdriver.Firefox()

(2)driver.get("https://www.baidu.com/")

(3)driver.find_element(By.ID, "kw").send_keys("上海开放大学")

(4)driver.find_element(By.ID, "su").click()

(5)sleep(5)

(6)driver.quit()


 

302)根据以下checkbox.html代码和实现步骤,完成编码工作

<html>

<head>

<title>复选框测试实例</title>

</head>

<body> 请选择你喜爱的水果</br>

<input type="checkbox" name="fruit" value="apple">苹果

<input type="checkbox" name="fruit" value="orange">桔子

<input type="checkbox" name="fruit" value="mango">芒果 </body>

</html>

实现步骤:

(1)生成Firefox浏览器对象

(2)从以下地址打开checkbox.html网页,"file:///D:/SeleniumProjects/selenium2/checkbox.html"。

(3)使用TAG定位所有的“input”元素

(4)用for循环遍历所有的input元素,根据属性"type"进一步确认每个选择框,并点击选取,选取后等待3s。

(5)退出浏览器。


正确答案:(1)driver = webdriver.Firefox()

(2)driver.get("file:///D:/SeleniumProjects/selenium2/checkbox.html")

(3)inputs = driver.find_elements(By.TAG_NAME, "input")

(4)

        for i in inputs:  

            if i.get_attribute("type") == "checkbox":    

                i.click()    

                sleep(3)

(5)driver.quit()


 

303)、根据以下HTML代码和实现步骤,完成编码工作。百度搜索框HTML代码:

<span class="bg s_ipt_wr new-pmd quickdelete-wrap">

<span class="soutu-btn"></span>

<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">

<i class="c-icon quickdelete c-color-gray2" title="清空"></i>

<i class="quickdelete-line"></i>

<span class="soutu-hover-tip" style="display: none;">按图片搜索</span>

</span>百度搜索按钮HTML代码:<span class="bg s_btn_wr">

<input type="submit" id="su" value="百度一下" class="bg s_btn">

</span>

实现步骤:

(1)使用XPATH根据ID元素定位搜索框,并输入"上海开放大学"。

(2)使用XPATH根据ID元素定位搜索按钮,并点击搜索按钮

(3)使用CSS根据ID元素定位搜索,并输入"上海开放大学"。

(4)使用CSS根据ID元素定位搜索按钮,并点击搜索按钮

(5)使用CLASS NAME定位搜索,并输入"上海开放大学"。

(6)使用CLASS NAME定位搜索按钮,并点击搜索按钮
正确答案:(1)driver.find_element(By.XPATH, "//*[@id=\"kw\"]").send_keys("上海开放大学")

(2)driver.find_element(By.XPATH, "//*[@id=\"su\"]").click()

(3)driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("上海开放大学")

(4)driver.find_element(By.CSS_SELECTOR, "#su").click()

(5)driver.find_element(By.CLASS_NAME, "s_ipt").send_keys("上海开放大学")

(6)driver.find_element(By.CLASS_NAME, "s_btn").click()


 

304)、写出常用的八种元素定位方法。
正确答案:(1)ID定位(2)NAME定位(3)CLASS定位(4)TAG_NAME定位

(5)LINK定位(6)PARTIAL_LINK定位(7)XPATH定位(8)CSS定位


 

305)ID,NAME,CLASS,LINK_TEXT,PARTIAL_LINK_TEXT,TAG_NAME有什么局限性
正确答案:1.id,name,class:依赖元素对应的属性,若元素没有id、name、class定位无法使用

2.link_text,partial_link_text:只适超链接。3.tag_name:只能找页面唯一元素页面中多个相同元素中的第一个元素。


 

306)已获取元素writeresult,浏览器对象为driver,根据操作要求写出下列ActionChains操作代码。

(1)建立ActionChains对象action(2)移动write(3)移动距离当前位置(10,50)的点

(4)移动回到write(5)移动到over元素,距离(10, 150)
正确答案:

(1)action = ActionChains(driver)(2)action.move_to_element(write).perform()

(3)action.move_by_offset(10, 50).perform()(4)action.move_by_offset(-10, -50).perform()

(5)action.move_by_offset(10, 150).perform()


 

307)、已获input1input22个输入元素浏览器对象driver,根据操作要求写出下列ActionChains操作代码。

(1)点击input1文本框(2)输入'Test Keys'(3)ctrl+a,全选(4)ctrl+c,复制

(5)ctrl+v,粘贴input2


正确答案:(1)input1.click()(2)action.send_keys('Test Keys').perform()

(3)action.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()

(4)action.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

(5)action.key_down(Keys.CONTROL, input2).send_keys('v').key_up(Keys.CONTROL).perform()


 

308)、设浏览器对象为driver,根据操作要求写出下列操作代码。

(1)隐式等待30s(2)显示等待10s直到ID='content_left'的内容被显示

(3)强制等待5s4)打印当前url(5)打印当前cookies(6)打印当前html源码


正确答案:(1)driver.implicitly_wait(30)

(2) wait = WebDriverWait(browser, 10)      

wait.until(EC.presence_of_element_located((By.ID, 'content_left')))

(3)sleep(5)

(4)print(driver.current_url)

(5)print(driver.get_cookies())

(6)print(driver.page_source)


 

309)、浏览器对象为driver,根据操作要求写出下列操作代码。

(1)切换窗体iframe(id:iname,name:nf)

(2)使用XPATH定位id='sb_form_q'的输入框,并输入"上海开放大学"

(3)下ENTER

(4)到iframe的上一级窗口

(5)使用XPATH定位链接为'http://www.baidu.com'的元素并click

(6)退出浏览器


正确答案:(1)driver.switch_to.frame("iname")

(2)driver.find_element(By.XPATH, "//input[@id='sb_form_q']").send_keys("上海开放大学")

(3)driver.find_element(By.XPATH, "//input[@id='sb_form_q']").send_keys(Keys.ENTER)

(4)driver.switch_to.parent_frame()

(5)driver.find_element(By.XPATH, "//a[@href='http://www.baidu.com']").click()

(6)driver.quit()


 

310)、浏览器对象driver下拉框HTML源码如下所示,根据操作要求写出下列操作代码。

<h4>下拉框:Select</h4>

<label>籍贯</label>

    <select name="site">

        <option value="0">北京</option>

        <option value="1">上海</option>

        <option value="2">深圳</option>

    </select>

操作要求:

(1)使用NAME方法定位下拉框(2)借助Select索引来选择下拉1元素

(3)借助Select value属性选择2个元素(4)借助Select text属性选择3个元素

(5)退出浏览器


正确答案:(1)SelectElement=driver.find_element(By.NAME, "site")

(2)SelectElement.select_by_index(0)

(3)SelectElement.select_by_value("1")

(4)SelectElement.select_by_visible_text("深圳")

(5)driver.quit()
 

311)、已知浏览器对象browser,根据操作步骤说明设置Firefox下载属性:

(1)获取Firefox属性对象

(2)设置使用自定义下载路径

(3)设置下载不显示下载管理器

(4)设置默认的保存文件夹"C:\Users\Administrator\Downloads"

(5)设置自动保存文件类型为压缩文件
正确答案:(1)profile = webdriver.FirefoxOptions()

(2)profile.set_preference("browser.download.folderList", 2)

(3)profile.set_preference("browser.download.manager.showWhenStarting", False)

(4)profile.set_preference("browser.download.dir", r"C:\Users\Administrator\Downloads")

(5)profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/zip')


 

312)、简述UnitTest工作流程
正确答案:(1)import unittest导⼊unittest模块

(2)定义个继承⾃unittest.TestCase的测试⽤例类,如class xxx(unittest.TestCase)。

(3)根据测试需要定义夹具setUp和tearDown

(4)定义测试⽤例,名字以test开头,主要是调⽤assertEqual、assertRaises等断⾔⽅法判断程序执⾏结果和预期值是否相符,unittest会⾃动test开头⽅法放⼊测试⽤例集中。

(5)调⽤unittest.main()启动测试

(6)根据需要,将测试结果打印输出或记录至文件通过第三方程序生成HTML报告


 

313)、已知测试类TestMathFunc,内含测试方法test_add(),test_divide(),test_minus(),请根据操作要求写出下列操作代码。

(1)建立TestSuite对象suite

(2)使用addTest()方法添加上述3个测试方法

(3)调用unittest.TextTestRunner的对象runner运行测试套件,设置verbosity=1

正确答案:(1)suite = unittest.TestSuite()

(2)suite.addTest(TestMathFunc("test_add"))

     suite.addTest(TestMathFunc("test_divide"))

     suite.addTest(TestMathFunc("test_minus"))

(3)runner = unittest.TextTestRunner(verbosity=1)

     runner.run(suite)

314)、关于unittest,请根据操作要求写出下列操作代码。

(1)定位测试TestMathFunc

(2)定义setUp函数打印信息print("do something before test!")

(3)定义test_add,相等断言((3,1+2),不相等断言(3,2+2)

(4)定义test_multi,相等断言((3,2*3)

(5)定义tearDown,打印信息print("do something after test!")


正确答案:(1)class TestMathFunc(unittest.TestCase):

(2)    def setUp(self):

                 print("do something before test!")

(3)    def test_add(self):

                 self.assertEqual(3,1+2)

                 self.assertNotEqual(3,2+2)

(4)    def test_multi(self):

                 self.assertEqual(6,2*3)

(5)    def tearDown(self):

                 print("do something after test!")

315)、已知pytest测试文件test_sample1.py代码如下,根据要求补充缺失代码

def func(x):

    return x + 1

(1)补充代码:设置标识case1

def test_file1_answer1():

    assert func(3) == 5

(2)补充代码:设置标识case2

def test_file1_answer2():

    assert func(5) == 5

(3)补充代码:设置参数化测试数据(5,5,10),(3,5,12)

def test_add(input1, input2, output):

  assert input1+input2 == output,"failed"

(4)补充代码:设置Xfail标识

def test_file1_answer3():

    assert func(6) == 6

(5)补充代码:设置Skip标识

def test_file1_answer4():

    assert func(7) == 7

(6)补充控制台pytest测试执行代码,要求显示每个测试函数的执行结果显示测试函数中print()函数输出
正确答案:

(1)@pytest.mark.case1

(2)@pytest.mark.case2

(3)@pytest.mark.parametrize("input1, input2, output",[(5,5,10),(3,5,12)])

(4)@pytest.mark.xfail

(5)@pytest.mark.skip

(6)pytest test_sample1.py -v -s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值