高效研发实战训练营笔记Ⅱ

148 阅读3分钟

        科技探索的每一次进步,不只拓展着人类认知的疆界,也为经济社会发展带来了强大的动力,几次重大的科技革命带来机械化、电气化、自动化、信息化等多次产业革命,世界发展面貌和格局之深刻改变。
        DUT ~ 计算机科学与技术 ~ 殷祺云

image.png

一、质量意识

(1)项目管理三要素

image.png

(2)Bug修复完整流程
        测试人员发现bug并将其置为激活状态,开发人员收到激活的Bug并进行修复,Bug的状态变为处理中,随后开发人员修复完成将Bug置为解决状态交给测试人员验证,若修改通过,测试人员将Bug解关闭,若未通过,则继续修复,直到验证通过。
        Bug的五种状态:

image.png

        降低开发成本最有效的方式就是在bug引入的时候及时修复Bug。
(3)Bug提交反馈渠道

image.png

(4)Bug提交格式要求

image.png

(5)项目开发整体路径

image.png

(6)质量保证在项目各阶段的实现

image.png

(7)自动化开发

image.png

(8)众包测试

image.png

二、代码单元测试总体介绍

(1)单元测试
        单元测试指一段代码调用另一段代码,随后检验一些假设的正确性,以减少后续工作的负担,从而提升整体生产力
(2)优秀单元测试原则

image.png

(3)单元测试好处

image.png

三、Python单元测试

(1)单元测试框架

image.png

(2)Unitest框架中TestFixture的执行顺序

image.png

(3)单元测试的规范
        所有单元测试必须使用断言assert判断结果,禁止出现无断言的测试用例。

image.png

        一个测试用例只能测试一个函数,可以包含这一个函数的多个场景,但是不能包含有多个参数的函数。
(4)统计覆盖率(判断单元测试效果)的方法
        Coverage工具使用。

image.png

image.png

(5)Mock工具——简化单元测试(模拟逻辑)
  1. 改变函数逻辑,强行让其返回我们想要的返回值,使其结果可以预知。
  2. Mock工具可以构造一个相对稳定的模块,从而规避其他模块的问题,降低依赖性。
(6)Mock工具应用场景
  1. 通过retrun value可强行修改返回值。
  2. 将前一个例子的实例名改为类名,可实现替换类方法的返回值
  3. 根据调用次数返回想要的结果。
  4. 修改函数逻辑,根据参数返回想要的结果。
  5. 抛出想要的异常或错误。
  6. 获取调用信息。
  7. 在返回值改变的同时,确保api不会因mock而改变。
  8. 从零构造依赖模块。
  9. 替换函数调用链。

image.png

四、单元测试实践

(1)Unittest应用
待测试代码:
class Person(object):

def init_(self,name): 
self.name=name

def get_name(self):
"""获取姓名"""
return self.name

测试代码:

import unttest 
import person
#继承
class PersonTestCase(unittestTestCase):
"”针对Person类的测试""" 
#实例化
def srtUp(self):
selfp1=person.Person('zhang san') 
selfp2=person.Person('li si') 
#做断言
def Test get name(self)
"""获取人的名字"""
self.assertEqual(selfp1get_name()'zhang san') 
self.assertEqual(self.p2.get name()'li si')
(2)运行测试集
def MyTestSuite():
"""构造测试集"""

suite=unittest.TestSuite()#生成测试集
#将测试用例加入到测试集中
suite.addTest(Person TestCase(test getname)) 
suite.addTest(CompayTestCase(test who_is boss)) 
retum suite

if name==' main '
#将要测试的函数放入
unittest.main(defaultTest='MyTestSuite')

五、单元测试Java实践

(1)基本流程

image.png

(2)测试替身

image.png

六、个人感悟

        作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。IF(BOOL 学习= =FALSE)BOOL 落后=TRUE;不断的学习,我们才能不断的前进。

image.png