提问回顾

提问博客连接

  1. 做软件测试必须有哪些的知识储备?

    • 需要了解测试中使用的一些基本概念,例如单元测试,测试矩阵等。测试并不是程序实现完成之后才做的,而是伴随着程序开发流程的。在程序开发之前,我们需要设计模块,此时就需要为模块写单元测试。此处的测试是先于开发的。在实际开发过程中,我们需要对自己的部分模块进行功能测试,保证其正确性,同时使用之前写好的单元测试进行测试。这是开发过程中的测试。在开发之后,我们需要把模块衔接,这也是最容易出现问题的一个部分。我们使用测试矩阵和代码覆盖率来保证全面的测试,包括功能测试,性能测试以及用户体验测试。
  2. 开发一款应用之前,怎样精准地了解到用户是否真正的有这方面的需求?

    • 在进行用户需求分析时,我们需要深层次地理解用户真正需要什么,而不是直接的需求。或许有些需求用户提出了,但实现之后用户发现自己的需求并不是那么一回事。又有些时候,用户并没有用提出这一需求,但功能实现之后,用户会想到,竟然还能做出这种功能为什么之前没有想到。因此需求分析需要更加深入的思考而不仅仅浮于表面。
  3. 结对编程过程中,如果两者出现分歧,难以达成一致的时候,应该如何解决?

    • 在结对编程中,两名开发人员可以确立一个主副关系,在出现分歧且讨论之后无法妥协的情况下,优先使用主开发人的意见。
  4. 我们经常会觉得阅读别人的代码十分困难。那么我们自己写代码的时候,应该注意些什么,来尽可能的避免别人阅读自己代码时的反感呢?

    • 在编程时代码规范和良好的注释十分重要。代码规范包括命名规范,逻辑实现规范,缩进规范,书写规范等细则,代码规范可以使代码风格统一,便于阅读和理解。良好的注释也十分重要,有一些较为复杂的逻辑实现,如果没有注释,自己回头看都不能理解,更不要说是接手的其他人了。注释同样有一套规范,要求写明输入要求,输出要求,所做修改和实现的功能。在逻辑实现的代码内部同样需要嵌入一些关键注释。
  5. 如果我们在代码实现的过程中发现架构的实现并不是最优的,还可以用更有效率的方式满足需求。但修改架构将会影响大量之前的代码实现。此时应该如何取舍?

    • 在进行代码重构之前应当预估重构项目的时间成本和人力成本,以及带来的收益。只有当收益大于成本的时候,我们才选择进行重新架构。如果能够在之前的架构上进行修改以提高效率,尽可能在先前架构上进行修改和维护扩充。
  6. 在软件的测试阶段,我们可能遇到的问题可能比开发过程中遇到的问题还要多,怎么处理好在测试阶段的问题?怎么运用不同的测试方法进行测试?

    • 将测试阶段和开发阶段并行进行。开发过程实现一个小的功能就对该小功能进行测试。在保证每一步都正确的前提下进行模块之间的连接,就能够减少很多最终测试阶段出现的问题。且测试阶段的问题我们可以直接锁定到连接处,调试检查分为大大减少。在测试是我们可以运用多种方式进行测试。例如单元测试,压力测试,性能测试,测试矩阵测试等方式。

学到的知识点

  • 需求:需求分析应当做到深层次的分析,而不是仅仅去看到用户表面的需求。需要挖掘真正的需求。
  • 设计:在设计时应当尽可能的保证完整和全面,并保留设计文档。在设计时要考虑到可能的设计疏忽和未来的扩展。
  • 实现:实现过程需要做到规范实现,做到高内聚,低耦合等设计原则,多使用设计模式使逻辑更加清晰,模块化程度更高。
  • 测试:测试应当伴随着开发过程,从而时刻保证程序的正确性。
  • 发布:要趁早实现模块之间的连接部署,留出充足的时间发布并回收用户反馈。
  • 维护:收集用户的反馈情况,是比测试人员做测试更高效的方式。
posted @ 2018-01-13 11:11  LiuSD  阅读(97)  评论(1编辑  收藏  举报