一、了解软件测试职位及发展定位
1、测试行业现状与前景
传统行业的转型成互联网+,以及国内各种软件测试网站的增多,公司业务量激增,创业风潮、互联网/移动互联网/物联网迅猛发展,大数据、云计算时代,人工智能的到来,软件测试人才需求倍增。
可是现阶段,我国软件测试基础人才不足,已成为周约我国软件产业发展的瓶颈。据国家权威部门统计,中国软件测试人才缺口近40万,并且仍在以每年20%的,度增加。在未来5-10年中这一数字还将继续增大。只要有互联网产品,就必须有测试!
在未来,如何应对快速发展的技术变革,是测试行业和测试人员需要深耕的问题。
从业人员主要分布于我国中东部、南部地区,其中深圳的测试工程师需求量最多,其次是上海、北京、广州.杭州、苏州、东莞、武汉、成都以及南京。
2、测试的定义、目的与对象
2.1 软件测试的定义
- 早期而言:
在1973年Bil Hetzel提出,软件测试是对程序够按预期运行建立起的一种信心。 - 经典定义
是1979年Myers提出,测试是为发现错误而执行程序的过程。
定义:软件测试(Software Testing)是软件生存期的一个重要的阶段,是软件质量保证的一个关键步露,通俗的来说,软件测试就是软件在投入运行前,对软件需求分析、设计规格说明和编码进行最终复审的活动。
3.目前,IEEE定义(ISO/EC/IEEE 29199)
使用人工或者自动的手段来运行或者是测量软件系统的过程,以检验软件系统是否满足规定的要求,并且找出与预期结果之间的差异。
手段:人工或者自动化。
目标:系统是否满足规定的要求-用户:系统的实际结果(软件运行出来的结果)与预期结果(需求文档中描述的内容)之间的差异。
2.2 软件测试的目的
1、测试是完善程序的过程,目的在于使系统更加符合用户的使用习惯(易用性),让系统在上线后带给客户极高的用户体验。
2.测试应致力于发现至今为止未发现的错误。
3.从用户的角度出发,希望通过软件测试暴露软件中隐藏的谓误和缺陷并减少软件上线后的问题,使得产品更容易被接受。
4.从软件开发者出发,希望测试成为证明产品中不存在错,以正确的实现用户需求的过程。
2.3 软件测试的对象
软件测试是不等同于程序测试,软件测试贯穿于软件定义和开发的整个期间。
软件测试的对象:
1.程序:功能正确,性能良好。
2.文挡:包括用户手册和运维手册,内容完整正确。
3.数据:系统配置文件,符合国家规范。
3、测试的原则
3.1 测试证明软件存在缺陷 -Testing shows presence of defects
测试只能证明软件中存在缺陷,但并不能证明软件中不存在缺陷。
软件测试是为了降低存在缺陷的可能性,即便是没有找到缺陷,也不能证明软件是完美的。
3.2 穷尽测试是不可能的 -Exhaustive testing is impossible
穷尽测试是不可能的。如计算器
现在软件的规模越来越大,复杂度越来越高,想做到完全性的测试是不可能的,在测试阶段,测试人员可以根据风险和优先级来进行集中和高强度的测试,从而保证软件的质量。
3.3 测试尽早介入 -Testing early
为什么测试要尽早介入呢,简单的说就是保证软件质量,降低风险和成本。测试人员一般在需求阶段就开始介入,使缺陷在需求或设计阶段就被发现,缺陷发现越早,修复的成本就越小。
3.4 缺陷集群性(2/8原则) -Defect clustering
这个也是经验之谈了,一般认为,百分之80的缺陷集中出现在百分之20的核心功能区域,一旦你在某个功能模块找到缺陷相关附近功能多半也会存在问题,
在项目实战中,在写缺陷报告的时候,做横向对比,比对类功能,相近模块,版本,机型。指定同归测试策略的时候,也可以重点测试。
3.5 杀虫剂悖论(杀虫剂效应) -Pesticide Paradox
反复使用相问的杀虫剂会导致害虫对条虫剂产生免疫而无法杀死害虫。软件测试也一样。如果一直使用相同的测试方法或手段,可地无法发现新的bug。
为了解决这个问题,测试用例应当定期修订和评审,增加新的我不同的测试用例帮助发现更多的缺陷。测试人员不能一直依赣于现有的测试技术,而要不断的提升测试方法以提高测试效率,
3.6 测试活动依赖于测试内容 -Testing is context dependent
根据业务的不同,软件测试内部也分为不同的行业,比如游戏行业、电商行业、金融行业。不同的行业,测试活动的开展都有所不同,比如测试技术,测试工具的选择,测试流程都不尽相同,所以软件测试的活动开展依赖于所测试的内容。
比如:你在金融公司测试,安全性就是第一位。电子商务测试,功能性则更加重要。
3.7 不存在缺陷的谬论 -Absence of error
软件测试不仅是找出缺陷,同时也需要确认软件是否满足需求。如果开发出来的产品不满足用户的需求,即便找到和修复了缺陷也作用不大。
有可能99%没有bug的软件也是不能使用的。如果对错误的需求进行了测试,这种情况就发生了。
问:你对你的未来职业发展有什么规划?
---