LQA NewsNotice

2021の 年末年始のお知らせ

 

LotusQAの 年末年始のお知らせ

 

早いもので本年も残すところ、あとわずかとなりました。一年間大変お世話になり、心より感謝しております。

誠に勝手ながら、当社では以下の期間につきましては、休業とさせていただきます。

 

Lotus Quality Assurance (ベトナム本社)

営業期間:2020年12月31日(木)まで

休業日:1月1日(金)

※2021年1月4日(月)より通常営業いたします。

Lotus Japan (日本法人)

営業期間:2020年12月29日(火)まで

休業日:12月30日 (水) ~ 1月4日(月)

※2021年1月5日(火)より通常営業いたします。

 

お休み期間中にお送りいただきましたお問い合わせは、新年の営業開始日より順次対応させていただきます。

来年も本年同様、変わらぬご愛顧のほど、よろしくお願い致します。

Testing

主な テスト自動化の課題

 

ITの世界では高品質のソリューションが求められているため、テストの自動化は当然のことながら優れたソリューションと見なされています。 その利点にもかかわらず、起こりうる障害を回避するために、自動テストを実装する能力を事前に見積もる方法について大きな懸念があります。 実際、この方法を使用する前に注意深く確認する必要があります。注意して覚えておく必要のある障害があります。

 

この記事を通じて、テスト自動化の最大の課題を把握します。

 

課題1:適切なテストアプローチの選択

適切な自動化テストアプローチは、プロジェクトの効果的な結果において重要な役割を果たします。管理レベルでは、テストアプローチを作成する方法と方法を確実に知っていますが、テスト自動化でこのアプローチを作成することは別の問題です。最初の難しさは、製品の寿命に関連する長期的な自動化プロセスを作成することです。たとえば、デスクトップアプリケーションの平均サイクルは、一般的に12〜18ヶ月から15年以上です。したがって、テストアプローチは、ソフトウェアのライフスパンの全プロセスで実行できる必要があります。次に、テストアプローチでは、製品が変更または更新されたときに、人間の介入なしにこれらの変更を識別して対応できることを確認する必要があります。モバイルアプリケーションを例にとると、ユーザーの要件は急速に変化するため、このアプローチを「1つのサイズですべてに対応」することはできません。

確かに、最初に効果的な長期指向のフレームワークを構築するという課題を抱えて、テストアプローチでこれらの困難に対処することは困難です。

 

課題2:適切なツールの選択

自動化テストを成功させるための重要なポイントは、適切なツールを選択することです。開発者とテスターは、オープンソースツールまたは商用ツールを使用して、社内ツールを構築するための定期的な基盤のようにそれらを使用できます。各ツールは、特定のシナリオごとに適しています。市場にはさまざまな包括的なテストツールが存在するため、適切なものを選択することは困難です。特に、適切なツールは、プロジェクトの長期的な方向性、フレームワーク、プロジェクトの出力、クライアントの要件、テスターチームのスキルなどの多くの要因と一致する必要があります。間違ったツールや不適切なツールを選択すると、最初からプロセス全体が失敗する可能性があります。実際、オープンソースツールは、多くの場合、商用ツールよりも高いレベルのコーディングスキルを必要とします。例を挙げると、Selenium は、テスターに​​さらにプログラミングスキルを要求するオープンソースツールです。

エキスパートテスターは、次の手順でツールのプロセスを設定することをお勧めします

  • ステップ1:ツール要件基準のセットを定義する
  • ステップ2:選択したツールを確認する
  • ステップ3:ツールを使用してトライアルテストを実施する
  • ステップ4:これらのツールを使用するかどうかの最終決定を下しますか?

 

課題3 : 効果的なコミュニケーションとコラボレーション

手動テストおよび開発と比較して、自動テストは実際にはより多くのコラボレーションを必要とします。プロジェクトのインプットとアウトプットを完全に分析して理解するために、最初から、デリバリーチームと顧客の間の良好な相互作用が必須です。テスト戦略に関しては、テスターチームは、計画、範囲、およびフレームワークの作成についてプロジェクトマネージャーと連絡を取る必要があります。自動化テスターは、コードを理解するために開発者だけでなく、テストケースについては手動テスターと、最終製品を構築するための統合についてはインフラストラクチャエンジニアと話し合うという事実。言うまでもなく、最初からの誤解を無視したり無視したりすると、プロセスが煩雑になる可能性があります。

各プロセスの特定の連絡先、明確な期待、メンバーの責任などのコラボレーション環境を確立することで、誰もが情報を迅速かつ便利に提供できるようになります。さらに、積極的な関与と透明性のあるフレームワークにより、独自の企業文化が育まれます。

 

課題4:最初は高い投資コスト

自動化テストのメリットを否定することはできませんが、コストについて言及する場合、多くの問題と懸念があります。テスト自動化の長期にわたる高いROIにもかかわらず、初期段階のコストは非常に高くつきます。自動化されたテストフレームワーク、ライブラリ、およびハードウェアやソフトウェアなどの機能を構築するためにお金を費やす必要があります。当初、ツールは、オープンソースツールを選択した場合でも、多額の投資を考慮に入れています。オープンソースツールはライセンスのコストを削減できますが、それらのツールをトレーニングおよび保守するには、依然として多くの努力が必要です。その上、会議、コミュニケーション、コラボレーションなど、多くの隠れたコストも考慮に入れる必要があります。結果として、投資についてマネージャーまたは利害関係者の間でコンセンサスを得ることが課題となります。これが、潜在的な計画と実行可能な目標があっても、予算の制約のために自動化テストの多くの傾向が拒否される可能性がある理由です。

 

まとめ

要約すると、自動化テストはペイオフを効果的にサポートし、企業が進捗をスピードアップするための優れた方法です。ただし、テストの自動化は人間の知性に取って代わることはできません。自動化テストの全プロセスでオリエンテーションを行うには、依然として人間が必要です。

それでも疑問があり、ガイドラインやロードマップが必要な場合は、LQAがテスト自動化に関する無料のコンサルティングを提供します。

LQA News

【12月17日の ウェビナー 】モバイルテスト自動化の最適化:戦略を立てるための5つの重要なポイント

 

