01- 软件测试入门
在学习软测试之前应该熟悉一个互联网公司的结构,然后发现问题后,更加高效准确的找到对应的人员。
互联网公司的结构
产品经理
UI设计师
前端开发
后台开发
软件测试
运维
运营
软件测试定义:
定义:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
作用:预防,发现,跟踪软件的缺陷。提高产品质量。更早,更快,更多的发现缺陷,从而降低这些缺陷可能带来的风险。
软件测试原则-思维
发现尽可能多的缺陷,不是为了说明软件中没有缺陷。
成功的测试在于发现了迄今尚未发现的缺陷。
测试不能证明100%正确,及时经过了最严格的测试以后,仍然可能还有没有被发现的错误潜藏在软件中。
评审(评审APP)>头脑风暴(看看自己有没有好的想法)>交叉测试(你测一遍,我测一遍) 例如:5个人,10个模块。
测试越早,发现问题后解决问题的成本越小。
软件测试原则
测试工作是有计划的,应该早开展测试工作。(撰写测试计划)
尽量避免测试自己开发的程序。
测试只能证明缺陷存在,不能证明缺陷不存在。
“彻底测试”难以成为显示,要考虑时间,费用等限制,不允许无休止的测试。
测试都应追溯到用户需求。
测试设计(测试用例)和测试执行应该进行分离。
软件缺陷具有免疫性,应尽可能采用多种方法和数据对软件进行测试。
全程软件质量保障
决定软件质量的关键因素有需求分析,设计和实现等,测试时贯穿于上述过程的一种检查手段。
测试时提高软件质量最直接的手段,但不是全部,软件开发周期中的各个环节都会影响到软件的质量。
测试能提高软件的质量,但是提高质量不能完全依赖测试。
如何进行高效的测试
1.测试人员可以尝试通过一些持续集成的手段,尽早的开展测试活动,还可以加入自动化技术,通过不断,反复性的测试来发现更多的缺陷。
2.测试可以做到对缺陷的预防,测试需要对缺陷进行检查。
3.一个高质量的软件系统是设计和开发出来的,并不是测试出来的。
软件缺陷
软件缺陷:被测试工程师和开发工程师称作bug
软件缺陷会导致软件不能正常运行,他的存在会一定程度上导致软件不能满足用户的需求,甚至有可能破坏或泄露用户的重要数据。
为什么软件缺陷无法完全消除?
1.软件运行的环境多种多样,比如华为手机,小米手机,苹果手机等。
2.逻辑关系复杂,比如外卖满减优惠等,这都是逻辑复杂。
3.多种多样的数据结构
4.软件开发的每个环节都可能把软件缺陷引入系统中,通过测试只能发现部分缺陷,并不能检测所有缺陷。
这些因素都决定测试活动中不可能遍历所有的功能和使用场景来发现软件系统中所有的缺陷。
80-20原则
80%的缺陷聚集在20%的模块中,经常出错的模块改错后还会经常出错。
软件测试流程图:
需求评审
制定测试计划
编写测试用例
执行测试
消除软件缺陷
回归测试-执行用例
撰写测试报告
完成
敏捷测试流程:
敏捷测试即是不断修正质量指标,正确建立测试策略,确认客户的有效需求能得以圆满实现和确保整个生产的过程安全的、及时的发布最终产品。
敏捷测试可以简单了解一下即可。我这里面有一篇文章,详解讲解了敏捷测试。点击敏捷测试。
测试启动准则:
1.测试计划已经制定并通过审批;
2.测试用例已经设计并通过审批;
3.被测对象已经开发完毕并等待测试。
测试何时结束:
基于测试用例的规则:8000个用例(打个比方)
基于测试期缺陷密度的规则:5天总bug数目小于多少个,没有严重的bug。
基于“运行期缺陷密度”的规则。看看试运行有没有问题。
测试完成准则:
对于非严格系统可以蚕蛹“基测试于用例”的准则。同事满足以下条件。
1.功能测试用例通过率100%;
2.非功能性用例通过率90%,比如兼容,性能等。
对于严格系统,应当补充“基于测试期缺陷密度”的规则:
3.n天内“测试期缺陷密度”全部低于某个值M.