自学内容网 自学内容网

自动化测试开发-解答题(标记)

5、简答题[共20题]

296)、什么是V模型?简述V模型在软件测试过程中的作用,以及在V模型中各个测试阶段和开发过程的对应关系。

正确答案:>1: >2: >3: >4: >5: >6:

297)、什么是软件缺陷?请简述软件缺陷出现的原因。

正确答案:

什么是:不希望和不可接受的偏差,从而导致的质量问题

原因:技术问题:算法,语法 系统结构不合理性能有影响, 接口参数不匹配

 298)、瀑布模型和螺旋模型的主要区别是什么?

正确答案:瀑布 强调的是 软件开发的展开忽略不考虑人力 时间 资源 成本 等因素,以质量第一目标,需求变更 重新再来,适合大型稳定项目 ;螺旋 适合前期需求不稳定,后期需求新增比较多的项目,增量迭代的开发模型,每一次需求迭代循环都是一次版本升级

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://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:/....”)

>3: inputs = driver.find_element(By.TAG_NAME, “input”)

>4: for input in inputs:

if input.get_attribute(“type”) == “type””checkbox”

input.click()

         sleep(3)

>5: drier.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, “//input@*[@id = \“kw\”]”).send_keys(“ssss”)

>2: driver.find_element(By.XPATH, “//* [@id = “su”]”).click()

>3: driver.find_element(By.CSS_SELECTOR, “//input@[“id” = “kw”] #kw”).click()

>4: driver.find_element(By.CSS_SELECTOR, “//input@[“id” = “su”] #su”).click()

>5: driver.find_element(By.CLASS_NAME, “//input@[“id” = “kw”] s_ipt”).send_keys(“”)

>6: driver.find_element(By.CLASS_NAME, “//input@[“id” = “su”] bg_s_btn“).click()

304)、写出常用的八种元素定位方法。(下面全是大写)

正确答案:id,name,class,css,xpath,text,link_textpartaion_link,TAG_NAMELINK_TEXT,PARTIAL_LINK_TEXT

305)、ID,NAME,CLASS,LINK_TEXT,PARTIAL_LINK_TEXT,TAG_NAME有什么局限性?

正确答案:id,name,class 获取唯一标签不能获取多标签通过元素定位,没有这些标签则定位不了,LINLK_TEXT,PARTIAL_LINK_TEXT 获取的是一组里面的第一个,不能保证唯一性主要通过a标签超链接定位

TAG_NAME 获取唯一元素,如果多个同名则获取第一个元素 不准确

306)、已获取元素write,result,浏览器对象为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_toby_offsetelement (10, 50).perform()

>4>: action.move_to_element_by_offset(-10,-50).perform() 5: action.moev_to_element(10, 150).perform()

307)、已获取input1和input2为2个输入框元素,浏览器对象为driver,根据操作要求写出下列ActionChains操作代码。

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

(5)ctrl+v,粘贴至input2

正确答案:>1:driver.find_element(input1).click() >2: driver.find_element(input1).send_keys(‘TestKeys’)

>3>

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

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

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

正确答案:

>1: dirver.implicitly_wait(30)

>2: wait = WebDriverWait(browser, 10)

      wait.unitl(EC.presence_of_element_located(By.ID, ‘content_left’))

>3: sleep(5) >4:print(driver.current_url()) >5: print(driverget_cookies()) >6: print(driver.current_source source_page())

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)退出浏览器:driver.quit()

正确答案:

> 1: driver.switch_to_frame(By.iframe,inameiname”)

 >  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, “htt//…”//a[@href = “htttt…..”]”).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:SeletElement = driver.find_element (By.Name, “site”) >2: SelectElement.find_by_index(0)

>3: selectElement.find_by_value(2 1) >4: selectElement.find_by_visiable_text(3深圳”) >5: driver.quit()

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

(1)获取Firefox属性对象

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

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

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

(5)设置自动保存的文件类型为压缩文件

正确答案:>1:options profile= webdriver.FirefoxOptions() >2: options.

312)、简述UnitTest工作流程。

正确答案:>1:导入unittest(x)模块) import unittest >2:定义测试用例继承类unittest.TestCase 如class xx(unittest.TestCase) >3:定义 test_ 开头的py文件 >4:设置 夹具, setUp() 和 tearDown()方法

>5:执行命令 unittest.main() >6:> 生成报告

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

(1)建立TestSuite对象suite

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

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

正确答案:

>1: suite = unitest.TestSuite()

>2: suite.addTest(TestMathFunc(“test_add()”))

      Suite.addTest(TestMathFunc(“test_divide()“)

      Suite.addTest(TestMathFunc(“test_mius()“)

>3: runner.run(unittest.TestTestRunner, verbosity=1)

      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):

              self.Print(“do something before test!”)

>3:def test_add(self):

              self.assertEquals(3,1+2)

                   self.assertNotEquals(3, 2+2)

>4:def test_multi(self):

              self.assertEquals(3, 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.parametrize.param(“input1,input2,output,[(5,5,10),(3,5,12)])

4:@pytest.mark.Xfail 5:@pytest.mark.Skip  6:pytest test_sample1.py -v -s


原文地址:https://blog.csdn.net/Abraxs/article/details/143726148

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!