2018年1月9日(火曜日)

Windowsのここがいや><

カテゴリー: - murakami @ 01時41分06秒

あけまして、おめでとうございます。
今年もよろしくお願い致します。

顧客サービス部の村上です。

今日は、私がWindowsのここがいやと常々感じていたところを、
1つ改善できたので、ちょっと報告します。
そんなことは知ってるよって方は、スルーしてね^ ^;

写真1

写真1は、会社のPCのタスクバーです。
いつも良く使うフォルダーは、開けたままにしています。
エクスプローラーのアイコンににマウスを重ねると、
さっと横に展開表示されます。

これがいやなのです。
一番良く使うフォルダーをうっかり閉じてしまった時、
次に開くと、一番右に表示されてしまい、そこに移動するのが
非常に面倒なのです。
最後に開いたフォルダーが、せめて一番左に表示されたら
それ程いやに感じないのに・・・。

時々、写真2のように表示される時がありました。

写真2

これだと、最後に開いたフォルダーが一番下にきて、
とても使いやすいと感じていました。
でもすぐに写真1に戻ってしまいました。

きっと、デフォルトが写真1になっているのだと思いました。
写真2のように表示したいと思っているのは、たぶん私だけではないと思い、
早速ググってみました。

見つかりました^ ^

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14101494514

これで、写真1に戻ることはなくなりました。