We are socialのレポートによると、日本には現在1億9170万台のモバイルデバイスが接続されており、人口の151%に占めています。 モバイルアプリへの投資は、企業がデジタルテクノロジーの爆発的な増加に適応するための最優先になりました。アプリケーションが複数のモバイルデバイスと互換性があり、継続的に更新されることを保証することは、企業の2つの重要な要件です。 テスト自動化、この要件を満たすための効率的な選択ですが、この方法でテストを最適化することは容易ではありません。 今回の ウェビナー は、マネージャーの方にモバイルアプリのテスト自動化を導入する際に役に立つ情報を提供する目的で開催されています。

 

得られること

  • モバイルアプリテスト自動化~成功方法
  •  テスト自動化スペシャリストとQ&A
  • パイロットテスト自動化の1人週の無料プロジェクト

 

アジェンダ

  • 16:00 – 16:05  ウェビナー開会
  • 16:05 – 16:45  ウェビナーの目的

▪モバイルアプリテスト自動化を選ぶ理由

▪モバイルアプリケーションのテスト自動化ソリューションのデモ

▪テスト自動化を導入する前に知っておくべき5つのポイント

▪テスト自動化導入の成功と失敗事例

  • 16:45 – 17:00  Q&A

 

ウェビナーの要約ビデオが観たい方は、こちらでお問い合わせください。

 

2021年のモバイルテスト流行~トップ5

 

B2C企業がモバイルアプリを使用して、eコマース、銀行、マーケティングへの消費者の関心を引き付けている一方、B2B企業は、モバイルアプリを通じて、企業の運営を管理し、従業員のパフォーマンスを追跡し、パートナーと協力します。モバイルアプリの頻繁な使用に伴い、アプリの品質を向上させることが求められています。モバイルアプリに関する品質保証の最近の動きにご興味を持っていましたら、 モバイルテスト流行 ~トップ5つの流行トピックを見てみましょう。

 

テスト自動化

 

モバイルアプリ特徴の1つは、開発者がユーザーの要求に適応するために新しいバージョンを頻繁にリリースする必要があります。このため、多数のテストケースを繰り返し実行する必要があります。ここで、テスト自動化が革新的なソリューションになりました。Capgeminiが実施したWorld Quality Reportでは、57%の企業が、テストの自動化がテストケースの再利用に役立つと述べています。一方、65%は、テストサイクルタイムが短縮されたと言っています。

 

2020年の モバイルテスト流行

 

 

自動化への投資収益はコスト減少と効率向上だけでなく、市場投入までの時間(TTM)などのビジネス目標の達成からもたらされました。さらに、今年のCTO達は、テストの透明性とセキュリティについてより懸念しているようです。69%はテストの自動化がテスト活動のより良い管理と透明性を得るのに役立つと述べています。 62%は、テストの自動化によって全体的なリスクが軽減されると考えています。

 

IoTテスト

 

モノのインターネット(IoT)はモバイルアプリを通じて、スマート家電、スマートカー、スマートウォッチなどの資産を制御できます。テスターは、モバイルアプリとIoTデバイス間の相互作用が中断されないように、アプリの品質、セキュリティ、接続性、およびパフォーマンスを確認する必要があります。ただし、IoTデバイスには第三者によって開発されたクラウドベースのインタラクションレイヤーがあることが多いので、統合テストの実行は簡単ではありません。それに加えて、テスターは、IoTデバイスの多様性のために、実行する必要のある膨大な数のテストケースについても懸念しています。したがって、エミュレーターでのテストでは、QAチームの要件を満たすことができません。その結果、クラウドでのテストの人気が高まっています。

たくさんの障害に直面していますが、企業はIoTの流行に適応する方法を模索しています。多くの企業は、人工知能の機能を適用して徹底的にテストし、さらにIoTエクスペリエンステストを実施することを検討しています。

 

モバイルテストに対する5Gの影響

 

前世代と比較して、5Gネットワークには多くの革新的なテクノロジーがあり、テスターがモバイルテストを実行する方法に大きな影響を与えます。5G接続に関しては、ゲームを変える3つの主要なテクノロジーが拡張モバイルブロードバンド、超信頼性の低遅延通信、および大規模マシンタイプ通信(mMCT)です。

5Gはより広い帯域幅を提供するからより高速なデータレートとより優れたユーザーエクスペリエンスを与えます。このテクノロジーにより、5Gネットワークは360度のビデオストリーミングとVR / AR体験を可能にします。その結果、高速インターネットオフィスでモバイルアプリをテストすることは十分に効率的ではありません。さらに、データ転送の待ち時間が短縮されます。それで、遠距離でのより高速な情報受信が可能になり、モバイルアプリのパフォーマンスに大きな影響を与えました。一方、mMCTは、より少ない電力で多数のIoTデバイスとの接続をサポートするモバイルデバイスのバッテリーテストが変更されます。

 

アジャイルとDevOpsアプローチ

 

アジャイルとDevOpsは、継続的テストで人気のある方法になりました。テスターと開発者の両方のノウハウとスキルを組み合わせて、アプリの開発と展開を強化するという究極の目標を持って相互のサポートをします。アジャイルとDevOpsのアプローチは、企業が欠陥をより効率的に見つけて修正し、新しいバージョンをより頻繁にリリースするのに役立ちます。

World Quality Reportによると、アジャイル手法の中でScale Agile Framework(SAFe)とDynamic Systems Development Method(DSDM)がIT企業に最も好まれています。2015年から2017年にかけて、SAFeは31%から58%に増加し、DSDMも31%成長しました。同じレポートでは、回答者の88%以上がITチームにDevOpsの原則を適用しているとも述べています。

 

クラウドでのテスト環境

 

モバイルユーザーは2021年末に15億人に達すると推定されています。モバイルデバイスにはさまざまなOSバージョン、画面解像度、データストレージがあります。企業はあらゆる種類の携帯電話を購入できるわけではないため、モバイルテストに障害を引き起こします。その結果、テスターは実際のデバイスをテストするためにクラウドを使用する傾向があります。クラウドベースのテスト環境の使用が増加するもう1つの理由は、近年の仮想化の傾向です。これにより、クラウドおよび仮想テストツールの需要が高まり、企業がクラウドベースのテストサービスを提供する機会が増えます。

 

2021年の傾向により、QAチームは多くの課題に直面しました。適切な戦略でモバイルテストを実行する方法はまだ難しい問題です。この問題を知っているLotusQAは、モバイルアプリの品質保証に関するウェビナーを開催致します。

興味のある方はこちらで

annotationannotation

データアノテーション用 ツール

データアノテーション用 ツール

