Yazılım Yapımı 2017-2018 (Bahar Dönemi) Projesi
Örnek Projeyi Geliştiren: Emre ORHAN
Proje Linki: https://scrummastertaskmanager.herokuapp.com/story/1
İstenilenler
•Stroy bilgileri text olarak stories kısmına eklenebilecektir.
•Her bir storie’ye ait tasklar oluşturulabilecektir.
•Tasklar not started, in progress ve done olarak üç kategoriye ayrılacaktır.
•Taskların kategori bilgileri değiştirilebilecektir. (Örnek: Not started kategorisinden in progress kategorisine değiştirilebilecektir.)
•Taskların içerinide taskın kim tarafından hangi tarihte yapılacağı bilgisi bulunacaktır.
8 Ekim 2018 Pazartesi
4 Ekim 2018 Perşembe
Crossover ile Uzaktan Çalışma
Uzaktan çalışmak isteyenler için güzel bir alternatif sunan Crossover uygulaması ile lokasyon bağımsız olarak iş alabilir, işin tamamlandığı hafta elde ettiğiniz ücretinizi banka hesabınıza çekebilirsiniz. Sistemin ilk kullanımınında Ingilizce konuşma ve yazışma beceriniz sınayan bir sınav gerçekleştirmektedir. Ayrıca ikinci aşamada yazılım geliştirme uzmanlığınızı sınayan farklı testlerde site içerisinde yer almaktadır.
Sitenin web adresi: https://www.crossover.com/
23 Temmuz 2018 Pazartesi
Emma
Java kullanıcıları için oluşturulan bir kod kapsama aracıdır. Eclipse uygulamasında eski versiyonu hazır olarak bulumaktadır. Emma kod kamsama aracının yeni versiyonu ise Eclipse marketten kolaylıkla indirilebilir. Programın en büyük avantajı çalışılan kodu inceleyerek kod kapsaması ve kod kapsama ölçümü yapılabilir.
Emma'nın Sahip Olduğu ÖzelliklerHızlı Test Döngüsü: Ayrı pencerelere ve uygulamaya gerek yoktur, kodlar direk analiz edilebilir.
Zengin Kapsama Analizi: Test sonuçları açık bir şekilde kullanıcıya gösterilir.
Kullanım Rahatlığı: Herhangi bir kuruluma veya kod değişikliğine ihtiyaç duyulmaz.
Emma - Hesap Makinesi Örneği
Test senaryolarımızı oluşturalım
Kodlarımızı kapsayıp sonucu inceleyelim
Emma- String Kod Örneği
Örneğin Açıklaması
Şimdi kod kapsama oranlarının değişimini yakından görmek adına bir örnek inceleyelim.
Bunu bir önceki slayttaki örneğe yeni testler ekleyerek yapalım.
MyUnit classında şöyle bir fonksiyon tanımlayalım.
Test kapsamını çalıştırıp tablomuzu inceleyelim.
Gördüğümüz gibi testte %36,4 gibi bir başarı oranı var.
Bunun sebebi, kod kapsama işleminde hem true hem de false koşullarının incelenip işlenmesidir.
Şimdi aynı testi bir de ‘false’ yani doğru değer döndürecek şekilde kapsayıp çıkacak değerleri inceleyelim.
Kontrol edilen olumsuz koşul olmadığında %100lük bir kapsama oranı aldık.
Constructor yapısının kullanıldığı bu örneği inceleyelim.
Test sınıfında hayvan nesnesini ve test senaryosunu oluşturalım.
Önceki slaytlardaki kodlar kapsanmış haldeydi. Ve testler başarılı olduğundan yeşil renk ile işaretlenmiş haldeler.
Karmaşıklıktan uzak durmak adına işlemleri fonksiyonlar içinde yazıp daha sonra üstte return ettik.
Sıra test senaryolarını oluşturmakta
Programda yanlış karakter girilmediği için false durumu çalıştırılmadı.
Bu durum kapsama sonucunda aşağıdaki gibi belirtiliyor.
Dizi Kullanım Örneği
Demo adında oluşturduğumuz sınıfta üç fonksiyon tanımlayalım.
İlk fonksiyon dizinin elemanlarını bir arttırsın.
İkinci fonksiyon elemanların değerini bir azaltsın
Son fonksiyon da her elemanı iki ile çarpsın
Test sınıfını oluşturup senaryoları yazalım
Başarısız olan testlerin gösterimini anlamak adına ‘testAddOneToArray’ testine yanlış değerler verip durumu inceleyelim
İçerik Hazırlayan : Sinan Aktepe
Kaynaklar
http://emma.sourceforge.net/
https://www.eclemma.org/
https://www.jetbrains.com/dotcover/whatsnew/
https://www.atlassian.com/blog/announcements/atlassian-clover-open-source
Resharper - dotCover
.NET için geliştirilmiş ve visual studio içinde menüye kolaylıkla eklenip çalıştırılabilen bir araçtır. Bilgisayarınızda bulunan Visual Studio sürümlerini seçebileceğiniz bir arayüze sahiptir.
Dotcover
Resharper
Kurulum
Örnekler
Örnek Çalıştırmak İçin
Testlerin başarısız yada başarılı olduğunu gösteren ekran
String ile ilgili örnekler
Kelime işlem sınıfında;
Kelimenin uzunluğunu gösteren,
Kelime içinden bir bölümü silen
Ve harf değişimini sağlayan fonksiyonlar tanımlayalım.
Daha sonra test senaryolarını yazıp kodlarımızı kapsayalım
Listeler ve Collection Assert
Test initialize ile bir başlangıç durumu oluşturalım ve bu durum üzerine birkaç test oluşturup kapsama işlemini gerçekleştirelim.
İlk testte elemanların sırasını değiştirip sonucu inceleyelim.
Banka Hesap Örneği
İçerik Hazırlayan: Sinan Aktepe
Kaynaklar
https://en.wikipedia.org/wiki/Code_coverage
http://blog.solvepark.com/makale/yazilim-testi-nedir
https://stackoverflow.com/questions/195008/what-is-code-coverage-and-how-do-you-measure-it
Dotcover
Resharper
Kurulum
Örnekler
Örnek Çalıştırmak İçin
Testlerin başarısız yada başarılı olduğunu gösteren ekran
Coverage oranları
String ile ilgili örnekler
Kelime işlem sınıfında;
Kelimenin uzunluğunu gösteren,
Kelime içinden bir bölümü silen
Ve harf değişimini sağlayan fonksiyonlar tanımlayalım.
Daha sonra test senaryolarını yazıp kodlarımızı kapsayalım
Stringlerle ilgili başka bir örneğe bakalım.
Listeler ve Collection Assert
Test initialize ile bir başlangıç durumu oluşturalım ve bu durum üzerine birkaç test oluşturup kapsama işlemini gerçekleştirelim.
İlk testte elemanların sırasını değiştirip sonucu inceleyelim.
Banka Hesap Örneği
İçerik Hazırlayan: Sinan Aktepe
Kaynaklar
https://en.wikipedia.org/wiki/Code_coverage
http://blog.solvepark.com/makale/yazilim-testi-nedir
https://stackoverflow.com/questions/195008/what-is-code-coverage-and-how-do-you-measure-it
Clover
Atlassian tarafından geliştirilmiş, Java ve Groovy için tasarlanmış ve açık kaynak kodlu olan bir code coverage aracıdır.
FastText
FastText, metin sınıflandırılması için Facebook AI Research ekibi tarafından geliştirilen gensim yapısında bulunan, metinleri veya kelimleri sürekli vektörlere dönüştüren bir kütüphanedir (1).
FastText Nasıl Çalışır?
Yukarıdaki şekilde CBOW & SKIPGRAM yapılarının farklılıkları gösterilmektedir. CBOW modelinde tüm kelimeleri kapsayan bir bakış açısı (seling, these, leather, jacket) ve vektör toplamı bir arada kullanır. SKIPGRAM modelinde ise hedef kelime (fine) verildi ise hedefe rasgele bir yakın kelime kullanarak hedefi belirlemeye çalışır (2) .
Kelimeler arasındaki benzerliği açı yöntemi ile hesaplama formülü yukarıda verilmiştir.
Similarity formülün python kodu yukarıda verilmiştir. Genel olarak FastText ticari alandada önemli olan metin sınıflandırılması üzerine tasarlanmıştır (Örnek; Spam postalarının tespiti) FastText diğer metin sınıflandırma yapılarına göre daha hızlı ve performaslı olduğu söylenmektedir (3).
FastText Gereksinimleri
Genel olarak FastText Mac OS ve Linux dağıtımlarına dayanır. İyi bir compiler (C11) desteğine ihtiyaç olacaktır.Kelime Değerlendirme için Python 2.6 veya üstü NumPy ve SciPy Python bağlamaları için Python sürüm 2.7 veya 3.4 NumPy ve SciPy pybind11 (2). Python ile FastText bağlarını(NumPy&SciPy) başarılı bir şekilde kuruduğumuz ve test ettiğimiz en eski dağıtımlardan biri de Debian jessiedir. Windows üzerinde de çalışabilir ama Linux üzerinde daha performanslı ve etkilidir.
FastText Kurulum
Debian üzerinde çalışıtığımız için öncelikle “python-pip” yükleme aracını sisteme kuralım.
debian@linuxpc:~$ sudo apt install python-pip
FastText git clone ile sisteme kurulumu
debian@linuxpc git clone https://github.com/facebookresearch/fastText.git
debian@linuxpc:~$ cd fastText
debian@linuxpc:~/fastText $ pip install
FastText komut satırında örnek kullanımı
debian@linuxpc:~/fastText $ ./fasttext skipgram -input data.txt -output model
FastText Gerçekleştirimi
Yukarıdaki şekilde verilen hedef kelimenin en yakın olanları eğitilmiş modele göre tahmini.
Yukarıdaki örnekte kullanılan veri seti, toplamda 15404'lük sample'a sahiptir. Bunun 12404 adetlik kısmı eğtimi için 3000 adetlik kısmı ise test için ayrılmıştır. Sonrasında cooking.train eğitilmiş dosyası kullanılarak model_cooking adında vektör dosyası oluşturulmuş. Test kısmında model_cooking.bin dosyasını kullanarak daha önceden test için ayrılan veri seti kullanılarak test edilmiştir.
FastText Performansı
FastText'in diğer derin öğrenme yapılarına göre daha performanslı olduğu deneyimlenmiştir. Facebook AI Research tarafından yapılan deneyde bir kaç günlük eğitim süreleri ile eğitilen vektörle üzerinde yapılan araştırmalarda kendini kanıtlamış ve diğer yapılara göre daha yetenekli olduğu saptanmıştır (3).
Metin sınıflandırmasının dışında FastText kelimelerin vektör olarak öğrenmek için de kullanılabilir.
Çeşitli diller üzerinde çalışacak şekilde tasarlanmıştır. FastText, popüler word2vec aracından veya diğer son teknoloji morfolojik sözcük gösterimlerinden daha iyi performans elde edebilir (3).
İçerik Hazırlayan: Yusuf Dede
Kaynaklar
(1) https://fasttext.cc/docs/en/support.html
(2) https://github.com/facebookresearch/fastText
(3) https://research.fb.com/fasttext/
Kaydol:
Kayıtlar (Atom)