Software Quality Assurance and Testing

Major: Software Engineering
Code of subject: 6.121.00.O.034
Credits: 5.00
Department: Software
Lecturer: Fomenko Andrii Viktorovich
Semester: 5 семестр
Mode of study: денна
Мета вивчення дисципліни: The purpose of studying the discipline is to form future software engineers with a modern level of software quality assessment (hereinafter referred to as software), mastering the basic principles of software testing; acquiring practical skills of self-compilation of methods of quality assessment, testing and testing of software for solving various problems, mastering the basics of software testing and verification methodology. The methodology includes all stages of creating software tools, starting from the study of methods and algorithms, ending with writing, debugging and testing of software modules.
Завдання: Mastering the discipline will allow future specialists to ensure the necessary level of study and analysis of professional disciplines due to the effective use of modern software engineering technologies. To achieve the goal, the following main tasks are set: ? the ability to formulate and ensure software quality requirements in accordance with requirements, specifications and standards; - ability to provide technical support and training of software users. The study of an academic discipline involves the formation of the necessary competencies in students: general competences: ?01. Ability to abstract thinking, analysis and synthesis. ?02. Ability to apply knowledge in practical situations. ?03. Ability to communicate in the national language both orally and in writing. ?04. Ability to communicate in a foreign language both orally and in writing. ?05. Ability to learn and master modern knowledge. ?06. Ability to search, process and analyze information from various sources. ?07. Ability to work in a team. professional competences: ?INT. Ability to solve complex specialized tasks or practical problems of software engineering, characterized by complexity and uncertainty of conditions, using theories and methods of information technology. ?SK04. Ability to formulate and ensure software quality requirements in accordance with customer requirements, specifications and standards. ?SK05. Ability to adhere to specifications, standards, rules and recommendations in the professional field when implementing life cycle processes. ?SK11. The ability to implement phases and iterations of the life cycle of software systems and information technologies based on appropriate software development models and approaches. ?SK14. Ability to algorithmic and logical thinking.
Learning outcomes: As a result of studying the academic discipline, the student should be able to demonstrate the following learning outcomes: Know: ? Criteria for evaluating the system by system requirements ? Principles, levels, types of testing. ? Metrics and testing risks. ? Test-plan, a matrix of requirements coverage by test scenarios. ? Functional testing. ? Qualification testing. ? Testing reliability, stability, configuration testing ? Testing techniques ? Measuring test results ? Types of testing (acceptance, installation functional, alpha, beta testing, performance testing, load testing, etc.). ? Levels of testing (module, integration, system). ? Testing artifacts ? Systems of documentation and bug support Be able: ? Develop criteria for assessing compliance with system requirements. ? Apply system evaluation criteria in the process of checking compliance with system requirements. ? Test the integrated system according to certain criteria. ? Perform testing for different levels. ? Document test results. ? Evaluate the system according to the criteria of test coverage of system requirements, compliance with expected results, feasibility of functioning and support. ? Work with documentation. ? Use different testing techniques ? Develop software testing scenarios ? To develop self-tests and constant improvement of skills in order to improve these tests. ? Conduct software testing to detect bugs ? Determine and perform quality control of the work performed and responsibility for it. ? Develop and document a suite of tests, test cases, and test procedures for each system qualification requirement. ? Use metrics to manage testing and evaluate product quality. ? Apply the methods of functional and configuration testing. ? Evaluate the integrated system according to the criteria of test coverage of system requirements, application of standards testing methods, compliance with expected results, feasibility of qualification testing of the system, functioning and support. ? Develop test scenarios, test plans. ? Use different types of testing. ? Apply system evaluation criteria in the process of checking compliance with system requirements. ? Test the integrated system according to certain criteria. ? Perform testing for different levels. ? Document test results. ? Evaluate the system according to the criteria of test coverage of system requirements, compliance with expected results, feasibility of functioning and support. As a result of studying the academic discipline, the student must be able to demonstrate the following program learning outcomes: Learning outcomes Methods of learning and teaching Methods of assessing the level of achievement of learning outcomes PR03. Know the main processes, phases and iterations of the life cycle of software. Lectures and practical classes: information-receptive method; reproductive method; heuristic method; problem statement method. Independent work: reproductive method (Current and examination control. Methods of knowledge assessment: selective oral survey; tests, assessment of activity, submitted proposals, original solutions, clarifications and definitions, etc.. Defense of the project task. Exam - written survey, test control) PR04. Know and apply professional standards and other legal documents in the field of software engineering. Lectures and practical classes: information-receptive method; reproductive method; heuristic method; problem statement method. Independent work: reproductive method (Current and examination control. Knowledge assessment methods: selective oral survey; speeches at seminars, tests, colloquium, assessment of activity, submitted proposals, original solutions, clarifications and definitions, etc. Exam - written survey, test control) PR07. Know and apply in practice 12 fundamental concepts, paradigms and basic principles of the functioning of linguistic, instrumental and computing tools of software engineering. Lectures and practical classes: information-receptive method; reproductive method; heuristic method; problem statement method. Independent work: reproductive method (Current and examination control. Knowledge assessment methods: selective oral survey. Exam - written survey, test control) PR14. Apply in practice instrumental software tools of domain analysis, design, testing, visualization, measurements and documentation software. Lectures and practical classes: information-receptive method; reproductive method; heuristic method; problem statement method. Independent work: reproductive method (Current and examination control. Knowledge assessment methods: submitted proposals, original solutions, clarifications and definitions, etc. Exam - written survey, test control) PR19. Know and be able to apply software verification and validation methods. Lectures and practical classes: information-receptive method; reproductive method; heuristic method; problem statement method. Independent work: reproductive method (Current and examination control. Knowledge assessment methods: submitted proposals, original solutions, clarifications and definitions, etc. Exam - written survey, test control) PR20. Know approaches to software quality assessment and assurance. Lectures and practical classes: information-receptive method; reproductive method; heuristic method; problem statement method. Independent work: reproductive method (Current and examination control. Knowledge assessment methods: submitted proposals, original solutions, clarifications and definitions, etc. Exam - written survey, test control) PR23. Be able to document and present the results of software development. Lectures and practical classes: information-receptive method; reproductive method; heuristic method; problem statement method. Independent work: reproductive method (Current and examination control. Knowledge assessment methods: selective oral survey. Exam - written survey, test control)
Required prior and related subjects: Previous academic disciplines Application and data security Associated and subsequent academic disciplines Human-machine interaction
Summary of the subject: Software testing is a process used to measure the quality of software being developed. Usually, the concept of quality is limited to such concepts as correctness, completeness, safety, but may contain more technical requirements that are described in the ISO 9126 standard. Testing is a process of technical research, which is performed at the request of customers, and is intended to reveal information about the quality of the product relative to the context in which it is to be used. This process includes running the program to find errors. Quality is not absolute, it is a subjective concept. Therefore, testing cannot fully ensure the correctness of the software. It only compares the state and behavior of the product with the specification. At the same time, it is necessary to distinguish between software testing and software quality assurance, which includes all components of the business process, not just testing. There are many approaches to software testing, but effective testing of complex products is essentially an exploratory process, not just the creation and execution of a routine procedure. The goal of the discipline is to master modern methods and approaches to testing software systems and analyzing their quality. Acquiring practical skills and abilities in conducting manual and automatic testing of various types and types, creating test documentation of various types and levels
Опис: Lecture classes 1 The concept of software quality. Testing is a way to ensure software quality. Standards, quality criteria. 2 The concept of software quality. Testing is a way to ensure software quality. 3 Testing. General concepts. Basic definitions. levels Models. Life cycle. 4 Testing process. Approaches to testing. Types of testing 5 Test selection criteria 6 Evaluation of project testing: metrics and integral evaluation methodology. 7 Modular and integration testing. Methods of designing test paths. Monolithic and incremental assembly of modules. 8 Integration testing and its features for object-oriented programming. 9 System and regression testing. Types of system testing. 10 Automation of testing 11 Integration testing for object-oriented programming. 12 Features of industrial testing. Documentation and test metrics. Checklists, test cases, sets of test cases 13 Regressive testing 14 Manual testing of the program code. 15 Testing the user interface. Formal inspections 16 Exam Laboratory classes: 1 Introductory lesson. Safety training. Types of testing. Test plans 4h 2 Development of requirements. UseCase detection of requirements 2h 3 Testing requirements 4h 4 Development and execution of the test plan 4h 5 Software testing: development of test documentation. Checklist 4h 6 Finding and documenting defects in Jira 4h 7 Documentation of test results 4h 8 Module testing 2h 9 Test report 2h Independent work 1 Preparation for laboratory classes 20h 2 Preparation for submitting a project assignment 20h 3 Study of lecture material 20h 4 Development of test plan, test artifacts of own module 30h Topics of individual tasks: ? Supersystem (managing modules through the web interface) ? Module of the shape of persons by features (PZ-41), ? Information module (PZ-42) ? Communication module (PZ-43) ? User cabinet (integration module) (PZ-44) ? Module for the formation of an aid package (PZ-45) ? Module of analysis and statistics (PZ-46) Own modules of the 'Virtual Laboratory of Software Engineering' project are being tested The following modules are considered: ? Supersystem (managing modules through the web interface) ? Requirement analysis module (PZ-41), ? Design module (PZ-42) ? Modeling module (PZ-43) ? Design and development module (PZ-44) ? Testing module (PZ-45) ? Supersystem user account Individual tasks for correspondence education consist of testing the developed part of the selected information system from the list using various technologies and testing methods. Projects of information systems for correspondence education: 1) library catalog; 2) personnel department of the university; 3) registration of university students; 4) dean's office (staff and students of the faculty); 5) schedule of classes of teachers of the department; 6) schedule of classes of university students; 7) accounting of the results of student examination sessions for the entire period of study; 8) dormitory; 9) school; 10) business administration; 11) office management of the organization's trade union committee; 12) accounting of material values ??(warehouse); 13) city shops; 14) public transport of the city; 15) clinical hospitals of the city; 16) reference service of pharmacies; 17) household services reference book; 18) booking a seat on railway transport; 19) home management; 20) enterprise accounting; 21) accounting of taxpayers; 22) payment of telephone network services; 23) mail; 24) bank. 25) at the student's choice (obligatory agreement with the teacher)
Assessment methods and criteria: Laboratory works: the minimum score is 0 points (the work is done individually, but not protected), the maximum is 1.5 points (for laboratory works No. 2, No. 8, No. 9) and 3 points (for laboratory works No. 1, No. 3 , No. 4, No. 5, No. 6, No. 7) (the work is fully completed, all models are correct, all necessary explanations were provided). The score ranges from 0 to 1.5 or from 0 to 3, respectively, depending on the number of errors in the models and when answering the questions. Individual tasks (group execution) according to the plan ? Availability of a test plan. ? Availability of test cases ? Description of manual testing, different types of testing (at least 8), at least 3 test cases for each type (total number of test cases at least 25) ? Documentary description with confirmation of testing (use of bug trackers), ? Automatic module testing ? Regression testing with a description of fixed defects ? Test report Points for the project are reduced to 45 points according to the formula: Points for individual work = Number of points received / 120 * 45
Критерії оцінювання результатів навчання: The procedure and criteria for assigning points and grades: Admission to the exam is granted based on the results of current control: Current control includes preparation, submission of 9 laboratory works (3+1.5+3+3+3+3+3+1.5+1.5=22.5 points), project defense (22.5 points) and two control measures (test – 10 points and written control paper 3 questions*15 points = 45 points, total 55 points). Laboratory work for students of the National Academy of Sciences is performed in a team of 3-5 students for students of the National Academy of Sciences - individually. Protection of laboratory works - all laboratory works of the course must be completed and protected Protection of a team project, in accordance with an individual task (for full-time form - VLPI module, for part-time form - task according to the list of topics) - protection requires the presence of a working module of the system and project documentation for the system and the corresponding module The maximum grades for laboratory work are awarded when the work is completed and defended on time and successfully: ? writing tests of their work for various input data (technology of the student's choice), ? answers to questions about the testing process according to the topic of the work, ? modification of the task (at the request of the teacher to confirm the independence of the work), ? answers to questions on the topic of the work. The presentation of a complete program (integration of the components of each laboratory work) is evaluated according to the fulfillment of all requirements formed and posted in the National Academy of Sciences. Examination control includes two control measures and an oral component: - test (10 points), - written test (2 questions*10 points+1 question*15 points = 35 points), - усна компентация - additional question on the ticket (10 points). Total examination control 55 points. Laboratory work for students of the National Academy of Sciences is performed in a team of 3-5 students for students of the National Academy of Sciences - individually. 1. Protection of laboratory works - all laboratory works of the course must be completed and protected 2. Protection of the team project, in accordance with the individual task (for the full-time form - the module of the information system of the IKH or VLPI (determined by the teacher, for the part-time form - the task according to the list of topics) - the protection assumes the presence of a working module of the system and project documentation for the system and the corresponding module
Порядок та критерії виставляння балів та оцінок: 100–88 points – (“excellent”) is awarded for a high level of knowledge (some inaccuracies are allowed) of the educational material of the component contained in the main and additional recommended literary sources, the ability to analyze the phenomena being studied in their interrelationship and development, clearly, succinctly, logically, consistently answer the questions, the ability to apply theoretical provisions when solving practical problems; 87–71 points – (“good”) is awarded for a generally correct understanding of the educational material of the component, including calculations, reasoned answers to the questions posed, which, however, contain certain (insignificant) shortcomings, for the ability to apply theoretical provisions when solving practical tasks; 70 – 50 points – (“satisfactory”) awarded for weak knowledge of the component’s educational material, inaccurate or poorly reasoned answers, with a violation of the sequence of presentation, for weak application of theoretical provisions when solving practical problems; 49-26 points - ('not certified' with the possibility of retaking the semester control) is awarded for ignorance of a significant part of the educational material of the component, significant errors in answering questions, inability to apply theoretical provisions when solving practical problems; 25-00 points - ('unsatisfactory' with mandatory re-study) is awarded for ignorance of a significant part of the educational material of the component, significant errors in answering questions, inability to navigate when solving practical problems, ignorance of the main fundamental provisions.
Recommended books: Базова 1. Фоменко А.В., Джумеля Е.А. НМК дисципліни «Якість програмного забезпечення та тестування». [Електронний ресурс]. Режим доступу: https://vns.lpnu.ua/course/view.php?id=11307 2. Білас О. Якість програмного забезпечення та тестування: навч.посібник.- Львів: Видавництво Львівської політехніки, 2011.- 216с. 3. Конспект лекцій: Верифікація і тестування програмного забезпечення (наявний в бібліотеці кафедри) 4. Авраменко А.С., Авраменко В.С., Косенюк Г.В. Тестування програмного забезпечення. Навчальний посібник. - Черкаси: ЧНУ імені Богдана Хмельницького, 2017. - 284 с. http://eprints.cdu.edu.ua/1482/1/testyvan.pdf 5. Методичні вказівки щодо виконання лабораторних робіт з навчальної дисципліни «Основи аналізу якості програмного забезпечення» для студентів денної форми навчання зі спеціальності 123 – «Комп’ютерна інженерія». Укладач к. т. н., доц. О. Г. Славко. - Видавничий відділ Кременчуцького національного університету імені Михайла Остроградського. -2018. c.25. https://www.dstu.dp.ua/Portal/Data/3/19/3-19-lr12.pdf. 6. Дяченко М.П. Методичні матеріали щодо забезпечення самостійної роботи студентів з дисципліни “Методи та засоби тестування програмного забезпечення” (для освітньо-кваліфікаційного рівня «магістр»). — К.: МАУП, 2018— 35 с. 7. Standard for Software Verification and Validation Plans, ANSI/IEEE standard 1012-1986. (http://ieeexplore.ieee.org/iel5/2487/1028/00026585.pdf) 8. IEEE Standard Glossary of Software Engineering Technology, IEEE Std 610.12 –1990. (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=159342) ………………………………………………………………………………………………… Допоміжна 1. . Java SE Overview - at a Glance. [Електронний ресурс]. Режим доступу: http://www.oracle.com/technetwork/java/javase/overview/index.html 2. . Eclipse - The Eclipse Foundation open source community website. [Електронний ресурс]. Режим доступу: http://www.eclipse.org/ 3. Hibernate Tools - JBoss Community http://www.hibernate.org/subprojects/tools.html 4. The Elements of UML(TM) 2.0 Style. Scott W. Ambler. Cambridge University Press, 2005 9. Інформаційні ресурси 1. SoftServe IT Academy: Materials, Tasks and Tests. https://softserve.academy 2. QALIGHT Центр підготовки IT фахівців https://qalight.ua/baza-znaniy/yakist-programnogo-zabezpechennya/ 3. Тестування програмного забезпечення та контроль якості. http://www.znannya.org/?view=software-testing 4. InfoQ: ASP.NET MVC Example with Northwind and Entity Framework Published http://www.infoq.com/news/2008/02/mvc-framework-example 5. ADO.NET Entity Framework http://msdn.microsoft.com/en-us/data/aa937723 6. Bagzilla. [Електронний ресурс]. Режим доступу: http://www.bugzilla.org