機械学習では、データの処理 と分析が 非常に重要であるため、仕事を簡単にするために データに注釈を付けるための ツール をいくつかご紹介いたします。

アノテーションの詳細 については、こちらを参照してください。

 

PixelAnnotationTool

このツールは、診断をサポートするために 医学の車、道路、細胞を見つけるなど のセグメンテーション問題に 適している。

データアノテーション用ツール

データアノテーション用 ツール

セグメンテーション画像の例

 

このツールは、OpenCVのウォーターシェッドマークアルゴリズムを使用している。 バイナリリンクに アクセスして、ツールをダウンロードして 使用できる。

 

データアノテーション用 ツール

ツールインターフェース

 

使用法:

ソースコードの設定ファイルで 色を変更し、色分けしたい領域に 色の数を対応させることが できる。 次に、マウスを使用して 色を「ドット」にし、目的の色領域に応じて「Enter」キーを押す。

 

データ生成ツール

データアノテーション用 ツール

 

Text Recognition Data Generator は、テキストを生成するために 使用されるツール。

 

このツールを使用すると、テキスト検出の問題に対して さまざまなフォント と 色を生成できる。 cn.txtファイルをdictsに 保存し、フォントも 常にcnディレクトリに保存するだけで、次のコードに従って コードを実行できる。

python run.py -l cn -c 1000 -w 1 -t 6 -k 3 -rk -b 3 -bl 1 -rbl

 

問題の要件に従ってデータを生成するには、ドキュメントを注意深く考察する必要が ある。

 

LabelImgツール

データアノテーション用 ツール

 

LabelImgは、データに注釈を付けるツールでも ありますが、Pixeltool以外では、LabelImgを使用して 周囲の4つのコーナーを取り出す。 ツールをインストールするには、githubのクローンを作成するか、pipを使用する。

 

pip3 install pyqt5 lxml # Install qt and lxml by pip

 

make qt5py3

python3 labelImg.py

python3 labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]

 

アノテーションサービスの詳細 については、こちらを参照してください。


Lotus Quality Assurance (LQA)

電話番号: (+84) 24-6660-7474
メール: [email protected]
ウェブサイト: https://www.lotus-qa.com/

Youtube: Lotus QA チャネル

 

モバイルデバイス を選択する方法

モバイルデバイス や モバイルアプリケーション はデスクトップアプリケーションとは 大きく異なります。それで、テストの中では、これらの機能をテストする必要 があります。

モバイルデバイス の特徴

モバイルデバイス

 

 

  1. ハードキーボード、仮想キーボード(タッチスクリーン)など、さまざまな画面サイズとハードウェア構成
  2. デバイスのメーカー(HTC, Samsung, Apple)
  3. OS(Android, Symbian, Windows, IOS)
  4. OSのバージョン(iOS 5.x, iOS 6.x, BB5.x, BB6.x etc.)
  5. OSの定期的な更新(android- 4.2、4.3、4.4、iOS 5.x、6.xなど)、更新ごとに、アプリケーションの機能に   影響がないことを確認する必要 がある。
  6. モバイルデバイス はデスクトップより 画面が小さい。
  7. モバイルデバイスはデスクトップより メモリが小さい。
  8. モバイルデバイス は通常2G、3G、4Gまたは WIFIネットワーク接続を使用しますが、デスクトップコンピューターは ブロードバンド または ダイヤルアップ接続を使用する。
  9. テスト自動化のツール はモバイルアプリケーション上では 動かない。

 

モバイルデバイス の限界

モバイルデバイス-限界

 

  1. CPU プロセッサー の限界
  2. RAMの限界
  3. ソースに左右される
  4. バッテリーの寿命
  5. (重要なことに、現在企業では)テスト用機器の深刻な不足

 

モバイルデバイス の選び方

モバイルデバイス

 

エミュレーター や シミュレーター と比べたとき、いつも 本物のモバイルデバイスで テストを行った方が 良い選択になります。しかし、適切なデバイスを選ぶのは 難しいです。そこで、テスト時の適切なモバイルデバイス の選び方を紹介します。

分析を行い、市場で 最も人気が あり、広く使用されているデバイスを特定。 さらに、さまざまなデバイスで テストする必要が ある場合は、モバイルストアから デバイスをレンタルすることも 経済的なオプションだ。

画面の解像度、オペレーティングシステムが 異なるデバイスを選択してください。

・互換性、メモリサイズ、接続性など 他の要素を確認してください。

 

テストサービスの詳細 については、こちらを参照してください。


Lotus Quality Assurance (LQA)

電話番号: (+84) 24-6660-7474
メール: [email protected]
ウェブサイト: https://www.lotus-qa.com/

Youtube: Lotus QA チャネル

 

画像アノテーション の保存方法

画像アノテーション の保存方法

ディープラーニングについて、最初によく出てくるのは、大量のデータまたは大量の画像でしょうか。持っている画像の数が多いほど、コンピュータのストレージスペースはより多くのメモリを消費する。ImageNetは、分類、検出、セグメンテーションなどのタスクのモデルをトレーニングするために収集されるよく知られた画像データベースだ。 1400万枚以上の画像が含まれている。

 

この記事では、画像アノテーション を保存する3つの方法をご紹介いたします。

 

画像アノテーション

1)png形式の画像ファイルとして保存

このディスクに 画像アノテーション を保存するには シンプルで業務効率化のために Pillowをインストールをする必要がある。

$pip install pillow

 

ファイルをアーカイブするには?

 

from PIL import Image

import csv

 

def store_single_disk(image, image_id, label):

 

    Image.fromarray(image).save(disk_dir / f”{image_id}.png”)

 

    with open(disk_dir / f”{image_id}.csv”, “wt”) as csvfile:

        writer = csv.writer(

            csvfile, delimiter=” “, quotechar=”|”, quoting=csv.QUOTE_MINIMAL

        )

        writer.writerow([label])

 

ディスクに保存されているデータを処理するときは、すべてのファイルを開かなくても済むように、別のファイルラベルを.csvファイルに保存する必要がある。

 

2) Lightning メモリマップデータベース(LMDB)に保存

LMDBは、各項目がバイト配列として格納されるキー値ストレージシステムである。キーは各画像の一意の識別子になり、値は画像自体になる。データベース全体メモリマップし、すべてのフェッチデータは、マップされたメモリからデータを直接返す。他のほとんどのデータベースと違いし、メモリに何もコピーすることなく、キーと値の両方のメモリアドレスへのポインタを直接返すということだ。 LMDBをインストールして試してみましょう!

 

