【背景】
近20年以来,我国的经济,人文素养等高速发展,人对服务的要求也变得越来越高。软件产业在这20年时间里得到飞速发展。人的要求提升,叠加产业环境的巨变,软件质量如何保证?这应该是任何一位立志于这个行业中的人都应该思考的问题。当然,任何一个软件行业的从业者都知道“质量非常重要”,但是如何做到真正地确保软件质量,思考的人有多少?我不知道,你知道吗?
当然,一个软件质量的好坏可以由多个环节,多个因素决定。比如:与客户的需求沟通的质量,客户需求转化为软件需求的质量,软件设计的质量,代码编写的质量,测试验证质量,产品正式发布前与客户确认演示质量等环节。本次思考的侧重于“测试验证”环节。所以喜欢看本文就不要扯“质量是设计出来的,质量是编码出来的”这些咸蛋!:)
本文的思考者苦于“软件测试验证”环节的折磨,因此提出思考,和大家探讨。
【人】
任何事情都是人做的,人是一切工作的核心要素,因此选对的人来做测试验证设计工作,对于质量的确保至关重要。
对于同一个事物,不同的人思考的层次是不同的。牛顿在苹果树下,思考的是“苹果为什么会掉下来”,所以他成了伟大的科学家,并从他思考的成果推动了人类社会的发展,而更多的普通人思考的也许是诸如“苹果好吃不”,“现在是酸的,还是甜的”,“我可以摘一个尝尝吗”等等琐碎的问题。
瞎扯上面的段子,主要想表达:不同的人,面对同一个事物,思考的深度和角度是不一样的。因此,找对的人来做事,能事半功倍,反之则事倍功半。
软件测试验证环节对人的要求:
1)具有独立的主动思考能力。一个没有独立和主动思考能力的人,做不好这个工作,确保不了质量!不要怀疑,如果你敢怀疑,你就去用这样的人吧,当产品交付上线后,你一定会付出惨痛的代价!如果你正在从事软件的测试验证工作,问问自己:“”我是独有独立的主动思考能力的人吗?”;
2)能怼,会怼。守护质量是你的全部价值所在,质量不受受伤是你的工作底线,谁敢践踏,“有理有据的怼过去”;
3)能沟通,能表达,能交流。在整个软件测试验证工作中,需要和需求工程师,软件开发工程师,boss,生产人员,甚至客户进行协同,不能表达,不能沟通,不能交流,你能做好吗?
【环境和工具】
软件行业是非常追求工作效率的行业,效率低下可混动。因此,环境和工具在提高效率方面尤为重要,具体思考如下:
1)具有稳定的软件测试验证环境。临近测试任务下达前一刻,我们才动手去搭建测试环境,这样是不可取的。对于一个成熟的软件产品研发,保持测试环境的稳定性,可以最大化的提升软件测试验证效率,加快测试验证的进度,及早完成测试验证工作;
2)工具。工具的价值在于提效,把一些重复性的测试验证动作交给工具去做,工具执行的结果一定比人更加快速和准确,工具可以不吃不喝,一天24小时的进行,但是我们人类需要吃喝拉撒,做不到工作那样的持续性。同时,对于工具而言,要比人严谨很多,一是一,二十二,没有外部干扰因素;
【方法】
测试验证关键的一步在使用正确的方法设计一份全面的测试验证方案和测试用例。几乎所有的软件质量外泄问题,都是没有考虑全面软件的工作场景而导致的。因此,如果我们可以设计一套方法可以穷举所有的测试验证场景,并全面地执行之,我们的软件是否就不会产生质量事故外泄呢?就不会被用户抱怨,甚至卸软件呢?
针对上述的观点,有如下的思考:
1)绘制详尽的接口和模块关系图。一定要尽可能的穷尽出来,把所有直接或间接的内外部软件模块或系统均画出来,并且标识出相互之间的接口情况。在绘制这个图的过程中,也可以帮助你完善对被测对象的思考,哪些地方我想漏掉了。同时绘制完成后,也可以以此图和需求工程师,开发工程师,甚至客户进行交流确认。
2)列举和梳理所有的接口的变更和影响。比如:被测对象与外部5个模块或系统关联,且总共有30个接口,那么我们需要逐一分析本次需求对每个接口造成的影响;
3)针对有影响的接口设计对应的测试方案。需要包括:正常的,异常的测试场景。
4)针对本次需求没有进行影响的接口需要考虑回归验证测试。虽然经过分析后,本次需求不会对接口产生影响,但是代码是你的上游程序员编写的,我们可不能假设和相信他,进行回归验证是一个好的方法,只是我们不需要重新设计用例了。
【结束语】
本文从人,环境与工具,方法三个方面对软件测试验证确保软件质量的思考进行了列举。更多的是想法和思考,没有给出具体的 *** 作方法,也没有提供测试用例设计和编码指导。抛砖引玉,请在评论区贡献你的思考,本人将进行搜集总结,后续进行进一步的思考和分享。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)