Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, Testinyum ve Bilgi Teknolojileri şirketinin kurucu ortaklarından Melih Sakarya tarafından sunulan bir sunum formatındadır. Sunumda yazılım kalitesi ve test otomasyonu konuları ele alınmaktadır.
- Sunum, yazılım geliştirme sürecinde kalite ve verimliliği artırmak için çeşitli yöntemleri, karşılaşılan sorunları ve çözümleri detaylı şekilde ele almaktadır. Köye Dashboard ve Ecel Board gibi yazılım kalitesi takip araçlarının tanıtımı, test otomasyonu, regresyon testleri, metrikler ve OKR (Objective and Key Results) yöntemi gibi konular sunulmaktadır. Ayrıca, uygulama performans izleme ve teknik borçlanma yönetimi gibi konular da videoda yer almaktadır.
- Sunum, yazılım kalitesini ölçen çeşitli metrikler (teknik borçlanma, saklanmamış karmaşıklık, test覆盖率等指标的详细解释。演讲者还介绍了如何通过自动化测试、持续集成和团队协作来提高软件质量,并分享了实际案例中如何将测试覆盖率从60%提高到90%的具体措施。此外,视频还包括了关于测试工程师的角色、团队合作和文化转变的讨论。
- 00:07Yazılım Kalitesi ve Verimliliği Hakkında Giriş
- Konuşmacı, web ve mobil uygulamalarda yazılım kalitesi ve verimliliğini artırmak konusunda bir içerik sunacağını belirtiyor.
- Konu sadece web ve mobil uygulamalara değil, tüm uygulamalarda verimliliği nasıl artırabileceğimiz konusunu kapsıyor.
- Konuşmacı, Testinyum ve Bilgi Teknolojileri'nin kurucu ortaklarından olduğunu ve şirketin yaklaşık 350 çalışanı olduğunu söylüyor.
- 01:03Testinyum'un Çalışma Alanı ve Hedefleri
- Testinyum, sadece test aktiviteleri değil, yazılım geliştirme sürecinde kaliteyi artıracak statik kontrol, pratiklerin uygulanması ve ecel süreçlerle ilgili danışmanlık hizmetleri de sunuyor.
- Şirket, süreçlerde kalite ile ilgili metriklerin konumlandırılması, pro analizinin yapılması ve hatanın adreslenmesi yönünde sürekli monitörün araçlarını kullanıyor.
- Testinyum, İstanbul merkezli olmak üzere Londra ve Amsterdam'da ofisleri olan, 2021'de globalleşmeyi hedefleyen bir şirket olarak, son üç yılda Europentes'in 12 dallı filist, Top 100 ve 2500 gibi listelere girmiş.
- 02:44Yazılım Kalitesi ve Verimliliği Hakkında Düşünceler
- Konuşmacı, sadece test yaparak bir sürecin iyileştirilemeyeceğini ve ürünlerin çok fazla test yaparak kaliteli hale getirilemeyeceğini düşünüyor.
- Yazılım geliştirme sürecinde yazılan kodun beklenen kalitede olması ve isterlerin doğru alınması önemlidir, aksi takdirde fonksiyonel hataya müsait bir süreç oluşur.
- Şirketler genellikle deneyimli yazılım geliştiricileriyle çalışmayı tercih eder, ancak süreç içinde belli dokunuşlarla yazılım geliştirme kalitesi ve test aktiviteleri daha iyi hale getirilebilir.
- 04:33Kalite ve Verimliliği Ölçme Yöntemleri
- Testinyum, kalite ve verimliliği ölçmek için 50 kadar metrik kullanıyor ve OK (Objective and Key Result) kavramını uyguluyor.
- Organizasyonlara dahil olduğunda, ecel süreçler, analiz, geliştirme, test, diploma ve operasyon süreçlerinde verimliliği artıracak metrikler kullanıyor.
- OK modelinde, örneğin "test süreçlerini iyileştirmek" objektif olurken, "regresyon listesinin çıkarılması" veya "otomasyon test覆盖率已达到100%,无需生成摘要。如果您有其他需求或问题,请告知我。
- 07:05Yazılım Geliştirme Sürecindeki Sorunlar
- Yazılım geliştirme sürecinde en büyük sorunlar uygulamalarda oluşan hatalarla başlıyor, özellikle üretim aşamasında yoğun hatalar ve şikayetler maliyetlerin yüksek olmasını sağlıyor.
- Hatalar yazılım geliştirme ekibine ciddi efora ve operasyonel anlamda büyük maliyet yaratıyor; örneğin bir havayolu şirketinin bilet satışında oluşan hatalar ve sistem kesintileri hem kaos yaratıyor hem de ciddi para kaybına neden oluyor.
- Düşük test kapsamı, yazılım geliştirme sürecinde testin sona bırakılması ve testin belirli bir metodolojisi ve kapsamı olmadan "yeterince test ettik" diyerek geçilmesi sorun yaratıyor.
- 09:05Yazılım Geliştirme Sürecindeki Diğer Sorunlar
- Ekiplerdeki yüksek test raporu, özellikle karmaşık uygulamalar geliştirildiğinde ve çok fazla entegrasyon olduğunda ortaya çıkan bir şikayet.
- Kod kalitesi ile ilgili problemler, süreçsel bir sıkıntı olduğunu gösteriyor; kötü yazılan kodların izin verilmesi en başta bir problem.
- Yüksek bakım eforu, yapılan işin büyük bir kısmının bug fixes ile geçirilmesi ve bu durumun bıkkınlık verici ve sonsuz döngüye dönüşmesi sorun yaratıyor.
- 11:19Test ve Kalite Yönetimi
- Ecel prensiplere uygun, kaliteli ve kültüre sahip bir takım olmak hedefleniyor; takım ecel çalışmıyorsa bile testle ilgili prensipleri ecel test prensipleri üzerine kurgulanmaya çalışılıyor.
- Pandemi döneminde uzaktan çalışma zorunluluğu iletişim sorunlarına yol açtığı için, insanlara sürekli geri bildirim vermek önem kazanıyor.
- Test ve kalite ile ilgili bir metodoloji kurulup kurumun içerisinde içselleştirilmesi, doğru kaynakların konumlandırılması ve gerekirse eğitim verilmesi hedefleniyor.
- 14:03Sorun Çözme Yaklaşımı
- Doğru bir ekip organizasyonu ile doğru süreçlerin uygulanması, otomasyon araçlarının kullanılması, altyapısal ve entegrasyon problemlerinin çözülmesi ve doğru ortamların hazırlanması hedefleniyor.
- Altı aylık bir süreçte metodoloji seçimi ve eğitim, otomasyon başlatma, hedef belirleme, development kalitesi ile ilgili aksiyonlar ve regresyon testlerinin otomatikleştirilmesi adımları izleniyor.
- Ürünün fikir aşamasından production'a kadar tüm geliştirme sürecinde, hatayı en erken aşamada yakalamak önemlidir çünkü fikir aşamasında yakalanan hataların fark edilmesi maliyeti çok daha düşüktür.
- 17:04Hata Yakalama Süreci ve Maliyeti
- Fikir aşamasında hatalar yakalanıp düzeltildiğinde maliyet çok düşük olur, ancak test aşamasında yakalanırsa maliyet daha da artar.
- Bir story için kabul kriterlerinin belirlenmesi ve test aşamasında bu kriterlerin kontrol edilmesi önemlidir.
- Ürün sürüm olarak çıktıysa ve hata yakalanırsa, operasyonel maliyet çok büyük olabilir çünkü mevcut müşterilerle ilgili işlemler iptal edilmek zorunda kalabilir.
- 19:45Test Organizasyonu ve Scrum Takımları
- Test organizasyonunun minimum hata yapması, testlerin hata yakalaması kadar önemlidir.
- Scrum takımı üç gruptan oluşur: product owner, scrum master ve development team.
- Development team içinde developer, test, analist veya architect gibi farklı roller olabilir ve takım kendi kendine organize olabilir ve cross-functional olmalıdır.
- 21:49Test Ekibi ve Geri Bildirim
- Scrum'da testlerin takım içinde yer alması ve sürekli geri bildirim vermesi beklenir.
- Test ekibi kod kalitesi, fonksiyonel bozukluklar ve analizlerle ilgili geri bildirimler vermelidir.
- Hataların hızlı yakalanması ve düzeltilmesi önemlidir, aksi takdirde kaos ortamı oluşabilir.
- 23:47Test Dönüşümü ve Organizasyon
- Test dönüşümü sürecinde birçok paydaşla (development, architect, devops, iş birimleri) çalışılır.
- Beklenen test kültürü: sürekli geri bildirim, sürekli test, sürekli kod kalite denetimi ve takım dahil test kültürü.
- Test otomasyonunun aktif kullanılması ve kalite farkındalığı yüksek bir ekip oluşturulması hedeflenir.
- 25:05Test Otomasyonu ve Gelişim Süreçleri
- Test otomasyonunda Gherkin tabanlı Spectflow ve Cucumber gibi araçlar kullanılır, markdown formatı önerilir.
- Markdown, hem döküman hem de otomasyon olarak kullanılabilir ve farklı roller arasında ortak bir dil oluşturur.
- Gelişim süreçleri altı-sekiz aylık olup, farklı level'larla (temel, ileri gibi) tanımlanır.
- 27:46Köye Dashboard Tanıtımı
- Köye dashboard, yazılım kalitesi ile ilgili metrikleri çeşitli araçlara bağlanarak bir arada gösteren bir platformdur.
- Dashboard, geliştirme süreci ile ilgili metrikleri Azure DevOps, GitHub, Jira, Azure Plan gibi araçlardan toplayabilir.
- Azure'daki tüm entegrasyonları ve araç entegrasyonlarına sahip olan platform, kalite metriklerini hızlı bir token ile bağlayarak toplayabilmektedir.
- 28:46Dashboard'un Kullanım Alanları
- Test araçlarına, proje yönetimi araçlarına (ServiceNow, Azure Ecel Board) ve custom analiz araçlarına (Google Analytics, Firebase) bağlanabilir.
- Takım içindeki iki haftalık aktiviteleri görmek isteyenler için metrikleri tek tek araçlardan toplamanın zorluğunu çözmektedir.
- Mikro servis uygulamalarında ve çok sayıda repodaki raporları tek bir yerde gösterme imkanı sunmaktadır.
- 29:42Dashboard'un Metrik Gösterimi
- Dashboard, son iki haftalık aktiviteleri gösteren widgetlar ile takımla paylaşılabilir.
- Teknik borçlanma, kötü yazılmış uygulamayı düzeltmek için gereken zaman olarak hesaplanır ve zaman ölçeği olarak ifade edilir.
- Statik kod analizi yöntemi, satır satır kodları analiz ederek hataları gösterir ve düzeltme önerileri sunar.
- 31:59Diğer Metrikler ve Bağlantılar
- Azure DevOps'a bağlanarak sürüm çıktılarını ve geri alma süresini (MTTR) gösterebilir.
- Pull request analizleri ile iki haftada kaç tane pull request yapıldığını ve kimler tarafından yapıldığını gösterebilir.
- Application Insights veya New Relic gibi araçlardan gelen performans verilerini ve hata oranlarını gösterebilir.
- 34:26Test ve Proje Yönetimi
- Test araçlarına bağlanarak test ekibinin ne kadar test koştuğunu gösterebilir.
- Testia, Selenium, Zephyr Test gibi test araçlarının çıktılarını görüntüleyebilir.
- Jira veya Azure Ecel Board gibi proje yönetimi araçlarıyla entegre olabilir ve efor değerlerini gösterebilir.
- 35:21Azur Metrik ve Görev Takibi
- Azur'da metrikler ekleyerek ecel, efor ve diğer istenen verileri görebilirsiniz.
- Çalıştığınız işleri, tamamladığınız işleri ve bekleyen işleri görebilir, ayrıca bunlara tıklayarak Jira veya Azur ortamına yönlendirilebilirsiniz.
- Innovation rate metriği, sprintteki işlerin ne kadarının bugfix, ne kadarının yeni iş geliştirmesi olduğunu gösterir ve bu oran sürekli artırmaya çalışılır.
- 36:32Teknik Borç ve Görev İzleme
- Ekibin üzerinde açık işler var mı veya hatalar kimler tarafından yapıldığı gibi bilgileri görebilirsiniz.
- Developerlara notification şeklinde Slack, Teams veya e-posta ile bildirimler gönderilebilir.
- Her developer kendi görevlerini görebilir ve teknik borçlarını azaltmaya çalışabilir.
- 37:55Git Rapor Analizi
- Git aracı ile depolarda kimlerin çalıştığı, kontrblar, ekleme-silme işlemleri ve en son commitlerin ne zaman yapıldığı gibi bilgileri görebilirsiniz.
- Ekip hangi gün ve saatlerde commit yapmakta olduğu analiz edilebilir.
- En çok üzerinde çalışılmış sınıflar veya paketler hangileri olduğu gibi detaylı bilgiler elde edilebilir.
- 38:40Branch ve Code Review İzleme
- Branch oluşturma, demo işlemi ve pull request gönderme gibi süreçler takip edilebilir.
- Coding time, yani branch oluşturma ile pull request gönderme süresi kontrol edilebilir.
- Code review süresi belirli bir değer üzerinde olmaması gerektiği için bu süreler izlenir ve konfigüre edilebilir.
- 40:21OKR ve Hedef Belirleme
- Sekiz aylık gelişim süreci için OKR (Objective and Key Results) kullanılır ve genellikle üç aylık hedefler belirlenir.
- Üç farklı profile (köy, köye engineer, Ecel Stüdyo) ayrılır ve köyeleri eğitip olgunlaştıran mentorluk eden kişiler bulunur.
- Test aktiviteleri, test olgunluğu gibi hedefler belirlenir ve bu hedeflerin tamamlanması için puanlama sistemi kullanılır.
- 42:51Gamification ve Ödüllendirme
- Olgunluk seviyelerini artırarak ve maddelerdeki puanları toplayarak gamification yapılır.
- Takımlar arasında oyunlaştırma yöntemi ile daha iyi olmaya çalıştıkları bir ortam yaratılır.
- Ödüllendirme para yerine "Best Test Team of Company" gibi bejlerle yapılır ve bu bezler maillerde de kullanılabilir.
- 44:40Kalite Ölçütleri ve Hedefler
- Production kalitesini, devlo kalitesini ve test olgunluğunu etkileyen elli kadar hedef maddesi vardır.
- Müşteriye verilen yanıt süresi uygulamanın performansını gösterir; 4 saniyenin altında kabul edilebilir, 200 milisaniyenin üzerinde ise sorun demektir.
- Dönemsel olarak hedefler belirlenir; örneğin önümüzdeki üç ayda level birin maddelerini kapatacağız gibi hedefler koyulabilir.
- 46:07Yazılım Kalitesini Ölçen Metrikler
- Yazılım kalitesini ölçmek için teknik borçlanma, saklamamatik karmaşıklığı, kod satır sayısı, uygulama kodu oranı, test覆盖率低、与安全相关的错误、功能测试覆盖率、自动化使用情况以及性能测试的执行频率都是衡量软件质量的指标。
- 测试执行的频率很重要,建议每月进行测试,测试自动化是目标之一。
- 49:57软件测试工程师的职业发展
- 软件测试工程师应该具备基本的测试知识,无论是手动测试还是自动化测试。
- 对于技术熟练的测试工程师,使用自动化工具是必要的,但仅靠自动化是不够的,还需要掌握静态代码分析和DevOps集成等技能。
- 即使是自动化测试专家,也必须具备基本的测试知识。
- 51:33自动化测试的适用性
- 自动化测试只是节省时间、减少手动工作的工具。如果自动化测试实施起来非常困难,可能表明该产品不适合自动化。
- 对于老旧系统或技术原因导致难以自动化的系统,可以考虑手动测试。
- 对于几乎不需要开发或维护的产品,每年只需测试几次,投入大量时间进行自动化测试并不划算。
- 53:28团队中的测试角色
- 建议团队中至少有一个专职的测试工程师,因为测试任务非常重要,不应作为其他角色的次要职责。
- 测试环境应该独立于开发环境,测试人员不应担心生产环境的不可更改性。
- 测试环境的更新频率应根据具体情况而定,每周或每两周更新一次是合理的,但每月或每两个月更新一次可能不够频繁。
- 55:16测试数据管理
- 应该有良好的数据策略,测试环境中的数据应易于获取,而不是频繁地创建新数据。
- 事务性数据中,每次使用新数据进行测试是推荐的做法。
- 测试团队中至少需要4-5名测试工程师,具体数量取决于应用的复杂性和功能数量。
- 57:24转向敏捷开发
- 从传统开发转向敏捷开发不会导致客户流失,因为项目本身没有改变,只是开发方法变了。
- 敏捷转型中最大的挑战是文化转变,这通常会遇到很多阻力。
- 推荐使用Selenium等框架进行自动化测试,因为它们更强大且被广泛使用。
- 58:36测试工具和框架
- 可以使用SpecFlow和Cucumber等框架,但它们通常需要与Selenium等工具结合使用。
- 对于Java或Ruby等语言,建议使用Cucumber,因为它支持多种语言。
- SpecFlow功能较弱,因此不推荐使用。
- 59:11Otomasyon Testi ve Metrikler
- Sektörde hakim olması gereken pullar, otomasyon senaryo koşulları ve test metrikleri olarak belirtiliyor.
- Test metriklerinde kasma değerleri, kod satır sayısı gibi değerler ayarlanabilir (örneğin 250 satır üzerinde olursa zorlaşır).
- Otomasyon olmadığı projelerde her özellik ve sprint için test seviyesi belirlenmelidir.
- 1:00:35Regresyon Testleri ve Geri Bildirim
- Özellik testi sadece geliştirdiğiniz özelliği test ederken, regresyon testleri diğer senaryoları bozup bozmadığını kontrol eder.
- Regresyon testlerini otomatik otomasyonla koşmak, erken geri bildirim sağlar ve geliştiriciler daha hızlı aksiyon alabilir.
- Sürekli test, sürekli kalite kontrolü ve sürekli geri bildirim (quality feedback) değerli bir uygulamadır.
- 1:01:59Kalite Mühendislerinin Rolü
- Kalite mühendislerinin takım içinde gözükmemesi için stratejik olarak geri bildirim vermek ve takımın bir üyesi olmak önemlidir.
- Story kabul kriterlerini yorumlamak en az hata yapılmasını sağlar.
- Hata yakalamak değil, minimum hataya neden olmak ve iyileştirmeye çalışmak takım tarafından iyi bir ekip arkadaşı olarak görülür.
- 1:03:06Test Senaryoları ve Ortamlar
- Seçektörleri yazdıktan sonra keywordler oluşturarak hızlı test senaryoları oluşturulabilir.
- Test senaryoları kendi test ortamında gerçekleştirildikten sonra kullanıcı kabulü için açılabilir.
- Canlıya geçiş onayları takım tarafından verilir ve kalite tüm takımın işidir.
- 1:05:04Yazılım Kalitesi İyileştirmesi
- Yazılım geliştirme kalitesinde iyileştirmeyi hedeflemek için sadece testçilerin işlerini iyi yapması değil, kaliteli kod yazılması önemlidir.
- Clio standartlarına uygunluk gibi konularda dikkat edilmeli ve geliştiricilere eğitimler, workshoplar yapılmalıdır.
- 1:05:35Application Performans İzleme Araçları
- Dynamics Application Insights, hazır ortamdaki uygulamaları izlemek için kullanılan bir araçtır.
- Application Performance Monitoring (APM) ismi sadece performans değil, uygulama izleme yapmaktadır.
- Bu araç, uygulamaya eklenen bir agent ile kodun içine dinlemeye başlar, taleplerde hangi metotlardan ve sınıflardan geçildiğini ve süresini alarak olası yavaşlıkları veya hataları raporlar.
- 1:07:02Uygulama İzleme Örneği
- Test projeleri izlenebiliyor ve son otuz dakikada veya son üç günde uygulama performansı incelenebiliyor.
- Araç, yavaşlık durumlarını tespit edebiliyor ve hangi SQL sorgularının yavaşladığına dair detaylı bilgi sunuyor.
- Transaction'ların trace'ini alarak ve detayını göstererek milyonlarca transaction içerisindeki problemleri tespit etmeyi sağlıyor.
- 1:08:42Kalite Ölçümleri ve Performans İyileştirmeleri
- Production kalitesini ölçmek için response süresi, hatayla karşılaşma oranları gibi metrikler kullanılıyor.
- Bir uygulamada 8 ayda 7,20 saniyeden 3,40 saniyeye yanıt süresi indirilebilmiştir.
- Application Performans İndeksi (API) skorlama yöntemi kullanılarak performans ölçümleri yapılıyor ve teknik borçlanmalar %50 azaltılmıştır.
- 1:11:24Kalite Araçları ve Entegrasyon
- Mobile crash rate gibi kalite metrikleri, mobil uygulamaların test edilmesinde kullanılabilir.
- Hedefler belirlenerek (örneğin binde 5 hata, %1,20 saniye yanıt süresi) kalite standartları oluşturulabilir.
- DevOps sürecine tüm kalite araçlarını entegre ederek maksimum kaliteye ulaşılabilir.
- 1:12:31Soru-Cevap ve Kaynaklar
- Manuel testleri otomatik hale getirmek büyüklüğüne bağlı olsa da doğru anlaşıldığında günde birkaç senaryo otomatikleştirilebilir.
- YouTube'da "Testin" kanalında Selenium, JMeter, Katalon gibi test araçları ile ilgili videolar bulunabilir.
- Dashboard köyü adlı araç ücretsiz versiyonu olarak Docker olarak kurulabilir ve statik analiz için kullanılabilir.