$ pip install lmdb

 

CIFARを使って取得する

 

class CIFAR_Image:

    def __init__(self, image, label):

        # Dimensions of image for reconstruction – not really necessary 

        # for this dataset, but some datasets may include images of 

        # varying sizes

        self.channels = image.shape[2]

        self.size = image.shape[:2]

 

        self.image = image.tobytes()

        self.label = label

 

    def get_image(self):

        “”” Returns the image as a numpy array. “””

        image = np.frombuffer(self.image, dtype=np.uint8)

        return image.reshape(*self.size, self.channels)

 

画像アノテーション の保存

 

import lmdb

import pickle

 

def store_single_lmdb(image, image_id, label):

 

    map_size = image.nbytes * 10

 

    # Create a new LMDB environment

    env = lmdb.open(str(lmdb_dir / f”single_lmdb”), map_size=map_size)

 

    # Start a new write transaction

    with env.begin(write=True) as txn:

        # All key-value pairs need to be strings

        value = CIFAR_Image(image, label)

        key = f”{image_id:08}”

        txn.put(key.encode(“ascii”), pickle.dumps(value))

    env.close()

 

3) HDF5形式に保存

HDF5を使用すると、複数のデータセットを保存し、データを分割して保存できる。最初にpipをインストールしましょう。

 

$ pip install h5py

 

HDF5ファイルを作成

 

import numpy as np

import h5py

data_order = ‘tf’  # ‘tf’ for Tensorflow

# check the order of data and chose proper data shape to save image

train_shape = (len(train_addrs), 224, 224, 3)

val_shape = (len(val_addrs), 224, 224, 3)

test_shape = (len(test_addrs), 224, 224, 3)

# open a hdf5 file and create earrays

hdf5_file = h5py.File(hdf5_path, mode=’w’)

hdf5_file.create_dataset(“train_img”, train_shape, np.int8)

hdf5_file.create_dataset(“val_img”, val_shape, np.int8)

hdf5_file.create_dataset(“test_img”, test_shape, np.int8)

hdf5_file.create_dataset(“train_mean”, train_shape[1:], np.float32)

hdf5_file.create_dataset(“train_labels”, (len(train_addrs),), np.int8)

hdf5_file[“train_labels”][…] = train_labels

hdf5_file.create_dataset(“val_labels”, (len(val_addrs),), np.int8)

hdf5_file[“val_labels”][…] = val_labels

hdf5_file.create_dataset(“test_labels”, (len(test_addrs),), np.int8)

hdf5_file[“test_labels”][…] = test_label

 

ロードして保存する方法は?

 

mean = np.zeros(train_shape[1:], np.float32)

# loop over train addresses

for i in range(len(train_addrs)):

# print how many images are saved every 1000 images

if i % 1000 == 0 and i > 1:

print ‘Train data: {}/{}’.format(i, len(train_addrs))

# read an image and resize to (224, 224)

# cv2 load images as BGR, convert it to RGB

addr = train_addrs[i]

img = cv2.imread(addr)

img = cv2.resize(img, (224, 224), interpolation=cv2.INTER_CUBIC)

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# add any image pre-processing here

# if the data order is Theano, axis orders should change

if data_order == ‘th’:

img = np.rollaxis(img, 2)

# save the image and calculate the mean so far

hdf5_file[“train_img”][i, …] = img[None]

mean += img / float(len(train_labels))

# loop over validation addresses

for i in range(len(val_addrs)):

# print how many images are saved every 1000 images

if i % 1000 == 0 and i > 1:

print ‘Validation data: {}/{}’.format(i, len(val_addrs))

# read an image and resize to (224, 224)

# cv2 load images as BGR, convert it to RGB

addr = val_addrs[i]

img = cv2.imread(addr)

img = cv2.resize(img, (224, 224), interpolation=cv2.INTER_CUBIC)

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# add any image pre-processing here

# if the data order is Theano, axis orders should change

if data_order == ‘th’:

img = np.rollaxis(img, 2)

# save the image

hdf5_file[“val_img”][i, …] = img[None]

# loop over test addresses

for i in range(len(test_addrs)):

# print how many images are saved every 1000 images

if i % 1000 == 0 and i > 1:

print ‘Test data: {}/{}’.format(i, len(test_addrs))

# read an image and resize to (224, 224)

# cv2 load images as BGR, convert it to RGB

addr = test_addrs[i]

img = cv2.imread(addr)

img = cv2.resize(img, (224, 224), interpolation=cv2.INTER_CUBIC)

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# add any image pre-processing here

# if the data order is Theano, axis orders should change

if data_order == ‘th’:

img = np.rollaxis(img, 2)

# save the image

hdf5_file[“test_img”][i, …] = img[None]

# save the mean and close the hdf5 file

hdf5_file[“train_mean”][…] = mean

hdf5_file.close()

 

アノテーションの詳細 については、こちらを参照してください。


Lotus Quality Assurance (LQA)

電話番号: (+84) 24-6660-7474
メール: [email protected]
ウェブサイト: https://www.lotus-qa.com/

Youtube: Lotus QA チャネル

テスト設計技法

1)テスト設計技法 とは?

  • テスト設計技法 は、具体的に特定のシステムで 可能なテストの総数から 適切なテストセットを選択するのに役立つ。ソフトウェアのテスト技法には さまざまな種類が あり、それぞれに 長所と短所がある。
  • 完全なテストは  不可能であるため、手動テストは、テストの品質を確保しながら テストケースの数を減らし、識別が難しいテスト範囲 と 条件を識別するのに役立つ。

2. テスト設計技法の種類

テスト設計技法 には多くの種類が ありますが、主に次の2つの種類がある。

2.1) 静的テスト

静的テストは、ソースコードを実行し、または ソフトウェアシステムを実行しないタイプのテスト

技法だ。例えば、仕様書、設計書、ソースコードの確認によるエラーの発見など。

ソフトウェア開発のライフサイクルの早い段階で 行われるため、検証プロセスで 行われる。

静的テスト技法は、ソースコード、設計とモデルのドキュメント、機能仕様、必要な仕様など、あらゆる形式のドキュメントをテストするために 使用できる。

