在这周的学习中,由于作业比较多,读书的时间比较分散,尽管如此,我任然按照我的阅读计划完成了自己的阅读量,通过这次对这几章的学习,我学到了一些新的知识,有一些收获。
对于用户体验,我们必须明确用户体验的要素。一个软件,用户的第一印象很重要,一个良好的用户第一印象往往决定了用户对软件的评价。要设计一个好的软件,我们可以通过5W1H的方法来判断。我们在开发软件时,需要从用户的角度来考虑问题,这里我学习到了软件团队的设计师和软件工程师的“同理心”。所谓同理心,就是理解别人的处境、心机、动机的能力。一颗为用户着想的“同理心”是好的产品设计的出发点。软件的服务始终都要记住用户的选择,要注意短期刺激和长期影响。同时,避免让用户犯简单错误也是我们需要考虑的一个重点。通过飞机上的遥控器这个例子让我联系实际明白了避免用户犯简单错误的重要性。好的用户体验是大家所需要的,但是当当质量与用户体验冲突时,我们需要保证质量而不是注重用户体验。对于一个软件的用户界面,我们可以通过一些著名的评价标准来规范自己的软件用户界面。
软件开发完成后,我们需要对软件进行测试。测试设计按测试设计的方法分类,有两种方法,黑箱和白箱。所谓黑箱,是指在设计测试过程中,把系统软件当做一个“黑箱”,无法了解和使用系统的内部结构及知识。白箱是指在设计测试过程中,设计者可以看到系统的内部结构和使用系统的内部结构及知识。按测试的目的分,可分为功能测试、非功能测试两种。测试方法多种多样。有在前面学习的单元测试,还有代码覆盖率测试、构建验证测试、验收测试、“探索式”的测试、回归测试、场景/集成/系统测试、伙伴测试、效能测试、压力测试、内部/外部公开测试、易用性测试等。实战中的测试是在项目的稳定阶段执行的。团队在这一阶段的核心任务是在满足最低接受条件的前提下,提高各个部分的质量。
软件的质量强调软件要符合用户及利益相关者的需求。在学习前面的知识时。我们学到了“软件=程序+软件工程”。同理。软件质量=程序质量+软件工程质量。软件的质量在于软件外在功能的质量。软件工程的质量就与软件在时间、成本上满足利益相关者的需求。衡量软件工程的质量,我们可以借用一套比较成熟的理论--CMMI(Capacity Maturity Model Integrated,能力成熟度模型集成)。运用CMMI模型管理项目,不仅降低了项目的成本,而且提高了项目的质量和按期完成率。要达到一定的软件质量,是要付出成本的。SWEBOK特定义了软件质量成本包括预防、评审、内部故障、外部故障这四个方面。磨刀不误砍柴工,每个团队在成本上的付出都会收到回报。
软件测试和开发完成后,我们就进入稳定和发布阶段。软件项目需要进行会诊。软件团队的各个角色代表组成了会议小组,处理每一个影响产品发布的问题。复杂项目的会诊时,我们要按时发布软件可以采用设计变更(Design Change Request,DCR)和ZBB(Zero Bug Build)招数。项目临近结束时,可以采用最后回归测试以及砍掉功能招数。通过不同频率和不同覆盖范围的渐进发布。
在以前,我们有组队编写过Java 教务系统网页版,由于自身的原因我们并没有进行用户体验相关工作,完全按照自己的想法和套路来实行,界面搭建比较随意,没有进行用户界面的规范和美化。同时,我们只是致力于老师验收时能蒙混过关,对于自己开发的软件没有进行多次测试,导致软件具有局限性。
学习了这几章后,我知道以前我们的做法是不对的,我们应该在开发阶段之前对软件的用户界面进行详细搭建、美化,让使用这个软件的用户对这个软件的满意度上升。同时,我们在测试阶段应仔细测试,找到软件的问题所在,努力解决,而不是选择蒙混过关。
在以后的学习过程中,我会努力在开发软件时按标准出发,规范自己的软件用户界面,仔细测试自己的软件,通过合适的测试用例来完成软件的测试。同时尽自己的最大努力来保证自己软件的质量。