それでは、この辺で(^^ゞ


2017年12月27日(水曜日)

e2eテストについて

カテゴリー: - terasaka @ 12時58分46秒

どうも、神戸本社の寺坂です。

今回は仕事でe2eテストに携わることがあったので、自分の体験談や苦労した点について書いていこうかと思います。

そもそもe2eテストってなに?何をどうすればいいの?
最初は右も左もよく分かってなく、目的を果たすための手段やツールの名前も分からないけど、とりあえず手を動かして環境を構築してみました。

〇今回業務で使用した主なツール(分かる範囲で)
ーProtractor5.1.2←Angularのテストフレームワーク、便利
ーcucumber1.3.2←テストシナリオ作るフレームワーク
ーnode8.5.0
ーVSCode1.18.1
ーGithub

〇コーディング
の前に、e2eテストについてはネットで調べて、何の目的で行い、どうすればそういうプログラムが書けるのかを勉強しました。

以下、初心者である自分なりの解釈
どうやらテストシナリオというものがあって、このシナリオに沿った操作を行えばいいみたい。
e2eの目的:自動でテストを楽にするため。ドキュメント(テスト結果)残すため。
作り方:po、step、featureという3つのファイルを作る
    .po ・・・DOMを取得する操作だけを書くファイル
    .step・・・poを使ってシナリオに沿った操作を書くファイル
    .feature・・・stepファイルをシナリオ通りに並べるファイル
po→step→featureの順で作ると分かりやすい。

さっそく例題
例:
下記画像のようなWebページがあるとする。
f:id:teragt:20171220145913p:plain
以下のシナリオを作成せよ。
1.ログインボタンを押す
2.タイトルが「SysDev」になっているか確認する
3.ログアウトボタンを押す

sample.po.ts  

import { by, element } from 'protractor'; //使うモジュールをインポート。他にも$とか色々ある

export class LoginOut{ //stepで使うためにクラスをエクスポート  getLoginButton() {   return elment(by.css('loginbutton')); //ログインボタン要素取得  }  getLogoutButton() {   rerurn element(by.css('logoutbutton')); //ログアウトボタン要素取得  }  getTitleText() {   return element(by.css('titletext'); //タイトル要素取得  }  }

sample.step.ts  

import { browser } from 'protractor'; import * as chai from 'chai'; //expect(評価関数)を使うためにchai(フレームワーク)をインポート import { LoginOut } from '../po/sample.po'; //使うpoファイルをインポート

export default function(){ //stepを作る魔法  const LoginOut = new LoginOut(); //poのclassを使う魔法  this.Given(/^Login Click$/, async function() { // /^$/の間にstep名書く。あとは魔法。このthisから始まるstep一つ一つが関数のようなものになる。   await browser.waitForAngular(); //Angularのレンダリング終了を待つ。   await LoginOut.getLoginButton().click(); //poで要素取得して、取得した要素に対してクリック操作をする。  });  this.Given(/^Logout Click$/, async function() {   await browser.waitForAngular();   await LoginOut.getLogoutButton().click();  });  this.Then(/^Title Check$/, async function() {   await browser.waitForAngular();   chai.expect(await LoginOut.getTitleText().getText()).to.equal('SysDev');     //titleのtextを取得して文字列SysDevと比較評価。違ってたらプログラム止まる。  }); }

sample.feature.ts  

@active //activeなら動くdisabledなら止まる。 Feature: Login And Logout //↓この三行は人が識別するための文字列的な。ちなみにconsoleには表示される。  User Can Login And Logout  Scenario: User Can Login And Logout //↑ Given Login Click //stepで書いたGivenやThenなどとstep名をシナリオに沿った順番で書く Then Title Check //GievnとかThenとかは識別用?動きにはあまり関係ないぽいぞ Given Logout Click

このような感じでe2eテストのシナリオを作成していきます。(分かり辛かったらすみません)
一応、上記の3ファイルで例題のシナリオ通りには動く(はず)

〇苦労した点と解決策
★欲しいDOMが取得できない!

・他の要素が重なっていてnot visibleとなって取得できない。
ウィンドウサイズが原因だったため、
browser.driver.manage().window().maximize();
でウィンドウを最大化して解決。

・マウスオーバー要素もnot visibleとなっていたので、
browser.action().mouseMove(element(by.css(’マウスオーバー要素’))).perform();
でマウスを重ねて要素表示させて解決。

・input要素のvalueが欲しいのに何をやってもundefined。
見えてる要素が取れんわけないやん、getAttribute(’value’)で解決。
使ったことない関数を使うことの大切さを学びました。

★シナリオの要求が難しくなった!

・DBのテーブルをDROPするシナリオがあり、exec関数を使ってshellを走らせた。

zipファイルをダウンロード→解凍→Checkするシナリオ、同じくexec関数で解決。
execって便利デスネ!!
linuxのコマンドなら一発なのにな〜って思う場面が意外と多く大活躍!

★システムのバージョンアップ毎にclass名や機能が変わったりした!

作成したシナリオが増えているほど修正点が増えるため、単純に修正作業に時間がかかっちゃう。
システム内にidはなくclass名のみ、しかもバージョンアップ頻度高かった。

step名にパラメータを渡せるため、複数シナリオで使いませるstepを作成して修正箇所を減らしたり、根気でちまちま修正して解決。
修正といっても単純作業なので結構慣れる。 

f:id:teragt:20171220170356p:plain

〇e2eテストやってみての所感
e2eテストが何のために行われるのかを考えたりしました。

普通、テストはバグを発見するために行います。
e2eテストはユニットテストと違い、システム全体をテストするものです。
ということは全体のバグを発見するのでしょうか?
ある意味合ってるけど、ある意味違うような気がします。

作成したシナリオを通じて思ったのですが、重要な処理部分に関するシナリオが多かったので、
e2eテストはシステムの中でも特にクリティカルな部分をテストするためにあるのかなぁ、なんて考えたり。

間違ってたらすみません(笑)

2017年12月11日(月曜日)

年末調整のアレ

カテゴリー: - j_sato @ 17時57分55秒

どうもー!
顧客サービス部の satonasu です。

先月の記事※で年末調整関連の書類について言及があったので、
https://www.icraft.jp/modules/wordpress/index.php?p=1486

個人的に使ってる便利ツールをちょっとだけ紹介します。
…と言っても今回はもう間に合わないし、来年からは書式が変わっちゃうので、
こんなん作ってやってますよー的なお話です^^;

https://docs.google.com/spreadsheets/d/1oOJ91SUaI5Za5fkZrrOCX97Ah2t1dD0hCwVq8AdpVkI/edit?usp=sharing
※ご自身のGoogleスプレッドにコピーして試してみてください

Googleアカウントがないと体験できませんが…
必要な部分を入力すると、ややこしい計算がパッと済みます。

Excelをある程度勉強すれば出来るレベルなので、
これをヒントにご自身で作ってみてはいかがでしょうか。

(というかこんな簡単なん、国が作ったらええのに…)


2017年12月6日(水曜日)

社内NASにアクセスできない

カテゴリー: - itou @ 14時36分18秒

お疲れ様です。伊藤です。

先日、自分のWindows10の端末にFall Creators Updateを当てた所、
社内のNAS(Terastation)に繋がらなくなりました。
 
Microsoftの情報によると、匿名認証がデフォルトだと無効になったため、
アクセス制限なしに設定していたTerastationにSMBアクセスできなくなった模様。
 
■Microsoft - Guest access in SMB2 disabled by default in Windows 10 Fall Creators Update and Windows Server 2016 version 1709
https://support.microsoft.com/ja-jp/help/4046019/guest-access-smb2-disabled-by-default-in-windows-10-server-2016
 
対象OS:
Windows 10 Enterprise and Windows 10 Education
Windows Server 2016 Datacenter and Standard edition
 
とりあえず暫定対応として、自分は下記の案2で対応しました。
 
■対処方法
案1:グループポリシーを変更する
コンピュータの構成 > 管理用テンプレート > ネットワーク > Lanmanワークステーション > 安全でないゲストログオンを有効にする
未構成→有効
 
案2:レジストリを変更する
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstationParameters]
AllowInsecureGuestAuthのdword:0→dword:1
※レジストリを変更時はお気をつけください!
 
案3:Terastationの設定を変える(ゲストログオンをやめる)
セキュリティ的にはこれ推奨ですが、運用ルールを変えることになるので、
気力がある情シス向け。
 
同じ現象が発生した人はお試しください。

26 queries. 1.169 sec.
Powered by WordPress Module based on WordPress ME & WordPress