静的テスト手法には 通常、次の方法が 含まれる。

  • 非公式レビュー:ミーティングのアーカイブを必要としない、または 記録する必要がない評価プロセス。
  • ウォークスルー:これは、テストサイクルの参加者に 知識を伝達するために、ソフトウェアロジックに 精通している人が 説明する一種の指示。
  • テクニカルレビュー: ソフトウェアの技術評価に 焦点を当てている。モデレーター または 技術専門家が関与する技術知識を持つ人が 主導。 技術的なコンテンツについて 合意に達して 意思決定することに 焦点を当てたディスカッションだ
  • 検査: その目的は、プロセスにおける各人の役割 と ソフトウェアの入出力基準を明確に定義すること。これにより、エラーを発見し、プロセスを最適化するために 集計および分析する。

2.2) 動的テスト

動的テスト技法は、コードが 実行されたとき、またはコードを実行して、アプリケーションの機能を確認するための一種のテスト。 つまり、動的なテストは、実際に アプリケーションを使用して、関数が期待どおりに 機能するかどうかを確認することによって 実行される。

動的テストには 2つのタイプがある。

+ ホワイトボックステスト: 内部で コードが どのように機能するかを検討。 このタイプのテストの場合、テスターは コードを理解する必要がある。

+ ブラックボックステスト: ソフトウェアアプリケーションの機能が 期待どおりに 動作していることを確認。ブラックボックステストのタイプ:

  • 機能テスト
  • 非機能テスト

Test design techniques

 

次の記事では、テスト設計技法のタイプについて 詳しくご説明いたします。

ブラックボックステスト と ホワイトボックステストを参照してください。

 


Lotus Quality Assurance (LQA)

電話番号: (+84) 24-6660-7474
メール: [email protected]
ウェブサイト: https://www.lotus-qa.com/

Youtube: Lotus QA チャネル

 

TestingTestingTestingTesting

ホワイトボックステスト:基礎知識から活用を成功させる注意点「2024年版」

ホワイトボックステストは、ソフトウェア開発における必須の手法の一つです。ブラックボックステストと並んで、ソフトウェアの品質を確保するための貴重な手段として広く活用されています。この手法は、効率的でかつ費用対効果の高いテスト手法として業界で高い評価を受けています。

この記事では、ホワイトボックステストの優れたメリットや様々な種類、さらにその効果的な活用方法について、詳細に解説していきます。ソフトウェアの内部構造を深く理解し、コードの品質を向上させるための戦略的な手法として、ホワイトボックステストの価値を探求していきましょう。

ホワイトボックステストの基礎知識

本記事の最初章で、ホワイトボックステストの基本的な定義、ブラックボックステストの違う点及びホワイトボックステストの対象について説明していきます。

ホワイトボックステストとは

ホワイトボックステストは、ソフトウェアのテスト手法の一つであり、システムの内部構造や論理的な仕組みに焦点を当てた手法です。プログラムの外部仕様やユーザーの視点からではなく、コードやアルゴリズムの内部でどのように動作するかを重点的に検証します。

ホワイトボックステストの特徴

ホワイトボックステストでは、プログラムの内部で使用されている命令や分岐などが正しく動作しているかをチェックします。テスターは、ステートメントカバレッジ、ブランチカバレッジ、パスカバレッジな、さまざまなテクニックを活用して、ソフトウェアのコードベースを細部まで検査どします。この入念なアプローチにより、コードの各行が検証され、未検出のエラーやバグのリスクが最小限に抑えられます。

ホワイトボックステストはソフトウェアの内部構造と設計に対する貴重な洞察も提供します。テスターは、異なるコードコンポーネントがどのように相互作用し、データがシステムを流れるかについて、より深い理解を得ます。この向上した理解により、SDLCの早い段階で潜在的な問題や設計上の欠陥を特定し、長期的には時間とリソースを節約することが可能となります。

該当レベル

ソフトウェアを検証する際には、異なるソフトウェアテストの種類とテストレベルが存在します。ホワイトボックステストは、ソフトウェアテストにおける次のレベルにも適用できます。

単体テスト

単体テストは、ホワイトボックステスト技術の適用に最適な環境を提供します。このレベルでは、個々のコンポーネントを個別に検査し、プログラムを構成する比較的小さな単位(ユニット)が正確にその指定された機能を果たしていることを確認します。

ホワイトボックステストは、テスターがコードベースに深く入り込み、コードパスを入念に検証し、エッジケースを処理し、全体的な堅牢性を確保します。単体テスト中にホワイトボックステスト技術を活用することで、各コンポーネントの内部ロジックが徹底的に検証されます。これにより、潜在的な欠陥やエラーを特定し、コードを改善して信頼性とパフォーマンスを向上させることができます。

統合テスト

システム開発におけるプログラムの検証作業の中でも、手続きや関数といった個々の機能を結合させて、うまく連携・動作しているかを確認するテスト。ホワイトボックステストは、個々の機能が統合された際の相互作用やデータフローを詳細に分析し、システム全体の品質を確保するのに役立ちます。

システムテスト

システムやソフトウェアを構築した後に実行するテスト。ホワイトボックステストは、システムテストの一環として、ソフトウェア品質を検証します。内部の論理構造やコードの動作を理解することで、システム全体の問題やエラーを早期に発見し、修正することができます。

ホワイトボックステストは主に単体テストと関連しているかもしれません。ただし、統合テストやシステムテストの段階全体に適用することで、ソフトウェアの内部構造をより深く理解し、開発の各レベルで包括的なテストカバレッジを確保し、テストプロセス全体を強化することができます。

ホワイトボックステストとブラックボックステストの違い

ホワイトボックステストとブラックボックステストは、ソフトウェアテストにおける二つの基本的な方法論であり、それぞれが異なるアプローチと目的を持っています。

ブラックボックステストは、システムの外部仕様に基づいてテストを行う手法です。テスターは、システムが外部からどのように見えるかを重視し、内部の詳細には関心を持ちません。この手法では、システムの入力と出力を操作し、その振る舞いを観察して検証します。テストケースは、システムが正しく機能し、要件を満たしているかどうかを確認するために設計されます。ブラックボックステストは、システムの機能性やユーザビリティ、パフォーマンスなど、外部の視点からのテストを強調しています。

一方、ホワイトボックステストは、システムの内部構造やロジックに焦点を当ててテストを行います。この手法では、テスターはシステムのソースコードや内部の実装にアクセスし、コードのパスやデータフローを詳細に分析します。テストケースは、プログラムの各機能や分岐条件が正しく動作しているかどうかを確認するために設計されます。ホワイトボックステストは、プログラムの内部品質や構造の正確性を確認することに焦点を当てており、ソフトウェアのロジックエラーや隠れたバグを特定するのに役立ちます。

