ソフトウェアテスト_備忘録
コマンドの終了ステータス
下記のコマンドで確認できる
出力が0だと成功、1か2だと失敗、2は重大な失敗らしいw
echo $?
テストってなに
具体例を知りたい
シェルスクリプト
コマンドラインに手で打っているコマンドをファイルに書いて一気に実行できるようにしたもの
シェルでやってるやつをシェルスクリプトとして作ってみる
一番上にシバン”#!/bin/bash”をつけておく、Linuxの場合はこれでOK
![](https://assets.st-note.com/img/1663983580869-j5Of77i2VI.png)
完成したらchmdで実行権限を与える
![](https://assets.st-note.com/img/1663983663633-DIvolds0YA.png)
実行すると1と0がでる
![](https://assets.st-note.com/img/1663983733662-K8RbEaVPyT.png)
シェルの関数
”関数名 () {}”で関数を定義できる
![](https://assets.st-note.com/img/1663983937498-pkRv7Ev4GK.png)
![](https://assets.st-note.com/img/1663984622585-8vxsxzzwrC.png)
テストとは
プログラムが意図通りに動作するかを別のプログラムを書いてテストすること
手順
関数やプログラムに引数で、あるいは標準入力からデータを入力
出力を記録
期待した出力と一致するか比較
理想的な開発スタイル
こまめにテスト
テストに通ったらGitにコミット
テストに失敗して、原因不明なら前回のコミットに退却
・git restoreさらに細かくテスト
リグレッションテストの書き方
テストの流れ
テスト対象の関数やプログラム(コマンド)に何か入力
・今回は標準入力を使ってテスト出力をあらかじめ期待していたものと比較
比較の結果違っていたら異常終了
準備
plus_stdinをplusに改名→コミット
次のようなシェルスクリプトを書いて動作確認
とりあえずGitHubにpushしておく
![](https://assets.st-note.com/img/1664188932155-5WXFz5vAPE.png)
下記のように記述を変更する。出力を変数に格納。
テストコマンドで正解と比較
動作確認
![](https://assets.st-note.com/img/1664189122836-XJab2FI6Xq.png)
ちなみにシバンに-xvを追加すると実行の様子を実況中継してくれるようになる。困ったときはこれで確認しよう。
![](https://assets.st-note.com/img/1664189199307-ED8hIPscSU.png)
更なる改良
![](https://assets.st-note.com/img/1664190016527-s2esixy86i.png)
テスト項目の追加
![](https://assets.st-note.com/img/1664190462822-xepI9InpBy.png)
GitHubでのテスト
GitHub Actions
仕事や人の使うソフトの場合は?
環境とかライブラリが違う場合、困る
テストもできるウェブサービスがある
自動でテストできることがキモ
終了ステータスが0になったら次へいく
テストするときの使い方
1.リポジトリに.github/workflowsというディレクトリを作成
2.〇〇.ymlというファイルを作成
3. ymlファイルを編集
4. pushするとワークフローの自動実行
![](https://assets.st-note.com/img/1664191106445-4LaDIoOKOo.png)
![](https://assets.st-note.com/img/1664191147030-xrO4SRd609.png)
![](https://assets.st-note.com/img/1664191838038-qCDQ74i25C.png)
複数バージョンのPythonを試す
ジョブにstrategy/matrix/python-versionを追加
![](https://assets.st-note.com/img/1664192368042-SUmiebq7Bv.png)
READMEの整備
書くこと
何をするためのソフトか
使い方
ダウンロード、インストール、起動する手順、簡単な使い方どんな環境で使える可
OS/Pythonのバージョン/他に必要なソフトウェアやライブラリテストの結果
権利関係・謝辞
著作権、ライセンス(利用しているソフトウェアについて)
手伝ってくれた人のリストと手伝いの中身その他必要なこと
![](https://assets.st-note.com/img/1664193410591-NmqBk4x5Hu.png)
![](https://assets.st-note.com/img/1664193431907-jy52Ou8pEU.png)
この記事が気に入ったらサポートをしてみませんか?