自动化测试开发-解答题(标记)
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_text,partaion_link,TAG_NAME,LINK_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,iname”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, “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)!