ホワイトボックステストとブラックボックステストの違い

ブラックボックステストとホワイトボックステストは、ソフトウェア品質保証において重要な役割を果たします。これらのテスト手法の選択は、テストの目的、プロジェクトの段階、そして利用可能なリソースなど、様々な要素に依存します。

もし、ホワイトボックステストの導入に悩んでいるか、プロジェクトに最適なアプローチを見極めるのに迷っている場合は、LQAにお任せくださいLQAは、ソフトウェアテストを専門とするベトナムの先駆的企業であり、約10年の豊富な経験と専門知識を持っています。プロジェクトの要件や特性を徹底的に分析し、お客様の予算や目標にシームレスに適合するテストアプローチを提案します。

包括的なホワイトボックステストサービスで費用対効果と品質向上を実現

ホワイトボックステストのメリットとデメリット

ホワイトボックステストは下記のようなメリットとデメリットをもたらします。

ホワイトボックステストのメリットとデメリット

メリット

徹底性

ホワイトボックステストはソフトウェア内のすべてのコードパスを網羅する徹底性が特徴です。このテスト手法の目的は、通常、可能な限り多くのコードをテストすることです。この包括的なアプローチにより、すべてのコードが厳密に検証され、隠れているかもしれない欠陥を検出する可能性が高まり、テストカバレッジが向上します。

自動化の可能性

ホワイトボックステストは自動化に非常に適しており、効率的かつコスト効果の高いテストソリューションとなっています。テストスクリプトはコードベースと直接やり取りできるため、繰り返しのテストやリグレッションテストを容易に実行できます。自動化テストツールを使用して、テストケースを実行したり、コードカバレッジを分析したり、包括的なレポートを生成したりすることができます。これにより、企業はテストプロセスを効率化し、貴重な時間とリソースを節約することができます。

また、自動化により、繰り返しのタスクを迅速かつ正確に実行できるため、テスターはソフトウェアのより複雑で重要な側面に集中することができます。

自動テストに関する詳細は、当社の「自動テストとは?メリット・デメリットや導入ステップを解説」の記事をご覧ください。

長期的な戦略的なコスト削減をお考えでしたら、ぜひ当社の専門家とお話ししてください。LQAは高品質な自動化テストサービスを提供し、熟練したテスターを活用して、クライアントの期待に応える成果をもたらします。

深い理解

ホワイトボックステストは、ソフトウェアの内部構造を詳細に調査することで、開発者が各コンポーネントやモジュールがどのように機能し、相互作用するかを理解するのに役立ちます。この深い理解により、開発者はソフトウェアの構造に関する洞察を得て、特定のコードの複雑さや重要なエリアを特定することが可能となります。

開発者は、ソフトウェアの内部構造やロジックに対する深い理解を活かして、より効果的なテスト戦略を策定することができます。このようにして、開発者はユーザーにとってより安定したおよび高品質なソフトウェア製品を提供することができます。

コードの最適化

ホワイトボックステストは、コードの実行パスに対する洞察を提供するため、効率的なソフトウェアの構築に貢献します。

このテスト手法によって、不必要なコードや冗長な処理が発見されることで、プログラムの最適化が可能となります。不要なコードや冗長な処理を特定することで、ソフトウェアのパフォーマンスが向上し、リソースの効率的な利用が促進されます。さらに、コードの最適化によって、ソフトウェアのメンテナンスや拡張性も向上し、将来的な開発作業がスムーズに進むことが期待されます。

デメリット

一方、ホワイトボックステストにはいくつかのデメリットも存在します。

複雑さとスキル要件

ホワイトボックステストの実施は、システムの内部構造に焦点を当てるため、テスターがプログラミング言語やソフトウェアアーキテクチャに深い理解を持っていることが不可欠です。

また、複雑なアプリケーションや大規模なソフトウェアシステムの場合、テストケースの設計や実行には緻密な計画と高度な技術が必要です。テストケースのカバレッジを確保し、適切なテストデータを作成し、テストの実行と結果の分析を行うためには、テスターが高度なテストスキルや問題解決能力を持っていることが求められます。

コスト・時間のかかり

ホワイトボックステストのデメリットの一つは、その実施にかかるコストと時間の増加です。徹底的なテストが行われるため、ブラックボックステストと比較して、ホワイトボックステストはより高いコストがかかる場合があります。ホワイトボックステストでは、各機能やコンポーネントが正しく動作するかどうかを確認するために、大量のテストコードを書くことが必要です。これも技術チームの手間を大幅に取れます。

そのため、プロジェクトの予算やスケジュールに制約がある場合、ホワイトボックステストの実施には注意が必要です。

ホワイトボックステストを適切に導入すれば、コードの品質向上や時間の節約、製品の改善など、多くの利点を享受できます。しかしながら、この種のテストを利用する際には避けられない課題も存在します。そのため、ホワイトボックステストを効果的に実施したい方は、LQAのような専門的なソフトウェアテスト会社にご相談ください。

LQAは豊富な経験と幅広いスキルを持つIT専門家を擁し、革新的な自動テストソリューションを提供しています。さらに、日本とベトナムの人件費の差を活かして、お客様の期待に応えるチームを素早く構築し、コストを最大30%削減することが可能です。

ホワイトボックステストの網羅基準

ホワイトボックステストにおける網羅基準は、テストがソフトウェアのあらゆる側面を包括的にカバーすることを確保するための基準です。これらの基準により、開発者やテスターはソフトウェアの品質や信頼性を確実に向上させることができます。下記はホワイトボックステストにおける代表的なコードカバレッジです。

ホワイトボックステストの網羅基準

命令網羅

命令網羅(ステートメントカバレッジ)は、テストがプログラム内のすべての命令を少なくとも一度は実行することを確認する基準です。つまり、プログラム内のすべての命令がテストケースに含まれることを目指します。これにより、コード内の個々の命令が正しく実行されるかどうかを確認し、カバレッジ率を向上させます。

 判定条件網羅

判定条件網羅はプログラム内のすべての条件文の真偽値が少なくとも一度は評価されることを確認する基準です。つまり、条件文が真と偽の両方の結果になることを確認します。これにより、条件分岐におけるすべての可能なパスがテストされ、コードの正確性が確認されます。

