Domain analysis is the process of identifying common requirements across multiple projects within a domain to enable reuse. It involves defining the domain, collecting sample applications, analyzing each application to identify common objects, classes, and frameworks, and developing an analysis model. Fundamental design concepts include abstraction, information hiding, structure/architecture, modularity, and concurrency. Software testing verifies software meets requirements by executing it and finding defects, gaps, or missing requirements to improve quality. The software testing process involves requirements analysis, test planning, test case development, test environment setup, test execution, and test cycle closure.
Domain analysis is the process of identifying common requirements across multiple projects within a domain to enable reuse. It involves defining the domain, collecting sample applications, analyzing each application to identify common objects, classes, and frameworks, and developing an analysis model. Fundamental design concepts include abstraction, information hiding, structure/architecture, modularity, and concurrency. Software testing verifies software meets requirements by executing it and finding defects, gaps, or missing requirements to improve quality. The software testing process involves requirements analysis, test planning, test case development, test environment setup, test execution, and test cycle closure.
Domain analysis is the process of identifying common requirements across multiple projects within a domain to enable reuse. It involves defining the domain, collecting sample applications, analyzing each application to identify common objects, classes, and frameworks, and developing an analysis model. Fundamental design concepts include abstraction, information hiding, structure/architecture, modularity, and concurrency. Software testing verifies software meets requirements by executing it and finding defects, gaps, or missing requirements to improve quality. The software testing process involves requirements analysis, test planning, test case development, test environment setup, test execution, and test cycle closure.
Domain analysis is the process of identifying common requirements across multiple projects within a domain to enable reuse. It involves defining the domain, collecting sample applications, analyzing each application to identify common objects, classes, and frameworks, and developing an analysis model. Fundamental design concepts include abstraction, information hiding, structure/architecture, modularity, and concurrency. Software testing verifies software meets requirements by executing it and finding defects, gaps, or missing requirements to improve quality. The software testing process involves requirements analysis, test planning, test case development, test environment setup, test execution, and test cycle closure.
Download as PPTX, PDF, TXT or read online from Scribd
Download as pptx, pdf, or txt
You are on page 1of 22
Domain Analysis
• Domain analysis is the identification, analysis and
specification of common requirement from a specific domain analysis, typically for reuse on multiple projects within that application domain • i.e it identify common objects, classes, subassemblies and frameworks. • Steps:- 1. Define domain to be investigated 2. Collect respective sample of application in the domain 3. Analyze each application in the sample 4. Develop analysis model for the objects. Domain Analysis Fundamental Design concept • The software design concept simply means the idea or principle behind the design. • It describes how you plan to solve the problem of designing software. • The software design concept provides a supporting and essential structure or model for developing the right software. Fundamental Design concept 1. Abstraction:- Abstraction simply means to hide the details to reduce complexity and increases efficiency or quality. The solution should be described in broad ways that cover a wide range of different things at a higher level of abstraction and a more detailed description of a solution of software should be given at the lower level of abstraction. Fundamental Design concept A. Functional abstraction: This involves the use of parameterized subprograms. Functional abstraction can be generalized as collections of subprograms referred to as 'groups'.
• It decide which subprogram or routine are visible or invisible
within a group or with other group
B. Data abstraction: This involves specifying data that describes a
data object. For example, • the data object window encompasses a set of attributes (window type, window dimension) that describe the window object clearly. • for example flower have set of attributes like color, type, size Fundamental Design concept C. Control abstraction: This states the desired effect, without stating the exact mechanism of control. For example, if and while statements in programming languages (like C and C++) are abstractions of machine code implementations, which involve conditional instructions. Fundamental Design concept 2. Information Hiding -only required information is transferred between modules. Hide unnecessary details Fundamental Design concept 3. structure/architecture - It refer structure of the system. - It consist of several regarding a program / system , the attributes ( properties of those components and the relationship among them . - The software architecture helps the software engineers in the process of analyzing the software - design - Task important :- i. Stakeholder communicate with each other ii. Design first – coding and test later Fundamental Design concept 4.Modularity • Modularity can be achieved by the process of dividing the software into components which are uniquely named and addressable . • A complex system ( huge application ) is partitioned into a set of discrete modules in such a manner that one should be able to develop those modules independent of each other . • After development is completed , the modules are integrated to form an entire project . • One has to remember that as the number of modules a system is divided into increases , it becomes easy to handle the software but it also increases the effort required to integrate the modules . Fundamental Design concept The process of modularizing a design helps to plan the development in a more efficient way , accommodate changes without difficulty , conduct testing and debugging effectively as well as efficiently , and carry out the maintenance work without adversely affecting the functionality of the software . Fundamental Design concept 5.Concurrency:- It is important to utilize the resources efficiently as much as possible . For this purpose multiple tasks must be executed concurrently . This aspect makes concurrency one of the important concepts of software design . Every system should be designed in such a manner that it should facilitate multiple processes to execute concurrently. Software Testing “software testing is a process of executing software system with intent of finding gap , errors or missing requirement. - It improve quality of the software. Objectives of testing process are as follows: (1) Finding defects which are created by developer while developing software. (i) Providing information about quality of software under test. (i) To ensure that system meets the business and the user requirements. (iv) To gain customer's confidence by providing them a qualitative product. Advantages of Software Testing There are several advantages of software testing as follows: (i) Testing reduces the possibility of software failure by removing errors which leads to software failure. (ii) Testing process removes maximum possible errors from software and helps to deliver qualitative software to customer. (ii) Testing ensures correctness and completeness of software along with quality. Software Testing process or Software testing life cycle “software testinf process contains number of activities with the help of software tester can verify the software Software Testing process or Software testing life cycle A. Requirement analysis:- - In this first phase of the STLC, the test team reviews the Functional Requirements Document (FRD) to determine what is testable. - FRD contains list of functional and non functional requirement - By studying the requirements, the test team gets a good understanding of the scope and the types of the testing to be done. Software Testing process or Software testing life cycle B. Test planning:- - Test Planning is the most important phase of the STLC, where all testing strategy is defined. - What to test, how the test needs to be done, and who’s going to test it? These are the things determined during the test planning phase. - In this phase, also, the Test Lead will determine the effort and cost estimates for the testing portion of the project. - The result of the Test Planning phase will be the Test Plan and the Testing Effort Estimation document. Software Testing process or Software testing life cycle C. Test case development:- -The goal of this phase is to determine “how” to test. - Depending on the context of the project, either test cases or test scenarios will be developed here. - It decide all test data is determined reviewed. - Test cases and test scripts are output of this phase Software Testing process or Software testing life cycle D. Test environment setup:- - It’s the configuration of software and/or hardware on which the testing team is to perform the tests. - Test environment created parallel with test case development phase - After setup of environment testing can be implanted. Software Testing process or Software testing life cycle E. Test execution:- Once the environment is setup, the test strategy is determined, and the test plan is approved, it’s time to run the tests. -This method finds the most defects in the shortest time. - The testers will execute each test, comparing the results to the expected results, and marking it as pass, fail, or skip. -If the test fails, the tester should document what actually happened during the test. - Then development team fixed the problem and solve the problem. Once the defect is fixed by the development team, then the same test case can be rerun based on your test plan. Software Testing process or Software testing life cycle F. Test cycle closure: Once all the tests cases are run, the QA Test Lead should confirm all required testing has been completed. This involves an analysis of defects found and other metrics such as how many passed/failed/skipped test cases Black box and white box testing Black box and white box testing