WordCount测试项目小结

一、本文对应项目GitHub地址

https://github.com/ReWr1te/WCProject

二、项目PSP表格

PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 5 10
· Estimate · 估计这个任务需要多少时间 5 10
Development 开发 355 600
· Analysis · 需求分析 (包括学习新技术) 50 100
· Design Spec · 生成设计文档 10 10
· Design Review · 设计复审 (和同事审核设计文档) 25 50
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 20
· Design · 具体设计 100 100
· Coding · 具体编码 100 200
· Code Review · 代码复审 10 20
· Test · 测试(自我测试,修改代码,提交修改) 50 100
Reporting 报告 40 40
· Test Report · 测试报告 25 25
· Size Measurement · 计算工作量 5 5
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 10 10
合计 400 650

三、简单解题思路

  1. 需求分析:仔细阅读给出需求并细化,重新陈述以及思考解决难度;
  2. 设计文档:基本设计思路整理;
  3. 制定代码规范:根据指定的语言(Java)指定相关规范;
  4. 具体设计:核心算法设计,6个功能主要分为6部分,同时注意衔接;
  5. 具体编码;
  6. 代码复审:经验排错;
  7. 测试:撰写测试用例并完善,同时修改代码以提高质量;
  8. 总结和撰写报告;

四、实现流程及代码说明

Java类代码分为主函数和几个功能函数,但是并非所有功能都在功能函数里面实现。具体核心代码及说明参见以下代码和注释(更加详细的解释等待补充):