条件網羅(ブランチカバレッジ)

条件網羅は、ソフトウェア内の全ての条件式の組み合わせが少なくとも一度は実行されるように、テストケースを設計することを指します。この基準では、ソースコード内の各条件分岐の真偽が、テストでどの程度出現したかを評価します。これによって、プログラムのあらゆる条件式が適切に検証され、動作が正確であることを確認します。

複数条件網羅

最後に、複数条件網羅も重要な基準の一つです。この基準では、複数の条件式が組み合わさった状態でのテストケースを設計することが求められます。これにより、複雑な条件式や条件の組み合わせが適切に処理され、プログラムの動作が完全に理解されます。

基本的なホワイトボックステストの手法

ホワイトボックステストにはさまざまな手法がありますが、その中でも基本的な手法には、ベースラインテスト、制御フローテスト、およびデータフローテストがあります。

基本的なホワイトボックステストの手法

ベースライン テスト/折れ線グラフ

ホワイトボックステストにおけるベースラインテスト、または折れ線グラフ法は、Tom McCabeによって初めて導入されました。この手法は、プログラムの制御フローグラフに類似しており、アルゴリズムの記述やコンポーネントの関係を視覚的に示すのに役立ちます。

ベースラインテスト/折れ線グラフは、アルゴリズムの実装に関する情報を提供し、テストケースの設計者が手続きの複雑さを理解するのに役立ちます。この手法は、ノードとアークという2種類のコンポーネントで構成されています。

折れ線グラフには様々なタイプのボタンがあります。たとえば、制御フローグラフにはバイナリ決定ノードのみが含まれている場合、それをバイナリ制御フローグラフと呼びます。

ベースラインテスト/折れ線グラフは、プログラムの内部構造を理解し、テストケースの設計や分析を行う際に重要なツールとなります。これにより、開発者やテスターはプログラムの振る舞いを視覚化し、検証することができます。

制御フローテスト

制御フローテスト方法はソフトウェアユニットのすべての実行パスが適切に実行されることを確認するために使用されます。実行パスとは、特定のソフトウェアユニットのエントリポイントから終了ポイントまでの、実行されるコマンドの順序付きリストです。ソフトウェアコンポーネントごとに異なる実装パスがありますが、制御フローテストの目的は、テスト中のすべての実行パスを網羅し、適切に実行されることを確認することです。

例えば、以下のコードを考えてみましょう。

for (i=1; i<=1000; i++)

for (j=1; j<=1000; j++)

for (k=1; k<=1000; k++)

doSomethingWith(i,j,k);

このコードには1つの実行パスがありますが、非常に長い実行パスです。制御フローテスト方法を使用して、このコードのすべてのループが正しく動作し、期待どおりの結果が得られることを確認することが重要です。

データフローテスト

データフローテストはプログラムのデータの流れの整合性と正確性を評価する方法です。制御フローテストとは異なり、プログラムステートメントの実行順序に焦点を当てる制御フローテストとは異なり、データフローテストはデータがプログラムを通じてどのように移動するかを詳細に検討します。これは、データの操作、保存、取得に関連する潜在的な脆弱性、エラー、または異常を特定することを目的としています。

データフローテストはソフトウェアの内部構造とロジックを調査する白箱テストで重要な役割を果たします。データフローパスに深く入り込むことで、白箱テスターは他のテスト方法では明らかにならない隠れた欠陥、セキュリティの脆弱性、および論理エラーを発見することができます。

プロジェクトの要件に応じて、最適なテスト手法を選択することが重要です。LQAの経験豊富で専門知識に裏打ちされたテスターは、プロジェクトにおいて最適な戦略を策定し、ホワイトボックステストを効果的に実施できます。これまでに、教育、金融、建設、ヘルスケア、自動車などの業界におけるお客様にテストサービスを提供し、国際標準を満たす優れた成果を収めてきました。これにより、顧客満足度は94%に達し、高い信頼を得てきました。

包括的なホワイトボックステストサービスで費用対効果と品質向上を実現

ホワイトボックステストの基本的な手順

以下は、ホワイトボックステストを実施するための基本的な手順です。

テストを実施するための準備

ホワイトボックステストプロセスを開始する前に、ソフトウェアの要件、仕様、および設計を理解することが極めて重要です。テスターは、テスト対象のソフトウェアのソースコード、アーキテクチャ、および実装の詳細に精通する必要があります。さらに、テストが必要な機能、モジュール、またはコンポーネントを特定する必要があります。この理解は、テスターが効果的なテストケースを作成し、コードの包括的なカバレッジを確保するのに役立ちます。

また、テスト計画もホワイトボックステストにおける重要な段階です。テスターはテストの目的、範囲、アプローチ、および必要なリソースを明確にするテスト計画を策定します。この計画には、テストシナリオ、テストケース、およびテストデータの定義も含まれるべきです。徹底的な計画により、テスト活動がプロジェクトの目標と一致することが確実になります。

テストの作成と実行

準備段階が完了したら、テスターは特定された要件と仕様に基づいてテストケースを作成します。テストケースはソフトウェアの内部ロジックやコードパスの正確性や堅牢性を検証するために設計されます。テスターはステートメントカバレッジ、ブランチカバレッジ、パスカバレッジ、およびデータフローカバレッジなどの様々なホワイトボックステスト手法を活用して包括的なテストカバレッジを確保します

テストケースの作成手法の詳細については当社の「例を含む5つのテストケースの作成手法のガイド」の記事をご覧ください。

テストケースの作成中、テスターはソフトウェア内の異なるコードパス、条件、および決定ポイントに焦点を当てます。特定のコードセグメント、ループ、ブランチ、および例外処理メカニズムを実行するためのテストケースを設計します。テスト入力は、有効および無効なシナリオ、境界条件、およびエッジケースをカバーするように慎重に選択されます。

テストケースが作成されたら、テスターはそれらをテスト対象のソフトウェアに対して実行します。自動テストツールを使用してテストの実行プロセスを効率化することができます。テスト結果が記録され、テスト中に発生した任意の逸脱や失敗が記録されます。

テストレポートの作成

テスト実行段階が完了した後、テスターはテスト結果をまとめ、包括的なテストレポートを作成します。これらのレポートには、ソフトウェアの挙動、テスト中に発生した欠陥や問題、および達成された全体的なテストカバレッジが含まれます。

