2 PRESENTATION STRUCTURE IntroductionSimple Project Lifecycle ModelDevelopment and TestingProcess ConceptProcess Setup, Maintenance and ImprovementQuality AssuranceTesting vs. Quality Assurance
3 INTRODUCTION Typical organization of software development: Groups with different roles (management, development, testing, etc.)Agreements (verbal or documented):outside (with customers, subcontractors, etc.);inside (between and inside teams).Technical environment:work items storage (code, tests, documents, tools);cooperative development systems;defect tracking database.The process formalizes organization of software development
4 SIMPLE PROJECT LIFECYCLE MODEL Phases on timelineApplicable when:all requirements are available;implementation is defined.Req. & PlanningDesignCodingTestingDesignCodingTestingDesignCodingTestingReleaseTime
5 DEVELOPMENT AND TESTING Development can be conditionally divided on:research and studying;experiments;prototyping;developing specifications;coding;developer testing;releasing;maintenance.
6 DEVELOPMENT AND TESTING (cont.) Purpose of testing:Examine product to determine if it meets its specificationsDetect program faults in order to achieve desired quality levelDetermine system’s capability and possible limitationsProvide continual assessment of whether the software being produced will meet the needs of the user (customer)
7 DEVELOPMENT AND TESTING (cont.) PlanDetailed DesignCoding andDeveloper TestingDesignSpecificationsRequirementsTesting
8 PROCESS CONCEPTProcess is a set of well documented procedures and policies.Process answers the following questions:Estimating, scheduling,How to plan?managing risks...How to select architecture?When to start implementation?How to manage requirements?Who is responsible?How to conduct testing?How to make release andmaintain the product?Req. & PlanningDesignCodingTestingRelease...and...Which life cycle model should beselected for particular project?
9 PROCESS CONCEPT (cont.) Organizational Process:is a set of documented organization level procedures and policies (CMM level 3);should be a base for each project;can be tailored for particular project.What does it mean to do something according to certain process?all activities are planned and documented;all responsibilities are well defined;tasks completion and risks are tracked;everybody knows what to do and when.
10 PROCESS SETUP, MAINTENANCE, AND IMPROVEMENT Process is set up by quality assurance (QA) group:analyze current organizational process;define process improvement opportunities;develop main process document which defines process areas activities, responsibilities, and control mechanisms;develop detailed procedures and guidelines;develop document templates and checklists;develop process training program.Process adherence is controlled by QA group:conduct audits;gather and analyze metrics;
11 PROCESS SETUP, MAINTENANCE, AND IMPROVEMENT (cont.) Process owners:everybody is process owner;everybody has access to process documents.Process improvement:everybody can submit defects and enhancements on existing process;new procedures and guidelines can be created;new technologies can be proposed;decision about implementing proposed improvement is made by software engineering process group (SEPG).
12 QUALITY ASSURANCE Product is characterized by quality. Quality: satisfies customer’s requirements & expectations;is intrinsic product quality, limited to defect rate & reliability;Quality implies that requirements are clearly stated such that they cannot be misunderstood.Quality is the one which includes product quality, process quality, and customer satisfaction.
13 QUALITY ASSURANCE (cont.) Major factors that help in delivering defect-free software and continuous improvement include:having a clear understanding of the requirements,using proper estimation and planning techniques,composing the right process for the project,applying the process correctly,an effective use of reviews and inspections,applying effective testing techniques,rigorous use of configuration control,proper product development (architecture, design, coding) phases,use of postmortems, causal analysis,metrics analysis to control and manage the project
14 QUALITY ASSURANCE (cont.) QA group should be independent unit – according to CMMI.Consider software quality engineer functions.During project planning activities quality engineer is involved in:establishing Customer quality requirements;informal/formal review of planning documents to ensure that quality requirements are satisfied;verification and validation of Requirements Gathering and Planning activities;assess Total Customer Satisfaction.
15 QUALITY ASSURANCE (cont.) Quality engineer shall participate in:project reviews;project postmortems, causal analysis.Quality engineer is responsible for conducting the following activities:project audits;processing and feedback of project metrics;performs a final inspection on all products prior to delivery to the Customer.
16 TESTING vs. QUALITY ASSURANCE Testing is a Quality Control (QC) function:QC includes any activity that examines products to determine if they meet their specifications.Also QC activities are walkthroughs, reviews, or inspections of work products like requirements, designs, code and documents.QA includes any activity that focuses on ensuring that the needed levels of quality are achieved:if QC is about detecting defects, the QA is about avoiding them!QA activities include identifying problems so steps can be taken in the future to avoid those same problems.It includes engineering the processes that are used by the team.And it includes ensuring that each team member is performing his or her job consistently and producing consistently good results.