// 计算字符数
public static int chars(String str) {
char[] charArray = str.toCharArray();
int c_num = 0;
for (int i = 0; i < charArray.length; i++)
{
c_num++;
}
return c_num;
}
// 计算单词数
public static int words(String str) {
char[] charArray = str.toCharArray();
int w_num = 0;
for (int i = 0; i < charArray.length; i++)
{
if (charArray[i] == ‘ ‘ || charArray[i] == ‘,‘ || charArray[i] == ‘\n‘)
{
w_num++;
if (charArray[i] == ‘ ‘ && charArray[i - 1] == ‘,‘)
w_num--;
if (charArray[i] == ‘\n‘ &&
(charArray[i - 1] == ‘\n‘ ||
charArray[i - 1] == ‘{‘ || charArray[i - 1] == ‘}‘))
w_num--;
}
}
return w_num;
}
// stopList扣词
for (int i = 0; i < args.length; i++)
{
System.out.println(args[i]);
if (args[i].equals(str_e))
{
if (exclude == -1)
{
System.out.println("\n不能单独使用-e参数!\n");
out = false;
}
else
{
String[] strArray = str_read.split(" ");
String tempStr = e_sb.toString();
String[] e_str = tempStr.split(" ");
for (int j = 0; j < strArray.length; j++)
{
for (int k = 0; k < e_str.length; k++)
{
System.out.println(strArray[j] + e_str[k]);
if (strArray[j].indexOf(e_str[k]) != -1)
w_num--;
}
}
}
}
}
// 输出(若没有指定文件名则输出到result.txt,若没有文件则创建文件)
if (out == true)
{
File file = new File(filename);
if (!file.exists())
file.createNewFile();
FileWriter fileWriter = new FileWriter(file.getName(), true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(str_output);
bufferedWriter.close();
}

五、测试设计

按照白盒测试设计方法,尽量覆盖所有功能:

(功能衔接处会有高风险,多设计两个测试用例)

  1. wc.exe -c -w -l test1.cpp
  2. wc.exe -c -w -l test2.c
  3. wc.exe -c -w -l -a test1.cpp
  4. wc.exe -c -w -l -a test2.c -e stopList.txt
  5. wc.exe -c -w -l -a test2.c -o outputFile.txt
  6. wc.exe -c -w -l -a test2.c -e stopList.txt -o outputFile.txt
  7. wc.exe -s *.cpp
  8. wc.exe -s *.c
  9. wc.exe -c -w -l -a -s *.cpp -e stopList.txt -o outputFile.txt
  10. wc.exe -c -w -l -a test1.cpp test2.c -e stopList.txt -o outputFile.txt

六、参考文献

本次项目无参考文献。

原文地址:https://www.cnblogs.com/ShiyuanTian/p/8613462.html

时间: 2024-10-08 18:45:53

WordCount测试项目小结的相关文章

关于iOS10 Xcode8真机测试项目出现的问题 &quot;code signing is required for product type &#39;xxxxx&#39; in SDK &#39;iOS 10.0&quot;..

昨天用真机测试项目出现这样的错误,在网上搜集了一些信息,所以将自己的经验分享出来帮助更多的人. 第一步: 检查你的1和2是否填写正确,如果你是运行别人的项目,BundleIdentifier要和你的Xcode之前填写的要一致,例如,我之前填写的com.baidu.xxxx,但是我真机测试的是com.alibaba.xxx,这样就不一致了,可能会导致错误 第二步: 在Bulid Setting 中找到Singning, 在3处,你可能会看到自己的开发者账号,不要选!!,还有下面 4 Develop

arm、linux、qt项目小结

QT资源文件 1.新建文件或工程 -> qt资源2.添加,资源名称(Image),选择路径,完成3,打开Image.qrc, 添加后缀,一般就是 /4.添加文件,添加图片5. 调用 (:/11.png) 转http://blog.sina.com.cn/s/blog_5c70dfc80100r257.html 在Qt中处理图片一般都要用到QImage类,但是QImage的对象不能够直接显示出来,要想能看到图片,初步发现有两种方法. 一.QImage转QPixmap,然后用QLabel::setP

测试项目

今天给大家分享测试项目的一些步骤吧,虽然我只学了一个多月,有些说的不好的请谅解! 测试一个项目首先需要看看软件的需求说明书,熟悉软件的各项功能,写出详细的计划,让测试人员逐一模块进行测试.最后对软件进行评估,问题的报告. 1.软件需求规划 需要写一份详细的软件需求,写出用户对软件的功能.性能,设计等问题 2.编写测试用例 每个模块都进行测试,并且用不同的word文档进行编辑.发现缺陷和问题的所在. 3.测试缺陷报告 对软件的缺陷编辑成一份文档,缺陷有些是看不见的,这时候需要用文字来表达,并且和程

Spring+mybatis测试项目总结

1.项目目的a.通过Spring+Mybatis实现通过web访问达成mySql的操作b.理解Spring+Mybatis的配置c.理解maven对项目的管理2.配置文件a.采用maven约定结构,src/main/java.src/main/resources.src/main/test b.基本springMVC+Mybatis需要用到的jar spring-web.spring-webmvc.spring-core.spring-beans.spring-context.spring-co

压力测试~一套完整的压力测试项目文档

Web压力架构 张占岭 Web压力架构... 1 一 系统性能测试概述... 1 1.1 性能测试概述... 1 1.2 性能测试的指标... 2 1.3 关键点的描述... 2 1.4 性能测试的目的... 2 1.5 测试项目开发规范... 2 二 使用VS压力测试工具进行测试... 3 2.1 性能测试(WebTest). 3 2.1.1 概念... 3 2.1.2 如何建立性能测试... 3 2.1.3 使用CS代码快速建立性能测试... 5 2.1.4 运行当前性能测试... 6 2.

编码的 UI测试项目

以下是用Visual Studio 2013 做编码的UI测试的步骤 1.新建测试项目 在visual studio中(我用的版本是2013 update2)点击文件->新建->项目,选择“编码的UI测试项目”,在对话框中选择“录制操作.编辑UI映射或添加断言”,点击“确定”. 2.录制的一系列操作 进行完以上步骤,VS最小化,出现编码的UI测试生成器: 从左向右的button依次是:开始/暂停录制,编辑,添加断言,生成代码: 之后进行录制: 点击“开始录制”,打开浏览器,再点击“生成代码”,

项目小结及难点复盘

项目小结及难点复盘 1.程序总体框架结构 计算程序属于客户端,与服务端建立socket连接并实时获取需要计算的数据. 计算程序结果写入oracle数据库对应的表中,供前台界面读取并显示结果. 2.计算模块所处的位置及功能 完成数据socket通信.数据接收.数据解析.计算.结果写数据库操作. 3.使用技术 socket通信.线程同步.OTL.Oracle数据库查询.STL. 3.遇到的技术难点 1)Socket通信简单协议实现 实现中很像当年的中兴捧月的比赛题目,三次握手.保活连接&通信. 最终

测试项目环境配置

1.建立jiwuyf数据库,加入esfpicture1-100个分表,加入esfidfactory主键生成器表 2.jboss下的mysql-ds.xml中加入数据源配置 <local-tx-datasource> <jndi-name>jiwuyf_slaves_db</jndi-name> <connection-url>jdbc:mysql://192.168.1.253:3306/jiwuyf?useUnicode=true&characte

测试项目注意项

前言 属于新手注意项. 最近写项目的接口的时候,自己都是用到哪儿接口测试哪个.但是感觉很不好,不用的时候注释.写了那么长长的一坨代码.最后决定建一个测试项目用来测试,建立好了,运行的时候总是报错,说缺少什么.dll.config.自己给指定的文件下添加了config后又报别的错,弄得我好郁闷,可能之前项目自己也没有建多单元测试的缘故吧,总感觉这东西so easy啊.之前自己私下玩的时候,没问题啊(没有连接数据),必须搞定它,这么简单的东西都弄不出来还怎么混啊. 过程 经过一番搜索,搜了半天,发现