テストレポートには通常、実行されたテストケースの数、合格/不合格のステータス、コードカバレッジメトリクス、欠陥ログ、および改善のための推奨事項が含まれます。テスターはテスト結果を分析し、ソフトウェアに潜む問題や傾向を特定し、今後の改善の方向性を見出すことができます。

LQAは、ヘルスケア、自動車、教育などの業界に特化したカスタマイズされたテストサービスを提供しています。私たちの専門家は、これらの業界におけるシステムの内部構造に深く理解を持ち、その知識を活用してホワイトボックステストの手順を最適化し、効果的なテストケースを設計し、実行することができます。

また、LQAの強みは日本語と英語の相互スキルにあります。これらの言語を使いこなすことで、開発段階での円滑なコミュニケーションが実現されます。その結果、予期せぬトラブルにも迅速に対応でき、プロジェクトの被害やリスクを最小限に抑えることができます。

包括的なホワイトボックステストサービスで費用対効果と品質向上を実現

よくある質問

ホワイトボックステストとは?

ホワイトボックステストは、ソフトウェアの内部構造やコードの動作を詳細に検証するテスト手法です。開発者やテスターがソフトウェアのコードやアルゴリズムにアクセスし、その内部の仕組みを理解してテストケースを設計し、検証します。これにより、ソフトウェアの品質や信頼性を向上させることができます。

ホワイトボックステストにはどんな種類がありますか?

ホワイトボックステストには、制御フローテスト、データフローテストなどの主要な種類があります。

ホワイトボックステストのメリットは?

ホワイトボックステストは徹底性やシステムに関する深い理解、コードの最適化など、多くのメリットをもたらします。これらのメリットにより、ホワイトボックステストは隠れたバグを早期に検出し、製品の品質とパフォーマンスを向上させるための深い洞察を提供します。

結論

まとめると、ホワイトボックステストは、ソフトウェアシステムの内部構造やロジックを深く掘り下げることで、その完全性と信頼性を確保する上で重要な役割を果たします。このテスト手法は、その複雑さから課題も伴いますが、LQAのような経験豊富なテスト企業との提携により、これらの障壁を克服することができます。

LQAの専門知識とカスタマイズされたテストサービスを通じて、日本企業は徹底的なホワイトボックステストを実施し、潜在的な問題を特定し、全体的なソフトウェア品質を向上させることができます。ホワイトボックステストをLQAに任せることで、組織はソフトウェアの検証の複雑さを自信を持って乗り越え、顧客に優れた製品を提供すると同時に、他の主要な目標やビジネスに集中することができます。

データアノテーター

データアノテーター

 

人工知能は 今最も 急速に成長している 分野の一つで、私たちの日常生活にも 広く利用されています。携帯電話、自動車、金融 システム、都市インフラなど 様々なところで AIが 重要な役割を果たしています。

AIが 身近なものとなり、多くの人が AIについて 知っているように見えますが、AIを構築する作業の中で 最も 重要であるアノテーションについて 知っている人は ごくわずかです。

AIは データの学習から 構成されており、それはまるで ブロックを組み上げていくようなものと言っても 過言ではありません。機械学習 アルゴリズムは 何もないところからは 生まれません。彼らは ラベルが 付いたデータを取り込むことで、一定のパターンを認識できるようになります。つまり、学習が 必要なのです。

そのためAI 開発者は、機械学習 アルゴリズムを学習させるために、人の手によって ラベルが 付けられた、数千ものデータを用意することが 必要となります。

私は 今こそ、AI開発の裏に 隠れた秘密兵器である、データアノテーター の仕事 を紹介したいと思います。

 

AI 開発の秘密兵器

アノテーションとは

データアノテーター とは テキスト や 動画、画像など あらゆる形態のデータに ラベルを付ける作業のことです。

はじめは データに 構造や順序がないので、機械は データを判別できません。

写真に何が 写っているか、音の判別、異なる言語の文字に 人がラベルを付けないと、データは 単なるノイズになってしまいます。

しかし、データアノテーター 作業により ラベルを付けていけば、このノイズは 集中的な学習マニュアルになり、機械は 入力されたパターンを簡単に、明確に 判別できるようになります。

アノテーター達は 機械が 人間の世界を理解できるようにするために、ハードワークをこなしています。

 

アノテーションはどのように処理するのか

それでは、もし あなたが AIを搭載した 自動運転の車の開発に 取り組んでいて、写真の中の車を識別するアルゴリズムを持っているとします。

そのアルゴリズムの中では、「車」とは エンジン、4つの車輪、いくつかの 座席を備えたものと 定義づけられています。

簡単そうですね。

しかし、コンピュータは そもそもエンジン、車輪、座席とは 何なのかを判別できません。

ここで データアノテーター が 登場します。

 

データアノテーター

 

コンピュータが「車」を認識できるようにするために、写真の中に「車」が あるというラベル付けされている 何百万枚もの写真が 必要になります。

このような画像を認 識するための 教師データの学習を通じて、機械学習アルゴリズムをトレーニングしていきます。

ですから、基本的には アルゴリズムに対して、何が 車かを伝えることは ありません。その代わり、数百万のラベリングされた 写真のデータを与えることで、アルゴリズム 自身に パターンを認識させる手助けをします。

「データアノテーションは 非常に 労働集約的であり、収集されるデータの1時間ごとに 注釈を付けるのに 800時間近くかかります。」

はい。データアノテーター は 依然として 手作業を必要とする、アナログなプロセスです。Cognilytica’s data preparation & labelling 2019 reportによると、現在 AI開発のうち 80%は データの準備に費やされているようです。データの小さなエラーでさえ 大きな損害 をもたらすことが あります。この分野では、人間は 実際に機械に 足を踏み入れています。人間は 主観性の管理、意図の理解、曖昧さへの対処において 機械より 優れています。これらは 全て データアノテーションの重要な要素です。

そこに は何のタネも 仕掛けもありません。ただあるのは 人間による大変な労働です。

機械は、人間が アウトプットした分だけ 良いものになります。そして、次のデジタル 革命の立役者は、PCの前に座って データ注釈 を付けているアノテーターです。

彼らが いなければ、人工知能は 存在しません。

 

アノテーションサービスの詳細 については、こちらを参照してください。


Lotus Quality Assurance (LQA)

電話番号: (+84) 24-6660-7474
メール: [email protected]
ウェブサイト: https://www.lotus-qa.com/

Youtube: Lotus QA チャネル