Yazılım Kalite Güvencesi (Software Quality and Assurance) SQM
Document Details
Uploaded by Deleted User
Tags
Summary
This document provides an overview of software quality and assurance. It discusses different concepts like software quality, software quality assurance, software products, and principles of quality assurance in software engineering. Examples and definitions of key terms are included.
Full Transcript
**1. Yazılım Kalitesi ve Kalite Güvencesi (Software Quality and Software Quality Assurance)** - **Yazılım Kalitesi (Software Quality)**: Yazılımın, belirlenmiş gereksinimlere uygunluk derecesini ifade eder. Bu gereksinimler, yazılımın kullanıcıların ihtiyaçlarına, beklentilerine ve he...
**1. Yazılım Kalitesi ve Kalite Güvencesi (Software Quality and Software Quality Assurance)** - **Yazılım Kalitesi (Software Quality)**: Yazılımın, belirlenmiş gereksinimlere uygunluk derecesini ifade eder. Bu gereksinimler, yazılımın kullanıcıların ihtiyaçlarına, beklentilerine ve hedeflerine uyum sağlamasını gerektirir. - **Örnek (Example)**: Bir bankacılık uygulamasının hesap bakiyelerini doğru göstermesi yazılım kalitesine bir örnektir. Eğer sistem kullanıcıların hesap bilgilerini yanlış gösteriyorsa, kalite düşük kabul edilir. - **Yazılım Kalite Güvencesi (Software Quality Assurance)**: Yazılım süreçlerini tanımlamak ve değerlendirmek için yapılan faaliyetlerdir. Amaç, yazılımın belirlenen kalite standartlarına uygunluğunu sağlamaktır. - **Örnek (Example)**: Bir proje geliştirilirken yapılan kod incelemeleri ve test süreçleri kalite güvencesine örnektir. Bu süreçler sayesinde hatalar erkenden bulunur ve düzeltilir, böylece final üründe kalite sağlanır. **2. Yazılım Ürünü (Software Product)** - **Tanım (Definition)**: Yazılım ürünü, bilgisayar programları, belgeler, prosedürler ve gerekli verilerden oluşur. Yazılım sadece "kod" değil, kullanıcı kılavuzları ve destek belgelerini de kapsar. - **Örnek (Example)**: Microsoft Word sadece bir program değil; yardım dosyaları, kullanıcı kılavuzları ve destek verileriyle bir yazılım ürünüdür. Sadece kod değil, kullanıcıya rehberlik eden dökümanlar da ürünün parçasıdır. **3. Kalite Güvencesi İlkeleri (Principles of Quality Assurance)** Kalite güvencesi, bir yazılımın belirlenen kalite standartlarına ulaşması için uygulanan çeşitli ilkelerden oluşur: - **Müşteri Odaklılık (Customer Focus)**: Müşterilerin ihtiyaçlarını anlamak ve karşılamak. - **Örnek (Example)**: Bir e-ticaret sitesinin kullanıcılara istedikleri ürünleri bulmayı kolaylaştırması, müşteri odaklılık ilkesine bir örnektir. - **Liderlik (Leadership)**: Çalışanların kalite hedeflerini gerçekleştirmesi için bir ortam yaratmak. - **Örnek (Example)**: Proje yöneticisinin, ekibine kalite hedefleri hakkında düzenli geri bildirim sağlaması ve motive etmesi liderliğe bir örnektir. - **Sürekli İyileştirme (Continuous Improvement)**: Kalite ve süreçlerin sürekli iyileştirilmesini hedeflemek. - **Örnek (Example)**: Bir yazılım ekibinin, her sürümde kullanıcı geri bildirimlerine göre yeni özellikler ekleyip iyileştirmeler yapması. **4. Yazılım Kalite Kontrolü ve Kalite Güvencesi Arasındaki Fark (Quality Control vs. Quality Assurance)** - **Kalite Kontrol (Quality Control)**: Yazılımın bitmiş halini değerlendirmek için yapılan inceleme ve test faaliyetleridir. - **Örnek (Example)**: Bir mobil uygulamanın son testlerinde kullanıcı arayüzünde hiçbir hatanın olmadığından emin olunması kalite kontrol faaliyetidir. - **Kalite Güvencesi (Quality Assurance)**: Ürün ortaya çıkmadan önce kaliteyi artırmaya yönelik faaliyetlerdir, süreçleri içerir. - **Örnek (Example)**: Kod yazım standartlarının belirlenmesi ve tüm yazılımcıların bu standartlara göre kod yazması kalite güvencesine örnektir. **5. McCall'ın Yazılım Kalitesi Modeli (McCall's Software Quality Model)** McCall, yazılım kalitesini üç ana başlık altında ele alır: **A. Ürün Operasyonu Faktörleri (Product Operation Factors)** - **Doğruluk (Correctness)**: Yazılımın istenen çıktıları sağlama düzeyidir. - **Örnek (Example)**: Bir muhasebe yazılımının mali tablolarda doğru sonuçlar vermesi doğruluğa bir örnektir. - **Güvenilirlik (Reliability)**: Yazılımın ne kadar süre boyunca kesintisiz çalışabileceği. - **Örnek (Example)**: Bir hastane sisteminin kritik bir hata vermeden yıllarca çalışması gereklidir. - **Verimlilik (Efficiency)**: Yazılımın donanım kaynaklarını ne kadar verimli kullandığı. - **Örnek (Example)**: Düşük donanımlı cihazlarda bile hızlı çalışan bir hava durumu uygulaması, verimlilik gereksinimlerini karşılar. **B. Ürün Revizyon Faktörleri (Product Revision Factors)** - **Bakım Kolaylığı (Maintainability)**: Yazılımın hatalarının bulunup düzeltilmesi kolay olmalıdır. - **Örnek (Example)**: Modüler yapıda bir yazılım, bakım yapılabilirlik açısından iyidir, çünkü her bir modül kolayca incelenip düzenlenebilir. - **Esneklik (Flexibility)**: Yazılımın değişikliklere ve güncellemelere kolayca uyum sağlayabilmesi. - **Örnek (Example)**: Farklı okullar için adapte edilebilen bir öğrenci takip yazılımı esneklik gereksinimlerini karşılar. **C. Ürün Geçiş Faktörleri (Product Transition Factors)** - **Taşınabilirlik (Portability)**: Yazılımın farklı ortamlarda çalışabilme yeteneği. - **Örnek (Example)**: Hem Windows hem de Linux'ta çalışabilen bir muhasebe yazılımı taşınabilirlik açısından başarılıdır. - **Yeniden Kullanılabilirlik (Reusability)**: Yazılımın yeniden kullanılabilecek bileşenler içermesi. - **Örnek (Example)**: Aynı işlevi başka projelerde kullanabilmek için modüller şeklinde tasarlanmış bir yazılım yeniden kullanılabilir. **6. Yazılım Kalite Güvence Organizasyonu (Organization for Assuring SQA)** SQA organizasyonunda kalite güvencesi faaliyetleri farklı seviyelerde gerçekleştirilir: - **Yönetim Aktiviteleri (Management Activities)**: Üst yönetimin kalite politikasını belirlemesi ve bu politika doğrultusunda hedefler koyması. - **Örnek (Example)**: Üst yönetimin kaliteyi artırmak için bir kalite güvence komitesi kurması ve bu komitenin faaliyetlerini düzenli olarak gözden geçirmesi. - **Departman ve Proje Yönetimi (Department and Project Management)**: Departmanların yıllık SQA aktivitelerini planlaması ve gerçekleştirilmesini sağlaması. - **Örnek (Example)**: Bir yazılım departmanının yıllık kalite güvence hedeflerini belirlemesi ve bu hedeflere ulaşmak için çalışması. **7. Yazılım Kalite Güvence Planı (SQA Plan)** Kalite güvence planı (SQAP), kalite güvencesi faaliyetlerini düzenleyen yıllık bir plandır. - **SQA Süreç Uygulama Unsurları (SQA Process Implementation Elements)**: Yönetimsel eksikliklerin düzeltilmesi ve kullanıcı risklerinin değerlendirilmesi. - **Örnek (Example)**: Yazılım projelerinin başlangıcında risk analizleri yaparak, yüksek risk taşıyan alanlarda daha fazla kontrol sağlamak. - **Ürün Güvencesi (Product Assurance)**: Ürünlerin sözleşme gereksinimlerine uygunluğunu sağlama. - **Örnek (Example)**: Ürünün tüm gereksinimlerini karşıladığından emin olmak için son aşamada yapılan kapsamlı bir test süreci. - **Süreç Güvencesi (Process Assurance)**: Süreçlerin, sözleşmelere ve kalite standartlarına uygun olup olmadığını değerlendirme. - **Örnek (Example)**: Yazılım yaşam döngüsü boyunca düzenli olarak süreç denetimleri yaparak, geliştirilen yazılımın kalite standartlarına uygunluğunu sağlamak. **SINAV BURAYA KADAR NORMALDE DEVAMI DA VAR** **SQA Unit Head (Yazılım Kalite Güvencesi Birimi Lideri):** Bu kişi, yazılım kalite güvencesi (SQA) ekibinin başındaki yöneticidir. Görevi, ürünlerin belirli kalite standartlarına uymasını sağlamak ve tüm kalite kontrol süreçlerini denetlemektir. SQA Unit Head, projelerde kalite güvencesiyle ilgili büyük resmi görür ve ekibin doğru şekilde çalışmasını sağlar. **SQAS - Software Quality Assurance Specialist (Yazılım Kalite Güvencesi Uzmanı):** Bu kişiler, SQA Unit Head\'in altında çalışan uzmanlardır. Yazılım projelerinde test yapmaktan, hataları bulmaktan ve kaliteyi sağlamaktan sorumludurlar. Her bir SQAS, ürünün kalite gereksinimlerini karşılayıp karşılamadığını kontrol eder. SQAS'lerin yaptığı işler: Yazılım testlerini yürütmek Hataları ve eksiklikleri belirlemek Test sonuçlarını raporlamak **SQAS\'in Altındaki Çalışanlar:** Her bir SQAS, büyük projelerde daha küçük görevleri üstlenen ve kalite kontrol süreçlerinde ona yardımcı olan çalışanlarla birlikte çalışabilir. Bu çalışanlar, testlerin uygulanması ve sorunların belirlenmesi gibi işlemlerde SQAS'e destek sağlarlar. Bu şekilde, kalite güvencesi süreci daha verimli hale gelir. Kısaca Özetleyelim: SQA Unit Head: Ekibin lideri, tüm kalite süreçlerini yönlendirir. SQAS (Specialists): Kalite kontrollerini ve testleri gerçekleştiren uzmanlar. SQAS\'in Altındaki Çalışanlar: Test ve kalite süreçlerinde destek sağlayan yardımcı çalışanlar. Bu hiyerarşi, yazılımın yüksek kalite standartlarına uygun olarak geliştirilmesini sağlar. **IEEE, ISO, ANSI gibi Standartlar**: Üst köşede IEEE, ISO ve ANSI gibi standartlar yazılmış. Bunlar, yazılım geliştirme ve kalite güvencesi için kullanılan uluslararası standartlardır. Örneğin: - **IEEE**: Yazılım mühendisliği standartlarını belirleyen bir kuruluştur. - **ISO**: Kalite yönetim standartları sunar (örneğin ISO 9001). - **ANSI**: Amerikan Ulusal Standartlar Enstitüsü, Amerikan standartlarını oluşturur. **JIRA**: JIRA, projelerde görev takibi ve hata yönetimi yapmak için yaygın olarak kullanılan bir yazılım aracıdır. JIRA, ekiplerin proje aşamalarını, görevleri ve hataları yönetmelerine yardımcı olur. **P1, P2, P3 (Product Management, Process Management, Process Improvement)**: - **P1 - Product Management (Ürün Yönetimi)**: Ürün geliştirme sürecinin planlanması, tasarlanması ve yönetilmesi anlamına gelir. - **P2 - Process Management (Süreç Yönetimi)**: Yazılım geliştirme süreçlerinin verimli ve kaliteli bir şekilde yürütülmesi için yönetim tekniklerinin uygulanmasıdır. - **P3 - Process Improvement (Süreç İyileştirme)**: Mevcut süreçlerin analiz edilip, daha verimli hale getirilmesi için yapılan çalışmalardır. **YA DA DERSTE VERİLDİĞİ ŞEKİLDEŞÖYLE OLUYOR:**\ \ **P1 - Product Nonconformance (Ürün Uygunsuzluğu)**: Üründe belirlenen kalite standartlarına veya gereksinimlere uymayan durumları ifade eder. Ürün uygunsuzlukları, bir yazılım ürününün ya da bileşeninin, beklenen işlevsellik, güvenlik veya performans gibi kriterleri karşılamadığında ortaya çıkar. Bu tür uygunsuzluklar tespit edilip analiz edilir, böylece sorunlar giderilebilir. **Örnek**: Bir yazılımda, kullanıcı giriş ekranının tasarlandığı gibi çalışmaması ya da güvenlik açıklarının bulunması bir ürün uygunsuzluğudur. Bu tür uygunsuzluklar, kalite güvencesi süreçlerinde belirlenir ve düzeltilir. **P2 - Process Nonconformance (Süreç Uygunsuzluğu)**: Yazılım geliştirme sürecinde belirlenen standartlar ve prosedürlere uyulmayan durumları ifade eder. Süreç uygunsuzlukları, iş akışının planlanan şekilde yürütülmemesi, prosedürlerin atlanması veya standart dışı yolların kullanılması gibi durumlarda meydana gelir. **Örnek**: Kod yazımı sırasında kodlama standartlarının takip edilmemesi, test süreçlerinin atlanması veya dokümantasyon eksiklikleri süreç uygunsuzluğudur. Bu tür uygunsuzluklar, süreç iyileştirme çalışmalarıyla azaltılabilir. **P3 - Process Improvement (Süreç İyileştirme)**: Mevcut süreçlerin analiz edilip daha verimli hale getirilmesi anlamına gelir. Süreç iyileştirme çalışmaları, kaliteyi artırmak, maliyetleri azaltmak ve iş akışını hızlandırmak amacıyla yapılır. **Örnek**: Süreç iyileştirme kapsamında, test otomasyonunun kullanılmasıyla manuel test süresinin kısaltılması veya hata raporlama sürecinin iyileştirilmesi gibi çalışmalar yapılabilir. Bu, daha yüksek verimlilik ve kalite sağlar. Bu P1, P2 ve P3 kategorileri, yazılım kalite güvencesi ekiplerinin kaliteyi sağlamak için hangi alanlarda çalışmaları gerektiğini belirlemesine yardımcı olur. Ürün ve süreç uygunsuzlukları tespit edilip düzeltildikçe, genel kalite seviyesi artar. **Çeşitli Roller ve Süreçler (R&D, QA, DevOps)**: - **R&D (Araştırma ve Geliştirme)**: Yeni teknolojilerin ve yazılım özelliklerinin araştırılması ve geliştirilmesi sürecidir. - **QA (Quality Assurance - Kalite Güvencesi)**: Yazılımın kalite standartlarına uygunluğunu sağlamak için test süreçleri ve kalite kontrol çalışmalarını kapsar. - **DevOps**: Yazılım geliştirme (Development) ve operasyon (Operations) ekiplerinin birlikte çalışarak daha hızlı ve verimli yazılım sunmalarını sağlayan bir yöntemdir. **IDE ve Kod Yazımı (Code)**: Yazılım geliştirme için kullanılan kodlama ortamları (IDE - Integrated Development Environment) ve yazılımın temel bileşenleri olan kodlar. Kodlama, yazılımın temeli olduğundan, kalite kontrol ve test süreçlerinde bu kodların hatasız olması önemlidir. **SQA Süreçleri ve Dokümantasyon (SQA Process)**: - **Dokümantasyon**: Tahtada çeşitli dokümanlar ve raporlar üzerinde durulmuş olabilir. SQA sürecinde dokümantasyon, hem kalite kontrolleri için hem de ileride referans alınabilmesi için önemlidir. - **Formlar ve Raporlar**: Süreçlerin ilerleyişi hakkında raporlar ve formlar tutulur. Örneğin, \"E-Form\" gibi belgeler SQA süreçlerinde kalite kontrolüne katkıda bulunur. **SON DERSTE VERİLEN EK BİLGİLER** **SQA Area 1 - SQA Alanı 1** 1. **SQA Heads and Where Does the Articles Belong? / SQA Yöneticileri ve Makalelerin Yeri:** - *English*: SQA heads are leaders in the quality assurance team who oversee articles or documents that outline standards and guidelines. These documents guide the team\'s processes and ensure compliance with quality standards. - *Türkçe*: SQA yöneticileri, kalite güvencesi ekibindeki liderlerdir ve kalite standartlarını ve yönergelerini belirten makaleleri denetlerler. Bu makaleler, ekibin süreçlerini yönlendirir ve kalite standartlarına uyum sağlar. 2. **Difference Between Records and Documents / Kayıtlar ve Belgeler Arasındaki Fark:** - *English*: Documents provide instructions, guidelines, and information on processes, while records are evidence of what has been completed. For example, a test plan is a document, but a test result is a record. - *Türkçe*: Belgeler, süreçlerle ilgili talimatları, yönergeleri ve bilgileri içerirken, kayıtlar tamamlanan işleri kanıtlar. Örneğin, bir test planı bir belgedir, ancak bir test sonucu bir kayıttır. 3. **Implementation of the SQA (by JIRA) / SQA\'nın Uygulanması (JIRA ile):** - *English*: JIRA is a tool used to implement and track SQA tasks. For instance, creating a JIRA ticket for each bug found ensures tracking and resolution. - *Türkçe*: JIRA, SQA görevlerini uygulamak ve takip etmek için kullanılan bir araçtır. Örneğin, bulunan her hata için bir JIRA bileti oluşturmak, takibi ve çözümü sağlar. **SQA Area 2 - SQA Alanı 2** 1. **How to Assure Product Activities? / Ürün Faaliyetlerini Nasıl Güvenceye Alırız?** - *English*: To assure product activities, inputs and outputs are checked. Any \"product nonconformance\" (i.e., issues with the product not meeting standards) is identified and corrected. - *Türkçe*: Ürün faaliyetlerini güvence altına almak için girişler ve çıkışlar kontrol edilir. \"Ürün uygunsuzluğu\" (yani ürünün standartlara uymayan durumları) tespit edilir ve düzeltilir. 2. **What is Software Operating Services? / Yazılım İşletim Hizmetleri Nedir?** - *English*: These are tools and environments used in software development, such as IDEs (like Visual Studio), JIRA for project tracking, TFS for source control, and SFM for file management. - *Türkçe*: Yazılım geliştirmede kullanılan araçlar ve ortamlar, örneğin, Visual Studio gibi IDE\'ler, proje takibi için JIRA, kaynak kontrol için TFS ve dosya yönetimi için SFM gibi. 3. **Software Product Quality Metrics (McCall Theory) / Yazılım Ürün Kalite Metrikleri (McCall Teorisi):** - *English*: McCall\'s model defines product-based quality metrics like functionality, reliability, and usability. For example, a reliable software should work without errors under normal conditions. - *Türkçe*: McCall modeli, işlevsellik, güvenilirlik ve kullanılabilirlik gibi ürün bazlı kalite metriklerini tanımlar. Örneğin, güvenilir bir yazılım normal koşullarda hatasız çalışmalıdır. 4. **Software Process Quality Metrics / Yazılım Süreç Kalite Metrikleri:** - *English*: These metrics measure how well the development process is managed, often using tools like JIRA. For example, tracking task completion rates can show process efficiency. - *Türkçe*: Bu metrikler, geliştirme sürecinin ne kadar iyi yönetildiğini ölçer ve genellikle JIRA gibi araçlar kullanılır. Örneğin, görev tamamlama oranlarını izlemek, süreç verimliliğini gösterebilir. 5. **Evaluating Product Conformance - SQA Unit Head\'s Job / Ürün Uygunluğunun Değerlendirilmesi - SQA Birim Liderinin Görevi:** - *English*: The SQA Unit Head evaluates if the product meets requirements, making sure it's built according to standards. - *Türkçe*: SQA Birim Lideri, ürünün gereksinimleri karşılayıp karşılamadığını değerlendirir ve standartlara uygun olarak inşa edildiğinden emin olur. **SQA Area 3 - SQA Alanı 3** 1. **Evaluation of Processes for Conformance / Süreçlerin Uygunluk Değerlendirmesi:** - *English*: This involves checking if the software lifecycle processes meet the required standards, including risk assessment and audits of development activities. - *Türkçe*: Bu, yazılım yaşam döngüsü süreçlerinin gerekli standartlara uyup uymadığını kontrol etmeyi içerir; risk değerlendirmesi ve geliştirme faaliyetlerinin denetimleri gibi. 2. **Evaluating Environment for Conformance / Ortamın Uygunluk Değerlendirmesi:** - *English*: Ensures that the software engineering environment (tools like SFM, TFS, JIRA) is compliant with standards. - *Türkçe*: Yazılım mühendisliği ortamının (SFM, TFS, JIRA gibi araçlar) standartlara uygun olup olmadığını kontrol eder. 3. **Types of Nonconformance and Process Improvement / Uygunsuzluk Türleri ve Süreç İyileştirme:** - **Product Nonconformance / Ürün Uygunsuzluğu**: Product does not meet quality standards (e.g., bugs in the software). - **Process Nonconformance / Süreç Uygunsuzluğu**: Process is not followed as per standards (e.g., skipping testing steps). - **Process Improvement / Süreç İyileştirme**: Actions to fix issues in processes, like giving additional training or updating procedures. 4. **Preventive Actions / Önleyici Eylemler:** - *English*: These are actions taken to avoid potential problems, often through risk-based thinking. - *Türkçe*: Potansiyel sorunları önlemek için alınan tedbirlerdir; genellikle risk odaklı düşünme ile gerçekleştirilir. 5. **Software Process Assurance for Subcontractors / Taşeronlar için Yazılım Süreç Güvencesi:** - *English*: Ensures subcontractors follow the same quality processes, monitored through tools like JIRA. - *Türkçe*: Taşeronların aynı kalite süreçlerini takip etmesini sağlar ve JIRA gibi araçlarla izlenir. 6. **Staff Skills and Knowledge Training / Personel Yetenek ve Bilgi Eğitimi:** - *English*: Training programs to enhance skills, using resources like Udemy and BTK. - *Türkçe*: Udemy ve BTK gibi kaynaklarla becerileri geliştirmeye yönelik eğitim programları. 7. **SQA Committees / SQA Komiteleri:** - *English*: Groups that oversee specific quality tasks; they may be temporary or permanent. - *Türkçe*: Belirli kalite görevlerini denetleyen gruplardır; geçici veya kalıcı olabilirler. **SQA PLAN AND PROJECT PLAN - SQA Planı ve Proje Planı** 1. **SQA General Plan (SQAP) / SQA Genel Planı:** - *English*: Organized annually by the SQA Unit Head, covering resource estimates, requirements, and staffing needs. - *Türkçe*: SQA Birim Lideri tarafından yıllık olarak düzenlenir; kaynak tahminlerini, gereksinimleri ve personel ihtiyaçlarını kapsar. 2. **Project Plan / Proje Planı:** - *English*: Created for specific projects, detailing the project lifecycle, team requirements, and stages of development and operation. - *Türkçe*: Belirli projeler için oluşturulur; proje yaşam döngüsünü, ekip gereksinimlerini ve geliştirme ve operasyon aşamalarını detaylandırır. 3. **IEEE Std. 730-2014 - SQA Plan Hazırlama Standartları:** - *English*: A standard for preparing an SQA plan, detailing necessary elements like SQA process implementation and project tools. - *Türkçe*: SQA planı hazırlamak için bir standart olup, gerekli unsurları (SQA süreci uygulaması, proje araçları gibi) detaylandırır.