OTHM LEVEL 5 DIPLOMA IN INFORMATION TECHNOLOGY Certificate Qualification Ref. No.: 603/3614/6 Software Engineering 1 Table of Contents Different modelling languages followed by an explanation of the benefits of using modelling languages in system design. ....................................................................................................... 3 What is Modelling .................................................................................................................. 3 Modeling Languages .............................................................................................................. 3 System Modeling Language ............................................................................................... 4 Object Modeling Languages ............................................................................................... 4 Virtual Reality Modeling Language ................................................................................... 4 Data Modeling Language ................................................................................................... 4 Benefits of Using Modelling Languages in System Design .................................................. 5 Evaluation of How Software Testing Differs from Different Strategies. .................................. 6 What is Software Testing? ..................................................................................................... 6 Different Strategies for Software Testing .............................................................................. 6 Difference between testing methodologies and testing methods ..... Ошибка! Закладка не определена. Some Testing Methods ........................................................................................................... 8 Unit Testing ........................................................................................................................ 8 Integration Testing .............................................................................................................. 8 Functional Testing .............................................................................................................. 8 Regression Testing ............................................................................................................. 8 System Testing ................................................................................................................... 9 Performance Testing ........................................................................................................... 9 Acceptance Testing............................................................................................................. 9 Software Testing Tools Available for The Automation of The Testing Process. .................... 10 Selenium ............................................................................................................................... 10 TestingWhiz ......................................................................................................................... 10 TestComplete ....................................................................................................................... 11 GUI testing ........................................................................................................................... 11 Ranorex ................................................................................................................................ 11 Sahi ....................................................................................................................................... 12 Katalon Studio ...................................................................................................................... 12 UML class diagram for automated teller machine (ATM) Scenario ....................................... 14 UML class diagram for Extension Code Scenario ................................................................... 15 References ................................................................................................................................ 16 2 Different modelling languages followed by an explanation of the benefits of using modelling languages in system design. What is Modelling Models are a type of description that is widely used in the creation of software programs. They're abstractions that help builders deal with the complexity of the problem they're investigating or the solution they're developing by indicating and communicating what's vital without going into unnecessary detail. Different sorts of design and engineering employ modeling. Architects, for example, promote several architectural models, some of which focus on structures, others on materials, others on ergonomics, and so on. In software development, the same thing happens: some fashions are used to capture properties of the problem domain, such as key elements of the business or how its approaches work, while others are used to consider unique aspects of the software, such as how the code is divided and organized, or how a variety of software elements speak and work together. Each mannequin is an abstract representation of a particular view of the system, which may change as the improvement process progresses. Modeling Languages The modeling language is largely employed in the fields of computer science and engineering to create new software, systems, gadgets, and equipment fashions. The context of modeling languages is mostly textual and graphical; nonetheless, modeling languages are classified into four categories based on the requirements and domain in use. System modeling language. • Object modeling languages • Virtual reality modeling language • Data modeling language 3 System Modeling Language The Systems Modelling Language (SysML) is a modeling language for engineering systems that is used on a daily basis. SysML is a graphical notation that aids in the analysis, formatting, and verification of complex structures containing hardware, software, information, persons, procedures, and services. SysML provides graphical representations for modeling machine behavior, needs, structure, and parametrical aspects that are used to connect with other engineering assessment models via the OML XML Metadata Interchange. Object Modeling Languages Object modeling languages are semi-formal graphical specifications. They're tools for capturing and formalizing requirements early in the software development process, as well as detailing designs, software architecture, and even actual implementations later on. Barbier and Henderson-Sellers Virtual Reality Modeling Language The virtual reality modeling language (VRML) is also used to express triangle facets on a floor. They're similar to STL documents in terms of structure, but they're usually prepared in smaller file sizes and coded in a more efficient way to make them suitable for transmission over the Internet. VRML also enables for the insertion of color and texture mapping to models, as well as the incorporation of animation and sound data. A more advanced version of VRML known as X3D may include additional information such as geo-locations and improved rendering. Interactive teaching aids and procedural training/planning visualizations are examples of applications in the scientific field, and they may be useful to health care professionals of all levels of experience, from medical students to consultants. (Medical Modeling (Second Edition), 2015, Bibb & Paterson) Data Modeling Language A data model is one of the most vital tools in the format process, however, it has to be completed right. It very often begins as a format of the facts necessities that you use to talk 4 with the customer and is refined over and over till you get it right. However, a frequent misconception is that a records model is only an image of a database. That is partly true, however, a model is truly so a good deal more. A high-quality data mannequin includes nongraphical representations of distinctly an awful lot the whole thing about a database and serves as the main documentation for the life cycle of the database. Aspects of the mannequin will be beneficial to developers, users, and the database directors (DBAs) who hold the system. (Davidson & Moss, 2016) Benefits of Using Modelling Languages in System Design Increases the development team's productivity (e.g. models can be used for a semiautomatic code-generation). Even if you don't believe in the miracle of fully automated code generation, models and code generation can save you a lot of time by automating the most tedious and time-consuming coding tasks. According to our own "Pareto precept for model-driven development," 20% of modeling effort is enough to yield 80% of software code. Decreases the number of bugs in the final code (models facilitate the early assessment of the system). There is a large range of tools that may help you verify, validate, and test your system according to its standards. The earlier the fault is identified, the easier and less expensive it is to correct it. Modeling, too, enables for early examination of options through the use of mannequin simulation techniques. Captures and organizes the system's perception. This also makes it easier to integrate new team members. Documentation is a good fit for models. Increases the system's breakdown and modularization. Aids in the evolution and renovation of the system (e.g. by means of facilitating tracing back the code to the authentic requirements, this makes it easier to hit upon the components of the machine code that desires to be modified). Makes it easier to reuse system components in new projects. Finally, in the mid-term, you maximize the benefits of software modeling technology. 5 Evaluation of How Software Testing Differs from Different Strategies. What is Software Testing? Software testing is a type of investigation used to determine if the product program contains any defaults or errors so that the errors can be reduced or eliminated, hence improving the software's quality and determining whether it meets the required standards. The following are the goals of software testing, according to Glen Myers: Testing is the process of investigating and checking a program to see if there is an error or not, and whether it meets the requirements or not. A large number of errors found during the checking out suggests that the checking out was excellent and is an indicator of a favorable check case. Discovering a previously undetected fault is an indication of a thorough and thorough examination of the case. The main purpose of software checking out is to format the checks in such a way that they systematically find one-of-a-kind types of problems while also consuming a lot of time and effort, allowing for much faster software development. Different Strategies for Software Testing Prior to beginning the checkout process, it is critical to determine and quantify the product's requirements. There are various characteristics that make a software program the best, such as maintainability, which refers to the ability to replace and modify it, probability, which refers to the ability to find and estimate any risk, and usability, which refers to how easily it can be used by customers or end-users. To achieve clear test effects free of error, all of these property traits should be sought. Developing a method for non-stop development for the testing process. 6 A look at the strategy that is already measured needs to be utilized for software checking out to measure and manage the fine at some level in the creation of software as a phase of a statistical method manipulates approach. Defining the testing objectives in a clear and distinct manner. There are several testing objectives, such as effectiveness, which refers to how well the software program can achieve the goal, any failure, which refers to the software's inability to meet the requirements and perform the functions, and the cost of defects or errors, which refers to the cost of repairing the error. All of these goals should be specified clearly in the test design. Identifying the user's category and creating a profile for each user for the software. The interactions and verbal communication between different types of users and the gadget to acquire the target are described in use cases. Perceiving the clients' actual needs and then putting the product through its paces. Creating a check design that includes a price and a focus on rapid-cycle testing. Rapid Cycle Testing is a type of test that increases quality by identifying and assessing any changes that need to be made in order to improve software methodology. As a result, a test sketch is a necessary and beneficial file that aids the tester in doing quick cycle testing. Robust software that can look at itself is being developed. The software must be able to detect or identify one-of-a-kind faults in training. Furthermore, the software program diagram should allow for automated and regression testing, which examines the software program to see if any negative or side effects on the software's facets are caused by any changes in code or program. The use of fine formal reviews as a filter before testing. Formal technical reviews are a way to find faults that haven't been identified yet. Because of the beneficial technical critiques made prior to testing, a significant amount of testing effort 7 and time is necessary for testing software program, resulting in a reduction in the typical development time of software. Conduct formal technical evaluations to assess the test approach and test cases' type, quality, and capabilities. The comprehensive technical evaluation aids in the detection of any gaps in the checking out process. As a result, it is critical to examine the capacity and quality of the test strategy and check instances via technical reviewers in order to improve software quality. (2020, Hammad) There's a distinction to be made between testing methodology and testing procedures. Because there is an obvious separation between the two, the answer is not difficult. Methodologies for testing that include unit testing and system testing are known as testing methodologies. Testing Methods is a list of the most common issues that arise during the testing process and must be addressed by the project manager, the development team, and the testers. The software testing methodologies listed above are used to introduce a variety of testing procedures. Some Testing Methods Unit Testing It relies on tiny usable units. The best way to search for insulation in the smallest units. Created generally by developers. Integration Testing This is the next step on the part of the creator to be carried out. Provide a framework for evaluating connectivity, interaction and coordination between the various program modules Functional Testing It is used to verify a software system's functionality, i.e. the performance of the input provided. Regression Testing 8 Checks if the bug fix has arisen at one position such that in another key region the dynamic functionalities do not affect any change. System Testing Checking, as a collective device, all the interconnected units. Multiple functions are merged into end-to-end situations. Performance Testing Checks the application's output in sensitive circumstances such as huge size file transfer, device access for concurrent users, configuration malfunction, etc. Acceptance Testing In general, the final evaluation stage in which the software system is tested by testers from a customer viewpoint The outcome of this move is arbitrary and takes a little longer to find the exact problem. The action or collection of actions that lies at the heart of the testing process is the choice of a proper testing methodology. This can also be a flexible operation that varies according to the software product's business requirements and timeline. However, one may opt to provide a more versatile and effective end product that meets the needs and desires of the consumer in the required or less time limit, single or even multiple software development and testing methodologies. 9 Software Testing Tools Available for The Automation of The Testing Process. Selenium Selenium is a testing framework to operate internet application checking out across quite several browsers and platforms like Windows, Mac, and Linux. Selenium helps the testers to write assessments in several programming languages like Java, PHP, C#, Python, Groovy, Ruby, and Perl. It affords file and playback elements to write exams barring studying Selenium IDE. Selenium proudly supports some of the largest, but standard browser providers who make positive they have Selenium as a native phase of their browser. Selenium is undoubtedly the base for most of the different software program checking out tools in general. TestingWhiz TestingWhiz is a test automation tool with the code-less scripting by way of Cygnet Infotech, a CMMi Level 3 IT solutions provider. TestingWhiz tool’s Enterprise edition gives a whole 10 package of a number computerized checking out options like internet testing, software program testing, database testing, API testing, cellular app testing, regression test suite maintenance, optimization, and automation, and cross-browser testing. TestingWhiz affords more than a few vital features like: Keyword-driven, data-driven testing, and dispensed testingBrowser Extension Testing Object Eye Internal Recorder SMTP Integration Integration with worm monitoring tools like Jira, Mantis, TFS and FogBugz Integration with take a look at management tools like HP Quality Center, Zephyr, TestRail, and Microsoft VSTS Centralized Object Repository Version Control System Integration Customized Recording Rule TestComplete TestComplete is a practical checking out platform that affords a number solutions to automate checking out for desktop, web, and mobile purposes by means of SmartBear Software. TestComplete gives the following features: GUI testing Scripting Language Support – JavaScript, Python, VBScript, JScript, DelphiScript, C++Script & C#Script Test visualizer Scripted testing Test recording and playback Ranorex Ranorex Studio provides a number of testing automation equipment that cover testing all desktop, web, and mobile applications. Ranorex offers the following features: 11 GUI recognition Reusable take a look at codes Bug detection Integration with more than a few tools Record and playback Sahi Sahi is a testing automation tool to automate net applications testing. The open-source Sahi is written in Java and JavaScript programming languages. Sahi gives the following features: Performs multi-browser testing Supports ExtJS, ZK, Dojo, YUI, etc. frameworks Record and playback on the browser testing Katalon Studio Katalon Studio is a free automation testing answer developed by way of Katalon LLC. The software program is constructed on top of the open-source automation frameworks Selenium, Appium with a specialized IDE interface for API, net and mobile testing. This device includes a full package of effective points that help overcome common challenges in internet UI check automation. Katalon Studio consists of the following features: Built-in object repository, XPath, object re-identification Supports Java/Groovy scripting languages Built-in guide for Image-based testing Support Continuous Integration equipment like Jenkins & TeamCity Supports Duel-editor Interface Customizable execution workflow (Satasiya, 2019) 12 13 UML class diagram for automated teller machine (ATM) Scenario 14 UML class diagram for Extension Code Scenario 15 References 16