1.一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
2.测试的类别
功能测试:编写测试用例,主要的就是测试步骤和预期结果,根据用例执行测试步骤,然后通过 眼睛和思考判断实际结果和预期结果是否相等,如果相等则通过,否则不通过 自动化测试(包含:单元自动化测试,接口测试自动化,web测试自动化) (1)单元测试自动化:调用被测试类或方法,根据类或方法的参数,传入相应的数据,得到一个返回结果 ,断言是否与预期结果相等,相等通过,否则失败。单元测试关注的时代码的实现与逻辑 (2)接口自动化测试:根据接口文档,到底传入的时get或post请求呢?调用被测试的接口,构造相应的数据 (id=1,name=yht),得到返回值,是200就成功,并返回查询结果,不管输入的参数是怎样的,都将得到一个 结果,最终断言返回的结果是否等于预期结果,等于则通过,否则失败。接口测试关注的是数据,只要 数据没问题,基本就成功,剩下的就是如何把数据展示到页面了 (3)web测试自动化:这测试更贴近用户行为,模拟用户点击了某个按钮,像文本框输入的什么。比如 一个登陆操作,用户登陆了之后可以看到登陆成功,但web自动化并不知道点击登陆是否生效,所以 需要找到证据,比如:登陆成功后会显示“欢迎xxx”之类的。这就是登陆成功的最有力证据,所以,当web自动化 登陆成功后,就去获取这个数据断言,相等则通过,否则失败。所以web测试自动化关注的是用户的 操作行为,页面上的按钮和输入框是否可用 总结:功能测试也自动化测试没什么区别,唯一的区别就是一个有人来执行,一个有代码或者工具来执行