カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、オブジェクトの実際の型を隠蔽したりすることをいう。
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性」として「カプセル化は絶対にやめろ」としている。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
探検
カプセル化の有害性、オブジェクト指向は愚かな考え
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/06/18(木) 23:47:36.69ID:l/2SQUll780デフォルトの名無しさん
2020/07/05(日) 03:04:01.72ID:LRfXHt7v 正しいとか正しくないとかどうでも良いので、privateのテストをさせてほしいものですね。
781デフォルトの名無しさん
2020/07/05(日) 03:05:23.08ID:58eR5uXa >>778
> 今関わってる製品とかソース10万ファイルくらいあってそれぞれのファイルに
> 分岐なんか少なくとも数十から数百はあると思うが、その数百万から数千万、下手したら
> 億の分岐を全部全パターンテストするの?
それユニットテスト関係ないよね?
手動で全パターンをテストするの?
答えはお前自身が言えるはずだよね?
> 今関わってる製品とかソース10万ファイルくらいあってそれぞれのファイルに
> 分岐なんか少なくとも数十から数百はあると思うが、その数百万から数千万、下手したら
> 億の分岐を全部全パターンテストするの?
それユニットテスト関係ないよね?
手動で全パターンをテストするの?
答えはお前自身が言えるはずだよね?
782デフォルトの名無しさん
2020/07/05(日) 03:06:25.42ID:58eR5uXa ユニットテストなんかしてねーよ
ソース修正するたびに、
億の分岐全パターン手動テストしてるんだよ!
って言ってほしいな?
まだかな?
ソース修正するたびに、
億の分岐全パターン手動テストしてるんだよ!
って言ってほしいな?
まだかな?
783デフォルトの名無しさん
2020/07/05(日) 03:13:56.54ID:LRfXHt7v けんか腰は知能が高いと言われるム板に似合わないんだよな。
ユーモアを交えて会話するべきだと思います。
ユーモアを交えて会話するべきだと思います。
784デフォルトの名無しさん
2020/07/05(日) 04:06:24.23ID:9F15TCk0 >>779
知ってる限りGAFAでもERP各社あたりでもやってないけどね。
試しに(ドイツだが)SAPあたりにカバレージどれだけですかって聞いてみれば?
何それ美味しいの?だよ。
まあこういう人は何言っても無駄だし下手に事実いうと発狂するからもう相手は
おしまい。
知ってる限りGAFAでもERP各社あたりでもやってないけどね。
試しに(ドイツだが)SAPあたりにカバレージどれだけですかって聞いてみれば?
何それ美味しいの?だよ。
まあこういう人は何言っても無駄だし下手に事実いうと発狂するからもう相手は
おしまい。
785デフォルトの名無しさん
2020/07/05(日) 04:11:13.84ID:58eR5uXa ではGoogleの事例
https://feb-acchan.hat
enablog.com/entry/2018/03/11/214344
現状について
Googleでは、420万ほどのテストが存在して、1日1億5千万テストケース
実行されていて(150million test execution/dayだからあってますよね?)、
1テストケースあたり35回実行されているらしいです。
そして、これらがすべて自動テストであり、手動テスト率が驚異の0%!
ただし、UX系のテストは手動だそうです。
UIのテストなどは自動化できるが、UXはさすがにまだ人手とのことで、
人の感覚などが関係するUXテストがAIによってテスト可能で人の仕事が無くなるといった日はまだ到来していません。
自動テストですが、毎テストごとに420万テストケースを実行しているわけではなく、
全テストケースを実行するのは一定の間隔で、普段は修正に対して依存があるテストだけを実行しているそうです。
https://feb-acchan.hat
enablog.com/entry/2018/03/11/214344
現状について
Googleでは、420万ほどのテストが存在して、1日1億5千万テストケース
実行されていて(150million test execution/dayだからあってますよね?)、
1テストケースあたり35回実行されているらしいです。
そして、これらがすべて自動テストであり、手動テスト率が驚異の0%!
ただし、UX系のテストは手動だそうです。
UIのテストなどは自動化できるが、UXはさすがにまだ人手とのことで、
人の感覚などが関係するUXテストがAIによってテスト可能で人の仕事が無くなるといった日はまだ到来していません。
自動テストですが、毎テストごとに420万テストケースを実行しているわけではなく、
全テストケースを実行するのは一定の間隔で、普段は修正に対して依存があるテストだけを実行しているそうです。
786デフォルトの名無しさん
2020/07/05(日) 04:13:30.65ID:58eR5uXa Googleの考え方
https://www.publickey1.jp/blog/11/post_144.html
テスターはデベロッパーがテストできるようにするのが仕事
このようにEngineering Productivityのメンバーのレポートラインと
所属を分けることのメリットを、Whittaker氏は次のように書いています。
ここにグーグルの品質管理の大事なポイントがあるようです。
一般にテストは製品開発の最後の段階で行われることが多く、製品チーム/開発チームの
中にテストチームを抱えても、テストフェーズ以外は手持ちぶさたになってしまうため、
多くの開発組織ではテストチームは製品チーム/開発チームとは別に存在し、
必要なときに登場してテストを行う、というケースがほとんどです。
====以下重要====
ところがグーグルではEngineering Productivityに属する、テストのノウハウを持ち支援を
行うエンジニアたちは、前述のように各製品チームに所属しています。
そう、グーグルではテストチームではなく、製品チームが自身で品質管理を負っている。
各デベロッパは自身でテストすることを期待されている。テスターの仕事は、自動テストの
インフラを確立することと、それによってデベロッパ自身がそれをプロセスの中で実行できるようにすること。
テスターはデベロッパーがテストできるようにするのだ。
各製品チームは、Engineering Productivityのメンバーの支援を受けつつ、自分たちの責任で
テストを行わなければならない、ということがグーグルのテストを行う際のポリシーのようです。
https://www.publickey1.jp/blog/11/post_144.html
テスターはデベロッパーがテストできるようにするのが仕事
このようにEngineering Productivityのメンバーのレポートラインと
所属を分けることのメリットを、Whittaker氏は次のように書いています。
ここにグーグルの品質管理の大事なポイントがあるようです。
一般にテストは製品開発の最後の段階で行われることが多く、製品チーム/開発チームの
中にテストチームを抱えても、テストフェーズ以外は手持ちぶさたになってしまうため、
多くの開発組織ではテストチームは製品チーム/開発チームとは別に存在し、
必要なときに登場してテストを行う、というケースがほとんどです。
====以下重要====
ところがグーグルではEngineering Productivityに属する、テストのノウハウを持ち支援を
行うエンジニアたちは、前述のように各製品チームに所属しています。
そう、グーグルではテストチームではなく、製品チームが自身で品質管理を負っている。
各デベロッパは自身でテストすることを期待されている。テスターの仕事は、自動テストの
インフラを確立することと、それによってデベロッパ自身がそれをプロセスの中で実行できるようにすること。
テスターはデベロッパーがテストできるようにするのだ。
各製品チームは、Engineering Productivityのメンバーの支援を受けつつ、自分たちの責任で
テストを行わなければならない、ということがグーグルのテストを行う際のポリシーのようです。
787デフォルトの名無しさん
2020/07/05(日) 04:14:26.63ID:58eR5uXa https://www.publickey1.jp/blog/11/post_144.html
Whittaker氏はさらに次の記事「How Google Tests Software - Part Two」で、
エンジニアに与えられる3つの役割についても触れています。
Softweare Engineer in Test(SET)
テストのしやすさ(Testability)にフォーカスした役割。デザインレビューをし、
品質やリスクをチェック。コードをテストしやすいようにリファクタリングする。
ユニットテストや、テストフレームワーク、自動テストも書く。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Whittaker氏はさらに次の記事「How Google Tests Software - Part Two」で、
エンジニアに与えられる3つの役割についても触れています。
Softweare Engineer in Test(SET)
テストのしやすさ(Testability)にフォーカスした役割。デザインレビューをし、
品質やリスクをチェック。コードをテストしやすいようにリファクタリングする。
ユニットテストや、テストフレームワーク、自動テストも書く。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
788デフォルトの名無しさん
2020/07/05(日) 04:16:28.52ID:58eR5uXa 「コードをテストしやすいようにリファクタリングする。」
っていうのがまさにprivateでテストしたいのに
public経由でテストできない
ならばテストしやすいようにリファクタリングしましょうって話になってる
っていうのがまさにprivateでテストしたいのに
public経由でテストできない
ならばテストしやすいようにリファクタリングしましょうって話になってる
789デフォルトの名無しさん
2020/07/05(日) 04:18:26.54ID:58eR5uXa https://monoist.atmarkit.co.jp/mn/articles/1705/24/news008.html
C/C++かつxUnit系ツールは、数分調べるだけでも数種類見つかります。
今回はその中の1つ「Google C++ Testing Framework(以下、GoogleTest)」の
使い方を紹介します。
Google Testとは、IT業界の巨人、グーグル(Google)製の
単体テストフレームワーク(C/C++用)です。MinUnitと比べて高機能で、
さまざまな使い道があります。ただし、MinUnit同様、テストコードを記述するため、
C/C++をある程度知ってることが前提です。
C/C++かつxUnit系ツールは、数分調べるだけでも数種類見つかります。
今回はその中の1つ「Google C++ Testing Framework(以下、GoogleTest)」の
使い方を紹介します。
Google Testとは、IT業界の巨人、グーグル(Google)製の
単体テストフレームワーク(C/C++用)です。MinUnitと比べて高機能で、
さまざまな使い道があります。ただし、MinUnit同様、テストコードを記述するため、
C/C++をある程度知ってることが前提です。
790デフォルトの名無しさん
2020/07/05(日) 04:19:35.40ID:9F15TCk0 >>785
テスト件数が問題なのではない。オートメーションすればファンクショナルレベル
でのテストはいくらでも流せる。
新しいファンクション・メソッドを書くたびに、あるいは変更をするたびに
全ての条件を網羅して、それをテストケースにして、コード自体をモディファイして
テストした後、結果をドキュメント化してまたコードを元に戻すということはやらないという話。
プライベートのファンクション・メソッド単位でC2100%テストしていくというのは
そういうこと。
テスト件数が問題なのではない。オートメーションすればファンクショナルレベル
でのテストはいくらでも流せる。
新しいファンクション・メソッドを書くたびに、あるいは変更をするたびに
全ての条件を網羅して、それをテストケースにして、コード自体をモディファイして
テストした後、結果をドキュメント化してまたコードを元に戻すということはやらないという話。
プライベートのファンクション・メソッド単位でC2100%テストしていくというのは
そういうこと。
791デフォルトの名無しさん
2020/07/05(日) 04:22:02.73ID:58eR5uXa 米Google、JavaScriptユニットテストフレームワーク「JS Test」をオープンソースで公開
https://mag.osdn.jp/11/10/03/1012250
米Googleは9月29日、JavaScriptユニットテストフレームワーク「Google JS Test」を発表した。
元々はGoogle社内のプロジェクトで利用されていたもので、ライセンスはApache License 2.0。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
https://mag.osdn.jp/11/10/03/1012250
米Googleは9月29日、JavaScriptユニットテストフレームワーク「Google JS Test」を発表した。
元々はGoogle社内のプロジェクトで利用されていたもので、ライセンスはApache License 2.0。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
792デフォルトの名無しさん
2020/07/05(日) 04:27:51.71ID:9F15TCk0 いや、だからそういうツールがあるのなんて常識だが、privateはテストしない。
上にも書いてるがprivateはソース自体弄らないとテスト自体できないわけで、
そういうツールが自動でソースを弄ってコンパイルし直してprivateのメンバーを
全パターンするわけでは、当たり前だけど、無い。
クラス単位でパブリックのメソッドに対してテストコードもセットで書くということは
当然ある。
上にも書いてるがprivateはソース自体弄らないとテスト自体できないわけで、
そういうツールが自動でソースを弄ってコンパイルし直してprivateのメンバーを
全パターンするわけでは、当たり前だけど、無い。
クラス単位でパブリックのメソッドに対してテストコードもセットで書くということは
当然ある。
793デフォルトの名無しさん
2020/07/05(日) 04:29:16.12ID:58eR5uXa facebook / jest
https://github.com/facebook/jest
https://jestjs.io/ja/
Jest はシンプルさを重視した、快適な JavaScript テスティングフレームワークです。
https://github.com/facebook/jest
https://jestjs.io/ja/
Jest はシンプルさを重視した、快適な JavaScript テスティングフレームワークです。
794デフォルトの名無しさん
2020/07/05(日) 04:31:02.86ID:9F15TCk0 全くわかってないなこりゃ。
795デフォルトの名無しさん
2020/07/05(日) 04:33:27.78ID:58eR5uXa 反論すりゃいいのにw
796デフォルトの名無しさん
2020/07/05(日) 04:34:11.33ID:58eR5uXa 憶測に基づいた発言はいらないよ?
俺はGoogleやFacebookとユニットテストに関連する事例を上げただけ
俺はGoogleやFacebookとユニットテストに関連する事例を上げただけ
797デフォルトの名無しさん
2020/07/05(日) 04:34:11.73ID:LRfXHt7v テストの専門家だからそう思うのでは。
798デフォルトの名無しさん
2020/07/05(日) 04:49:06.73ID:LRfXHt7v 完ぺきにテストしたからといって製品の完全性を保証することはできません。
したがってテストしないほうが良いのです。
したがってテストしないほうが良いのです。
799デフォルトの名無しさん
2020/07/05(日) 04:52:22.10ID:58eR5uXa ほらなw
完璧にテストした所で落ちない飛行機はありません
したがってテストしないほうがいいのです
と言い始めた
事例と自分の考えの矛盾を正せず、頭が狂い始めた証拠。
ここから荒らしと変貌する前触れだな
完璧にテストした所で落ちない飛行機はありません
したがってテストしないほうがいいのです
と言い始めた
事例と自分の考えの矛盾を正せず、頭が狂い始めた証拠。
ここから荒らしと変貌する前触れだな
800デフォルトの名無しさん
2020/07/05(日) 04:53:23.27ID:LRfXHt7v 食いついてきた。
嘘みたい。
嘘みたい。
801デフォルトの名無しさん
2020/07/05(日) 04:58:23.98ID:LRfXHt7v privateもテストさせていただけるとありがたいけど、禁止するのが正しいことになってるからな。
802デフォルトの名無しさん
2020/07/05(日) 04:59:58.66ID:LRfXHt7v Visualstudioのテストエクスプローラを使うと考えが変わるのでは。
道具の問題かもしれない。
道具の問題かもしれない。
803デフォルトの名無しさん
2020/07/05(日) 05:53:15.48ID:9F15TCk0 ユニットテストというのはプロジェクトによってかなり幅があるわけで、
当たり前の話だがテストオートメーションのプログラムが勝手にコード
弄ってコンパイルしなおしてPrivateをテストするわけが無いのだよ。
当たり前の話だがテストオートメーションのプログラムが勝手にコード
弄ってコンパイルしなおしてPrivateをテストするわけが無いのだよ。
804デフォルトの名無しさん
2020/07/05(日) 06:05:37.56ID:58eR5uXa ↑みたいなことを言ってるやつがGAFAは〜と
なんのソースもなしに言ってるわけだよ
こんなやつの話を聞くやつがいると思うかね?
なんのソースもなしに言ってるわけだよ
こんなやつの話を聞くやつがいると思うかね?
805デフォルトの名無しさん
2020/07/05(日) 06:06:03.12ID:9F15TCk0 ずれるかもしれないが下のような場合、privateにnullを突っ込んだらヌルポだが
privateをわざわざコード弄ってまで別にテストするようなことは少なくとも
ビジネスソフトでは知ってる限り無い。組み込みとかは知らんし必要ならやれば良いけど。
class ChinTester {
public void testChin(int[] len) {
if (len==null){System.out.println("You are a woman");
return;}
if (len.length<11){ uncS(len);}
else{funcB(len);}
return;}
private void funcS(int[] len){
if (len.length<9){System.out.println("Smallest");
}else{System.out.println("Smaller");}
return;}
private void funcB(int[] len){
if (len.length<14){System.out.println("Medium");}
else if (len.length<16){System.out.println("Bigger");
}else{ System.out.println("Wow!");}
return;}
}
privateをわざわざコード弄ってまで別にテストするようなことは少なくとも
ビジネスソフトでは知ってる限り無い。組み込みとかは知らんし必要ならやれば良いけど。
class ChinTester {
public void testChin(int[] len) {
if (len==null){System.out.println("You are a woman");
return;}
if (len.length<11){ uncS(len);}
else{funcB(len);}
return;}
private void funcS(int[] len){
if (len.length<9){System.out.println("Smallest");
}else{System.out.println("Smaller");}
return;}
private void funcB(int[] len){
if (len.length<14){System.out.println("Medium");}
else if (len.length<16){System.out.println("Bigger");
}else{ System.out.println("Wow!");}
return;}
}
806デフォルトの名無しさん
2020/07/05(日) 06:21:04.56ID:9F15TCk0 あと日本のNTTデータから降りてくるような大企業案件とかもやったことが無いので知らん。
アメリカのビジネス系一般の話。
アメリカのビジネス系一般の話。
807デフォルトの名無しさん
2020/07/05(日) 06:25:10.48ID:M+BkbwUs >>805
そのコードを見ただけで素人ってわかるよw
そのコードを見ただけで素人ってわかるよw
808デフォルトの名無しさん
2020/07/05(日) 06:27:32.73ID:9F15TCk0 はいはいそうですね。
809デフォルトの名無しさん
2020/07/05(日) 06:33:43.45ID:M+BkbwUs 1. 関数名が意味不明
2. インデントがめちゃくちゃ
3. スペースを入れる所が統一されていない
4. lenが配列なのはなんでだ?
5. nullを情報として扱うな
6. 戻り値なしなのに関数の最後でreturnを書くな
7. 数値(長さ?)判定と文字出力を同じ関数に同居させるな
8. テストするなら、長さを入力し文字列を返す関数を作れ
なんでたったこれだけの関数で
こんなにレビューの指摘項目が存在するんだかw
2. インデントがめちゃくちゃ
3. スペースを入れる所が統一されていない
4. lenが配列なのはなんでだ?
5. nullを情報として扱うな
6. 戻り値なしなのに関数の最後でreturnを書くな
7. 数値(長さ?)判定と文字出力を同じ関数に同居させるな
8. テストするなら、長さを入力し文字列を返す関数を作れ
なんでたったこれだけの関数で
こんなにレビューの指摘項目が存在するんだかw
810デフォルトの名無しさん
2020/07/05(日) 06:38:43.59ID:9F15TCk0 口調が気持ち悪い人は相手しても仕方ないからほっとくとして、上の例だと(に限らず)
funcSとfuncBをテストするためにはコード弄らなきゃいけないし、そもそもtestChin()で
リクワイアメントとエッジケースは全てテストするんだから、無駄にテストが倍以上に
なるしそれも手動になる。
普通のケースだとtestChinに対するテストコード書いて、変更があればそれを流す形になる。
上にさんざコピペが貼られたテストツールはそういうのを自動で流すツール。
テストケース流したいからfuncSとfuncBをパブリックにするというのはカプセル化
できてないし、ましてコード弄ってまでテストするのを手順化するというのは普通はやらない。
書いてる最中にコードちょろっと入れて確認するようなことはあって、それもユニット
テストといえばユニットテストだが、手法としてプロジェクト単位で公式にやるような
ものでは普通は無い。
車のブレーキ制御とかならそこまでやって欲しいが、OOとかカプセル化とはちょっと
違う話。
funcSとfuncBをテストするためにはコード弄らなきゃいけないし、そもそもtestChin()で
リクワイアメントとエッジケースは全てテストするんだから、無駄にテストが倍以上に
なるしそれも手動になる。
普通のケースだとtestChinに対するテストコード書いて、変更があればそれを流す形になる。
上にさんざコピペが貼られたテストツールはそういうのを自動で流すツール。
テストケース流したいからfuncSとfuncBをパブリックにするというのはカプセル化
できてないし、ましてコード弄ってまでテストするのを手順化するというのは普通はやらない。
書いてる最中にコードちょろっと入れて確認するようなことはあって、それもユニット
テストといえばユニットテストだが、手法としてプロジェクト単位で公式にやるような
ものでは普通は無い。
車のブレーキ制御とかならそこまでやって欲しいが、OOとかカプセル化とはちょっと
違う話。
811デフォルトの名無しさん
2020/07/05(日) 06:42:42.57ID:M+BkbwUs > funcSとfuncBをテストするためにはコード弄らなきゃいけないし、そもそもtestChin()で
public経由でテストできるだろw
public経由でテストできるだろw
812デフォルトの名無しさん
2020/07/05(日) 06:45:32.12ID:9F15TCk0 >public経由でテストできるだろw
と、いうわけでPublicをテストすれば十分だしPrivateは(普通は)やらないという事を
やっとご理解いただけたようですな。
>>768ではこんな事言ってましたが。
>当然ソースを書いて(書き換えて)テストするに決まってるじゃん
と、いうわけでPublicをテストすれば十分だしPrivateは(普通は)やらないという事を
やっとご理解いただけたようですな。
>>768ではこんな事言ってましたが。
>当然ソースを書いて(書き換えて)テストするに決まってるじゃん
813デフォルトの名無しさん
2020/07/05(日) 06:47:04.12ID:M+BkbwUs >>810
他の言語を勉強したほうがいいぞ
どうもお前は、絶対に来るはずがない値が引数に渡された時、
そのテストしろって言ってるようだからな
「絶対にありえない値」なんだから仕様なんて作らない
他の型がない言語だったら、引数に渡されるオブジェクトなんか
それこそ無限に値なんてありえるだから
privateでも、ソースコードを修正して引数渡せるなら
そのテストをかけって言ってるようなもん
他の言語を勉強したほうがいいぞ
どうもお前は、絶対に来るはずがない値が引数に渡された時、
そのテストしろって言ってるようだからな
「絶対にありえない値」なんだから仕様なんて作らない
他の型がない言語だったら、引数に渡されるオブジェクトなんか
それこそ無限に値なんてありえるだから
privateでも、ソースコードを修正して引数渡せるなら
そのテストをかけって言ってるようなもん
814デフォルトの名無しさん
2020/07/05(日) 06:47:52.42ID:M+BkbwUs >>812
> と、いうわけでPublicをテストすれば十分だしPrivateは(普通は)やらないという事を
頭悪そうだなw
この場合publicメソッドを呼んだらprivateメソッドを呼び出すんだから
privateメソッドのテストになってるだろ
> と、いうわけでPublicをテストすれば十分だしPrivateは(普通は)やらないという事を
頭悪そうだなw
この場合publicメソッドを呼んだらprivateメソッドを呼び出すんだから
privateメソッドのテストになってるだろ
815デフォルトの名無しさん
2020/07/05(日) 06:47:57.37ID:9F15TCk0 少なくともグーグルの面接で絶対こないからテストしないとか言ったら
速攻落ちるよ。むしろ絶対こないのをやるものだからね。
速攻落ちるよ。むしろ絶対こないのをやるものだからね。
816デフォルトの名無しさん
2020/07/05(日) 06:49:10.31ID:M+BkbwUs >>768で
> まさかpublic・privateメソッドのテストをテスト工程でやる、
> public・privateメソッドを書いた人と別の人がやるって思ってないか?
>
> public・privateメソッドを実装中に、その作ったもののが正しく動くかどうか
> public・privateメソッドのソースを書いた人が、書いてる段階でテストするんだから
> 当然ソースを書いて(書き換えて)テストするに決まってるじゃん
と言ってますが、今の話と何の関係があるんですか?
「誰がテストするか」の話なんですが?
> まさかpublic・privateメソッドのテストをテスト工程でやる、
> public・privateメソッドを書いた人と別の人がやるって思ってないか?
>
> public・privateメソッドを実装中に、その作ったもののが正しく動くかどうか
> public・privateメソッドのソースを書いた人が、書いてる段階でテストするんだから
> 当然ソースを書いて(書き換えて)テストするに決まってるじゃん
と言ってますが、今の話と何の関係があるんですか?
「誰がテストするか」の話なんですが?
817デフォルトの名無しさん
2020/07/05(日) 06:50:26.40ID:M+BkbwUs >>815
だからpublicメソッド経由でテストしてるじゃんw
お前は、内部でprivateメソッドを呼び出しているから
publicメソッドのテストには、privateメソッドがそんな値を返そうが
そのテストは書かないのか?
だからpublicメソッド経由でテストしてるじゃんw
お前は、内部でprivateメソッドを呼び出しているから
publicメソッドのテストには、privateメソッドがそんな値を返そうが
そのテストは書かないのか?
818デフォルトの名無しさん
2020/07/05(日) 06:53:15.16ID:M+BkbwUs 例えば>>805 の話だと
testChinがpublicメソッド、そのメソッドのテストとして
引数に1(なんで配列か知らんが)となるものを渡したら
Smallestが返ってくることというテストを書く
それは実際には内部でprivateメソッドを呼び出しているのだからfuncSのテストになってる
カバレッジを計測したら、privateメソッドであるfuncSの該当行は実行した(テストした)と計測される。
testChinがpublicメソッド、そのメソッドのテストとして
引数に1(なんで配列か知らんが)となるものを渡したら
Smallestが返ってくることというテストを書く
それは実際には内部でprivateメソッドを呼び出しているのだからfuncSのテストになってる
カバレッジを計測したら、privateメソッドであるfuncSの該当行は実行した(テストした)と計測される。
819デフォルトの名無しさん
2020/07/05(日) 06:54:07.51ID:9F15TCk0 え、コーディング中にちょろっとコード書いて動作確認とかを「テスト」って
呼んでたの?そりゃ噛み合わないわ。
開発手法の話をしてる時に「テストする」というからにはテストケースを書いて、
手動にしてもコードにしても実行したログくらいは残すものだが。
君はメソッド作る時エッジケースやらネガティブテストやら考慮に入れつつケースを
書いて実行したログも残してるの?変更のたびにやるの?やらんだろ。
呼んでたの?そりゃ噛み合わないわ。
開発手法の話をしてる時に「テストする」というからにはテストケースを書いて、
手動にしてもコードにしても実行したログくらいは残すものだが。
君はメソッド作る時エッジケースやらネガティブテストやら考慮に入れつつケースを
書いて実行したログも残してるの?変更のたびにやるの?やらんだろ。
820デフォルトの名無しさん
2020/07/05(日) 06:56:15.75ID:M+BkbwUs821デフォルトの名無しさん
2020/07/05(日) 06:56:44.73ID:9F15TCk0 publicをテストしたらprivateも呼ばれてるからprivate単位でテストしてる!って
ブレブレやなw
publicから呼ばれないprivateなんて一体誰がなんのために書くんだよw
ブレブレやなw
publicから呼ばれないprivateなんて一体誰がなんのために書くんだよw
822デフォルトの名無しさん
2020/07/05(日) 06:57:27.80ID:M+BkbwUs >>819
> 君はメソッド作る時エッジケースやらネガティブテストやら考慮に入れつつケースを
> 書いて実行したログも残してるの?変更のたびにやるの?やらんだろ。
変更のたびって、お前変更のたびにメソッドの仕様が変わるのか?
いきあたりばったりで開発してるんだな
> 君はメソッド作る時エッジケースやらネガティブテストやら考慮に入れつつケースを
> 書いて実行したログも残してるの?変更のたびにやるの?やらんだろ。
変更のたびって、お前変更のたびにメソッドの仕様が変わるのか?
いきあたりばったりで開発してるんだな
823デフォルトの名無しさん
2020/07/05(日) 06:58:49.78ID:M+BkbwUs >>821
最初からそう言ってるだろ?
ブレるも何も、最初からそう言ってる
↓
> 私の回答
> 短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。
>
> ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。
最初からそう言ってるだろ?
ブレるも何も、最初からそう言ってる
↓
> 私の回答
> 短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。
>
> ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。
824デフォルトの名無しさん
2020/07/05(日) 07:00:51.32ID:M+BkbwUs あ?まさかprivate関数の処理のテストをすればいいのに
private関数単独ででテストしなきゃだめだって思ってるのかw
あはは、関数単位でテストするのがユニットテストだって思ってるようだな
こりゃ、お・わ・ら・い・だw
private関数単独ででテストしなきゃだめだって思ってるのかw
あはは、関数単位でテストするのがユニットテストだって思ってるようだな
こりゃ、お・わ・ら・い・だw
825デフォルトの名無しさん
2020/07/05(日) 07:02:37.00ID:BTTSshKd メソッド単位でテストしろって言うのが組み込みおじさんだから話にならんよ
826デフォルトの名無しさん
2020/07/05(日) 07:03:05.56ID:9F15TCk0 なんだこいつ気持ち悪い。
827デフォルトの名無しさん
2020/07/05(日) 07:07:17.25ID:9F15TCk0 日本語もjavaも通じないからどうにもならない。
突然噛み付いてくる気持ちの悪いのは100%の確率でおかしいな。
突然噛み付いてくる気持ちの悪いのは100%の確率でおかしいな。
828デフォルトの名無しさん
2020/07/05(日) 07:08:18.45ID:M+BkbwUs というふうに「技術」の話にレスができなくなったら
「人」(=俺)の話にすり替えるのが常套手段な
「人」(=俺)の話にすり替えるのが常套手段な
829デフォルトの名無しさん
2020/07/05(日) 07:13:21.25ID:9F15TCk0 というかお前は誰だよ。Private単位でコード書き換えてもやるって言ってる
人間がいたからPrivate単位では通常のビジネス系ではやらないという流れなのに
突然「お前は素人だあ!」とか噛み付いてきても知らんがな。
タブもスペースもトランケートされる2ちゃんでインデントがとかくだらない
ことでマウント取りにくる暇があったらまず日本語を学べ。
以上。
人間がいたからPrivate単位では通常のビジネス系ではやらないという流れなのに
突然「お前は素人だあ!」とか噛み付いてきても知らんがな。
タブもスペースもトランケートされる2ちゃんでインデントがとかくだらない
ことでマウント取りにくる暇があったらまず日本語を学べ。
以上。
830デフォルトの名無しさん
2020/07/05(日) 07:21:09.73ID:BTTSshKd 「privateメソッド」を直接テストしろって言う人はどうするのがいいって言うの?
a 全てprivateメソッドに対しても外部にリフレクション等を使用したテストを書くべき
b privateメソッドにアクセスできるクラスなどにpublicなテストコードを書くべき
c もっと言い方法がある、こうだ!
a 全てprivateメソッドに対しても外部にリフレクション等を使用したテストを書くべき
b privateメソッドにアクセスできるクラスなどにpublicなテストコードを書くべき
c もっと言い方法がある、こうだ!
831デフォルトの名無しさん
2020/07/05(日) 07:22:11.60ID:LRfXHt7v >>830
王家秘伝の技がある。
王家秘伝の技がある。
832デフォルトの名無しさん
2020/07/05(日) 07:24:08.15ID:M+BkbwUs833デフォルトの名無しさん
2020/07/05(日) 07:24:58.59ID:9F15TCk0 しかしよくチンコのサイズテストwにマジで噛みつけるもんだ。
834デフォルトの名無しさん
2020/07/05(日) 07:29:06.68ID:M+BkbwUs835デフォルトの名無しさん
2020/07/05(日) 07:30:17.21ID:M+BkbwUs Chinってちんこのことだったんだな
funcSとかfuncBとかfoo、barみたいに意味がない単語じゃん
コードがクソすぎて意味が伝わらないいい例だな
funcSとかfuncBとかfoo、barみたいに意味がない単語じゃん
コードがクソすぎて意味が伝わらないいい例だな
836デフォルトの名無しさん
2020/07/05(日) 07:34:08.81ID:9F15TCk0 無い場合You are a womanで9以下なら小さい、16越えりゃWow!で名前が
チンテスターなんだからわかってる人間は多いだろうな。
チンテスターなんだからわかってる人間は多いだろうな。
837デフォルトの名無しさん
2020/07/05(日) 07:36:44.58ID:M+BkbwUs838デフォルトの名無しさん
2020/07/05(日) 07:36:59.87ID:9F15TCk0 ちなみにfuncなんとかというのは君の好きなグーグルあたりでも例ではよく使うわな。
BとSもbigとsmallだろうと英語得意なら当たりがつくけどね。なぜABじゃなくてBS
なのか。そもそもoutに出てんだし。
BとSもbigとsmallだろうと英語得意なら当たりがつくけどね。なぜABじゃなくてBS
なのか。そもそもoutに出てんだし。
839デフォルトの名無しさん
2020/07/05(日) 07:38:39.33ID:9F15TCk0840デフォルトの名無しさん
2020/07/05(日) 07:44:01.87ID:M+BkbwUs > intじゃなくてヌルポが出るものがarrayだから
・・・
Java知らんのか?整数かつオブジェクトでも使えばいいじゃないか
具体的には教えてやらんよ。自分で勉強しな
・・・
Java知らんのか?整数かつオブジェクトでも使えばいいじゃないか
具体的には教えてやらんよ。自分で勉強しな
841デフォルトの名無しさん
2020/07/05(日) 07:46:53.71ID:wXNAUX4A privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね
早く死んでね
842デフォルトの名無しさん
2020/07/05(日) 07:49:38.56ID:y7MN16M9843デフォルトの名無しさん
2020/07/05(日) 07:53:17.11ID:M+BkbwUs こういう事やって、NULLチェックが4倍に増えたー、テストも増えたーって
言ってるやつがいるなんて驚き。馬鹿かとw 以下擬似コードな
public func(value) {
// valueのNULLチェック
処理
処理
処理
}
↓
public func(value) {
// valueのNULLチェック
foo(value);
bar(value);
baz(value);
}
private foo(value) {
// valueのNULLチェック
処理1
}
private bar(value) {
// valueのNULLチェック
処理2
}
private baz(value) {
// valueのNULLチェック
処理3
}
言ってるやつがいるなんて驚き。馬鹿かとw 以下擬似コードな
public func(value) {
// valueのNULLチェック
処理
処理
処理
}
↓
public func(value) {
// valueのNULLチェック
foo(value);
bar(value);
baz(value);
}
private foo(value) {
// valueのNULLチェック
処理1
}
private bar(value) {
// valueのNULLチェック
処理2
}
private baz(value) {
// valueのNULLチェック
処理3
}
844デフォルトの名無しさん
2020/07/05(日) 07:56:16.74ID:LRfXHt7v プロは俺だけだったか。
845デフォルトの名無しさん
2020/07/05(日) 08:03:19.96ID:FjEgCO9/ そもそもprivateメソッドだからテストしないとか言ってるキチガイにまともな返答なんかいらない
そんなのどこの職場でも認められるわけないから
publicメソッド通したprivateメソッドに自分が想定したケースの値が全部入る保証なんかない
ある特定のケースのみそのメソッドの処理が欲しいときにしか呼んでないことあるだろ
つまりメソッド自体のテストはできてないしその方法でコードカバレッジ100%は無理だし
そもそもpublicから呼び出したprivateのコードカバレッジを100%にするなんて
作業が狂気過ぎてまともな脳みそ持ってるやつならやる前に無駄って理解できる
バカは早く死んでね
そんなのどこの職場でも認められるわけないから
publicメソッド通したprivateメソッドに自分が想定したケースの値が全部入る保証なんかない
ある特定のケースのみそのメソッドの処理が欲しいときにしか呼んでないことあるだろ
つまりメソッド自体のテストはできてないしその方法でコードカバレッジ100%は無理だし
そもそもpublicから呼び出したprivateのコードカバレッジを100%にするなんて
作業が狂気過ぎてまともな脳みそ持ってるやつならやる前に無駄って理解できる
バカは早く死んでね
846デフォルトの名無しさん
2020/07/05(日) 08:06:02.24ID:M+BkbwUs そもそもprivateメソッドだからテストしないとか言ってるキチガイには
この言葉を授けよう
t-wadaのブログ
https://t-wada.hatenablog.jp/entry/should-we-test-private-methods#%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E7%B5%8C%E7%94%B1%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B
私の回答
短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。
ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。
ただし、この議論にはプロダクトコードもテストコードも自分で書いていることという前提があります。プロダクトコードに手を入れられず、テストコードも無いレガシーコードに対しては、リフレクションは強力な手段です。
プライベートなメソッドのテストに関しては、4つの考え方があります。
パブリックメソッド経由でテストする
別クラスのパブリックメソッドとする
テスト対象の可視性を(やや)上げる
プライベートのまま、リフレクションでアクセスしてテストを書く
パブリックメソッド経由でテストする
多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。テストできているか不安があるならテストカバレッジを確認しましょう。
この言葉を授けよう
t-wadaのブログ
https://t-wada.hatenablog.jp/entry/should-we-test-private-methods#%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E7%B5%8C%E7%94%B1%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B
私の回答
短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。
ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。
ただし、この議論にはプロダクトコードもテストコードも自分で書いていることという前提があります。プロダクトコードに手を入れられず、テストコードも無いレガシーコードに対しては、リフレクションは強力な手段です。
プライベートなメソッドのテストに関しては、4つの考え方があります。
パブリックメソッド経由でテストする
別クラスのパブリックメソッドとする
テスト対象の可視性を(やや)上げる
プライベートのまま、リフレクションでアクセスしてテストを書く
パブリックメソッド経由でテストする
多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。テストできているか不安があるならテストカバレッジを確認しましょう。
847デフォルトの名無しさん
2020/07/05(日) 08:10:31.93ID:FjEgCO9/ >>846
そいつプロジェクトで仕事したことあるのか怪しい部類じゃね?
そいつプロジェクトで仕事したことあるのか怪しい部類じゃね?
848デフォルトの名無しさん
2020/07/05(日) 08:16:36.05ID:IUsMolpf publicを通した範囲でしかできないprivateのテストは網羅されてなく
メソッドの単体テストとして十分なテストは行われていません
あなたの意見は採用できません
できれば実際のプロジェクトを5つぐらい経験されてはいかがでしょうか?
メソッドの単体テストとして十分なテストは行われていません
あなたの意見は採用できません
できれば実際のプロジェクトを5つぐらい経験されてはいかがでしょうか?
849デフォルトの名無しさん
2020/07/05(日) 08:25:21.85ID:9F15TCk0 public通したprivateは単体としては怪しいというのはその通りだけど、
そもそも呼ばれないprivateを書くバカはいないわけで、条件があるから
書いてんだよね。で、条件をpublicの段階でテストするわけだから
ほぼ通ってるわけだよ。
上のチンコテストだとnullから16まで流せば全部通る。
違いは、上の例でprivateにnull突っ込んだらヌルポだわな。そこをテストするのは
コード変えなきゃいけないし、OOの大規模ビジネスソフトではそういうことは
やらない。それをやらなきゃいけない環境なら関数型でもいけるはず。
そもそも呼ばれないprivateを書くバカはいないわけで、条件があるから
書いてんだよね。で、条件をpublicの段階でテストするわけだから
ほぼ通ってるわけだよ。
上のチンコテストだとnullから16まで流せば全部通る。
違いは、上の例でprivateにnull突っ込んだらヌルポだわな。そこをテストするのは
コード変えなきゃいけないし、OOの大規模ビジネスソフトではそういうことは
やらない。それをやらなきゃいけない環境なら関数型でもいけるはず。
850デフォルトの名無しさん
2020/07/05(日) 08:31:48.84ID:ckfZDtdO >>849
できない時点でこの話は終わりさ
やらないわけには行かないんだから
90%できてても残り10%をどうやってもやる方法がないんだから
その方法はどうやっても採用できないし
わざわざする理由もない
別の方法ではできるんだから
できない時点でこの話は終わりさ
やらないわけには行かないんだから
90%できてても残り10%をどうやってもやる方法がないんだから
その方法はどうやっても採用できないし
わざわざする理由もない
別の方法ではできるんだから
851デフォルトの名無しさん
2020/07/05(日) 08:33:02.53ID:9F15TCk0852デフォルトの名無しさん
2020/07/05(日) 08:35:22.60ID:9F15TCk0 >>850
いやだから16まで流せば全部できてるけど。
ビジネス系ではやらないよ。組み込みで全部
テストしなきゃいけないというならわかるので
すれば良い。ただOOの手法とは違う。
デベロッパー千人のところでやってるの?
やってないでしょ?
いやだから16まで流せば全部できてるけど。
ビジネス系ではやらないよ。組み込みで全部
テストしなきゃいけないというならわかるので
すれば良い。ただOOの手法とは違う。
デベロッパー千人のところでやってるの?
やってないでしょ?
853デフォルトの名無しさん
2020/07/05(日) 09:13:35.35ID:iCbhqS6F 通ってればいいっていうなら単体テスト全否定だろw
結合テストなりで全部やりゃいいって話になる。
結合テストなりで全部やりゃいいって話になる。
854デフォルトの名無しさん
2020/07/05(日) 09:23:53.74ID:9F15TCk0 >>853
だからその線引きをどこでやるのかっていう事で、
privateまで全部テストケース書いてエッジケースもネガティブも
全部やるなら関数型で良いんだよ。
別にバカにする気は無いし、関数型のが難しい場面もたくさんあるが、
大規模(デベロッパーだけで数百人)のOOプロジェクトやった事ある?
だからその線引きをどこでやるのかっていう事で、
privateまで全部テストケース書いてエッジケースもネガティブも
全部やるなら関数型で良いんだよ。
別にバカにする気は無いし、関数型のが難しい場面もたくさんあるが、
大規模(デベロッパーだけで数百人)のOOプロジェクトやった事ある?
855デフォルトの名無しさん
2020/07/05(日) 09:30:39.94ID:9F15TCk0 上のチンコの例で言えば、funcSとfuncBのテストをテストケース書いて
コードを書き換えた上でやってドキュメントなりログなりで残すの?
だったらpublicでやれば良いし、そうやってpublicにするなら関数型でも
おんなじ事でしょ。
チンコがnullなのか16以上そこそこでかいのかまでしか関係ないわけで
privateがnullをハンドリングしてないとか無駄なんだよ。もちろん
命に関わるようなところではそれくらいの厳格さが求められる場合も
あるだろうが、普通のビジネスソフトではそこまでやらない。
他のチームが関わる場所を少なくするためにカプセル化するわけで、
そんな全部publicにしたら意味ないんだよ。
コードを書き換えた上でやってドキュメントなりログなりで残すの?
だったらpublicでやれば良いし、そうやってpublicにするなら関数型でも
おんなじ事でしょ。
チンコがnullなのか16以上そこそこでかいのかまでしか関係ないわけで
privateがnullをハンドリングしてないとか無駄なんだよ。もちろん
命に関わるようなところではそれくらいの厳格さが求められる場合も
あるだろうが、普通のビジネスソフトではそこまでやらない。
他のチームが関わる場所を少なくするためにカプセル化するわけで、
そんな全部publicにしたら意味ないんだよ。
856デフォルトの名無しさん
2020/07/05(日) 09:41:54.39ID:LRfXHt7v 弊社はC2カバレッジ100%未満は出荷できませんけどね。
857デフォルトの名無しさん
2020/07/05(日) 09:42:35.87ID:j0cUMVMZ >>854
線引じゃねーよクソ野郎
publicでたまたま呼ばれた1パターンと
privateの網羅テストが同じになってたまるかアホかよ
クラスのなかにあるのでpublicから呼ばれたときだけ動けば
ルーチンとして不出来でもOKなんてあるわけないだろ
お前はクソだからもう死ねよ
線引じゃねーよクソ野郎
publicでたまたま呼ばれた1パターンと
privateの網羅テストが同じになってたまるかアホかよ
クラスのなかにあるのでpublicから呼ばれたときだけ動けば
ルーチンとして不出来でもOKなんてあるわけないだろ
お前はクソだからもう死ねよ
858デフォルトの名無しさん
2020/07/05(日) 09:45:43.25ID:9F15TCk0 >>857
まあじゃあ君はprivateまでテストケース書いてやっとけば良いんじゃない?
誰も止めてないし。大規模ビジネスソフトでは世界的に言って普通ではないというだけで。
僕はあんまり関わることのないレベルの世界だけど、まあ多分一生関わらないので
君が良いならそれで良いと思うよ。
まあじゃあ君はprivateまでテストケース書いてやっとけば良いんじゃない?
誰も止めてないし。大規模ビジネスソフトでは世界的に言って普通ではないというだけで。
僕はあんまり関わることのないレベルの世界だけど、まあ多分一生関わらないので
君が良いならそれで良いと思うよ。
859デフォルトの名無しさん
2020/07/05(日) 09:51:39.34ID:BTTSshKd >>857
君は大変なんだねwテストがんばれーwww
君は大変なんだねwテストがんばれーwww
860デフォルトの名無しさん
2020/07/05(日) 09:54:43.54ID:bzHIXl0a861デフォルトの名無しさん
2020/07/05(日) 10:02:55.49ID:9F15TCk0 >>856
正直QAやってたのは随分前の話だから最近のQAツールは知らんけど、
privateが全部通ってれば100%なわけで、そもそもprivateがある理由は
使われるためなんだから普通は誰も一回も使ってない場合なんかはないわな。
レベルが高くなると通らないケースも出るだろうが。だから線引きってこと。
チンコテストならnullから16までやれば100%通ってる。privateかpublicかって
のは関係ない。ただしprivateはnullをハンドリングしてない。それをどうするかって話。
正直QAやってたのは随分前の話だから最近のQAツールは知らんけど、
privateが全部通ってれば100%なわけで、そもそもprivateがある理由は
使われるためなんだから普通は誰も一回も使ってない場合なんかはないわな。
レベルが高くなると通らないケースも出るだろうが。だから線引きってこと。
チンコテストならnullから16までやれば100%通ってる。privateかpublicかって
のは関係ない。ただしprivateはnullをハンドリングしてない。それをどうするかって話。
862デフォルトの名無しさん
2020/07/05(日) 10:03:22.77ID:iCbhqS6F863デフォルトの名無しさん
2020/07/05(日) 10:05:36.79ID:9F15TCk0864デフォルトの名無しさん
2020/07/05(日) 10:08:05.85ID:9F15TCk0 >>862
だから僕もNTTデータとかは知らんと上に書いてるけれども。
アメリカの大規模ソフトは中の人だし、他の会社のデベロッパも何人も知ってるので、
実際にアメリカの業界は知ってる。
君の「クソブロジェクト」ではないプロジェクトは会社名は出す必要はないが
例えばアメリカのERPとかそのレベルでなんなの?
だから僕もNTTデータとかは知らんと上に書いてるけれども。
アメリカの大規模ソフトは中の人だし、他の会社のデベロッパも何人も知ってるので、
実際にアメリカの業界は知ってる。
君の「クソブロジェクト」ではないプロジェクトは会社名は出す必要はないが
例えばアメリカのERPとかそのレベルでなんなの?
865デフォルトの名無しさん
2020/07/05(日) 10:09:56.64ID:9F15TCk0 だいたい質問を質問で返す人は答えるのに不都合がある人。
数百人のデベロッパーのプロジェクトをやったことなくても全く問題は
ないんだが(ロッキードのミサイルの制御の人とか数百人もいないし)、
「あるよ」とは帰ってこない。
数百人のデベロッパーのプロジェクトをやったことなくても全く問題は
ないんだが(ロッキードのミサイルの制御の人とか数百人もいないし)、
「あるよ」とは帰ってこない。
866デフォルトの名無しさん
2020/07/05(日) 10:15:56.23ID:bzHIXl0a867デフォルトの名無しさん
2020/07/05(日) 10:19:00.51ID:9F15TCk0 >>866
ちょっと弱いかな。「普通はやらんけどやりたかったりやる必要があるならやれば?」
くらい?privateを全部テストケース書いてエッジやネガティブやるとなると多くの場合
サグラダファミリアになるし、普通はやらない。
でもやりたいならやれば良いとは思うのでだいたいそういう感じか。
ちょっと弱いかな。「普通はやらんけどやりたかったりやる必要があるならやれば?」
くらい?privateを全部テストケース書いてエッジやネガティブやるとなると多くの場合
サグラダファミリアになるし、普通はやらない。
でもやりたいならやれば良いとは思うのでだいたいそういう感じか。
868デフォルトの名無しさん
2020/07/05(日) 10:31:49.01ID:BTTSshKd 組み込みおじさんはそこに義務感を感じ、他者に強要するのだろう
難儀なこった
難儀なこった
869デフォルトの名無しさん
2020/07/05(日) 10:37:41.26ID:9F15TCk0 組み込みとかだと多くの場合そもそもOOあんまりいらんと思うのよね。
人工呼吸器の制御とかだときびしくやらないといけないのはわかるし、
やってない人工呼吸器とか俺も付けられたくないけどさw
OOのメソッドとかはちょっと違う話だわな。カプセル化とかは数百人になると
生きてくる。個人的には自分一人の個人プロジェクトでも使うけど。
数年後にまたやる羽目になったりした時に楽なので。
人工呼吸器の制御とかだときびしくやらないといけないのはわかるし、
やってない人工呼吸器とか俺も付けられたくないけどさw
OOのメソッドとかはちょっと違う話だわな。カプセル化とかは数百人になると
生きてくる。個人的には自分一人の個人プロジェクトでも使うけど。
数年後にまたやる羽目になったりした時に楽なので。
870デフォルトの名無しさん
2020/07/05(日) 10:45:19.20ID:MQ9nuMmc871デフォルトの名無しさん
2020/07/05(日) 10:53:33.35ID:kFjTOHVy >>867
どこに差があるのかよくわからんが、どちらにしても一行目は問題ないにしても
二行目はここに存在しない敵を攻撃している印象。
いちいち関係ない話を絡めなくてもいいじゃんと思うが、二度も書くということは
そっちが主張したい本音ということかな?
どこに差があるのかよくわからんが、どちらにしても一行目は問題ないにしても
二行目はここに存在しない敵を攻撃している印象。
いちいち関係ない話を絡めなくてもいいじゃんと思うが、二度も書くということは
そっちが主張したい本音ということかな?
872デフォルトの名無しさん
2020/07/05(日) 10:55:30.48ID:sn+7aSX4 OOPは理解している人とOOPを理解していない人が単体テストについて不毛な争いをするスレかな?
873デフォルトの名無しさん
2020/07/05(日) 10:58:45.46ID:9F15TCk0 >>871
いや、元々がpublicじゃなくてprivate単位でやれという話からなんだからその話だよ。
publicでprivateの分岐通ってるなら良いじゃんといなら誰も否定していないのでは?
逆にprivateで一度も通ってない部分があっても良いじゃんとも言っていないような。
if文書くのに絶対通らない物を書く人いるわけないでしょw
ただ、公式なテストとして、privateのレベルでテストケース書いてログ残してコード
書き換えてコンパイルし直してやるというのは少なくとも普通のビジネスのソフトとしては
一般的なベストプラクティスではないし普通はアメリカの大手一流ではやらないということ。
例外はあるとしても。
いや、元々がpublicじゃなくてprivate単位でやれという話からなんだからその話だよ。
publicでprivateの分岐通ってるなら良いじゃんといなら誰も否定していないのでは?
逆にprivateで一度も通ってない部分があっても良いじゃんとも言っていないような。
if文書くのに絶対通らない物を書く人いるわけないでしょw
ただ、公式なテストとして、privateのレベルでテストケース書いてログ残してコード
書き換えてコンパイルし直してやるというのは少なくとも普通のビジネスのソフトとしては
一般的なベストプラクティスではないし普通はアメリカの大手一流ではやらないということ。
例外はあるとしても。
874デフォルトの名無しさん
2020/07/05(日) 11:03:24.23ID:LRfXHt7v 土台が腐ってたら。
全部検査するほうが楽。
全部検査するほうが楽。
875デフォルトの名無しさん
2020/07/05(日) 11:04:34.60ID:9F15TCk0 幸いそういうのには当たったことはないw
上に書いたように例外は認める。
上に書いたように例外は認める。
876デフォルトの名無しさん
2020/07/05(日) 11:09:23.64ID:MQ9nuMmc アメリカの大手一流ってどこだろ?
877デフォルトの名無しさん
2020/07/05(日) 11:11:04.89ID:MQ9nuMmc アメリカや大手や一流が正しいとは限らないけどね
ボーイングの飛行機があんなことになってるように
ボーイングの飛行機があんなことになってるように
878デフォルトの名無しさん
2020/07/05(日) 11:11:13.65ID:9F15TCk0 まあ会社的にはプログラマなら全員知ってるとこ。それ以上は言わん。
879デフォルトの名無しさん
2020/07/05(日) 11:13:19.35ID:9F15TCk0 >>877
だからボーイングの制御系とかはそもそも全然別の話。
もちろん正しいとは限らないけど標準なのは確かだわな。
日本初のOOより優れたこういうメソッドがある!というなら
もちろん喜んで聞くけどね。
だからボーイングの制御系とかはそもそも全然別の話。
もちろん正しいとは限らないけど標準なのは確かだわな。
日本初のOOより優れたこういうメソッドがある!というなら
もちろん喜んで聞くけどね。
880デフォルトの名無しさん
2020/07/05(日) 11:14:37.74ID:kFjTOHVy >いや、元々がpublicじゃなくてprivate単位でやれという話からなんだからその話だよ。
>ublicでprivateの分岐通ってるなら良いじゃんといなら誰も否定していないのでは?
そう、それが一致しているならいちいち関係ない話を絡めなくてもいいんでは?
public経由のテストで十分網羅できるのにそれでもprivateメソッド単位のテストが
必要なんて主張している人いたかな?そこに誤解があるんじゃないの?
>ublicでprivateの分岐通ってるなら良いじゃんといなら誰も否定していないのでは?
そう、それが一致しているならいちいち関係ない話を絡めなくてもいいんでは?
public経由のテストで十分網羅できるのにそれでもprivateメソッド単位のテストが
必要なんて主張している人いたかな?そこに誤解があるんじゃないの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 「アベノミクス」で投資対象と化したマンション ローンの低金利続き「年収の12倍」借りる20代出現 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【!?】高市早苗「靖国神社電撃参拝プラン」浮上!これもう戦争だろ… [481941988]
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
