Software Quality Engineering

Software Quality Engineering Assignment 2020

 Abstract

The report that we are going to make will contains aspects such as tools that are generally used in the software engineering, then the development phases such as IDE, frameworks and also the quality assurance tools that are associated with the effective quality management of the software development. In addition to this we are also going to provide an in depth account of the future scope of the concerned project if the software development performs beyond the level of expectation.

 Introduction

The report that we are going to make will contains aspects such as tools that are generally used in the software engineering, then the development phases such as IDE, frameworks and also the quality assurance tools that are associated with the effective quality management of the software development. In addition to this we are also going to provide an in depth account on the theories that are associated with the quality management of the software development and we are also going to provide the detailed study of the practices that are linked with the phases of the software project development. In addition to this we are also going to provide a vivid account about the tools such as: Operating System Testing, Usability Testing, Load Testing, Automated Testing and Continuous Integration. In addition to this we are also going to provide a detailed account about the tools that are associated with the monitoring of the performance. In addition to this we are also going to provide an in depth account about the phases of the Software Development Cycle and in that we are also going to mention aspects such as: Require Gathering, Design, Implementation or the framing of the concerned codes, testing of the software, deployment of the concerned software for the operations and the last but not the least is the phase of maintenance which in turn will ensure that the concerned software will runs even for the longer period of time in the coming future. In addition to this we are also going to provide an in depth account of the future scope of the concerned project if the software development performs beyond the level of expectation (Hobbs, 2019).

Main body

Brief summary of the software engineering tools used in development including IDE, frameworks, and software quality assurance tools.

Software development tools are the tools (usually software) that programmers use to create other software. For example, language libraries, code editors, debuggers, etc. This section describes the software deployment tools that enable programmers to create stable software that meets their needs and goals.

There are various high-precision development tools such as linker, compiler, code editor, GUI designer, assembler, debugger and editing analytics tool. There are several factors to consider when choosing the corresponding development tool based on the type of design(Muşlu, et al. 2015).

Here are some of these reasons:

* Company standards

* Equipment efficiency

* Integration with another tool

* Choosing the right environment

* Curve Learning

All professionals need software design tools to do the job. Carpenter’s hammer, saw, aircraft, tape placement, etc. are required. Auto mechanics require wrench and sockets, ratchets and impact tools. Software developers like platform wrench, bridge gear, saw, etc., likewise need software planning tools that are suitable for their performance. Software development tools play an important role in IT, but they are far less than the tools used by other professionals.

Software development tools are like interpreters that work directly with your code, but they can also be tools that can help make your life easier. For example, the purpose of answering questions for programmers and sharing knowledge may not directly affect the development of certain software developments in the user panel, but important questions need to be answered. We provide developers related solutions.

So, there are several other options in the category of software development tools. In this section, you can add communication tools like SAC, libraries like Stack Overflow, archives like GitHub, which help improve efficiency and accuracy.

In other words, the choice of software engineering tools used in the development process can completely shape or break the project. Once the target ecosystem and programming language have been selected and the requirements and goals are fully understood, the next task is to select the tools used throughout the process to begin working on a software development project. It is also important to understand the types of employment tools available, their benefits, and the implications for using them (Thüm, et al.2014).

Software development tools are available in various locations and configurations. For example, APIs have tools that enable software developers to achieve specific goals such as programming language libraries. SDK has extensive programming tools that allow programmers to write software for specific platforms and systems. The integrated development environment provides programmers with a complete toolbar, allowing them to program in one environment, test them in the same environment and deploy them at the right time (Nilsson, et al. 2015).

There are various software development tools, including:

1) Link:

Linux is a low code tool for building and automating backend applications along with web services. Development, design and automation of the procedure of custom business comprising easy integration of systems, databases and applications, are accelerated by this software development tool.

  • The drag and drop interface is easy to use
  • Over 100 pre-built features and services for faster development
  • One-click ID placement directly from the IDE to a local or remote Linux server
  • Inputs and outputs include almost any SQL and NoSQL database, numerous file formats (text and binary), or RST and SOAP web services
  • Live debugging with step-by-step logic
  • Automate backend processes or open web services and call APIs via HTTP requests such as timers, directory events, message queues, etc.

2) Buddy

Buddy is a smart CI / CD tool designed to give the access of DevOps portal to the web developers. Delivery pipelines are used by this to create, Test and organize software. With the help of more than 100 ready-to-use actions, those pipelines are created.

  • 15-minute configuration in terms of clear and telling UI/UX
  • Change super-high-speed deployments based on changes
  • Supports all popular languages, frameworks and task managers
  • Ace is the only Docker / Kubernetes star
  • Integrates with AWS, Google, Digital Ocean, Azure, Shopify, WordPress etc.
  • Rail supports parallel processing and YAML configuration

3) Spin the head

First connected intelligence platform of world is Headspin, by means of which IoT, web, mobile, as well as 5G solutions is provided for integration of monitoring, testing, and analysis across networks, applications along with devices. QA, product teams, operation, development is empowered by Headspin for optimizing the combined experience and certify the success of these days’ digital business (urRehman, et al. 2013).

Features:

  • Shared device access to over 300 devices in over 30 countries in the cloud:
  • Major remote debugging
  • Real SIM-enabled Android and iOS devices
  • Over 500 parallel tests
  • Regression tests
  • Automation
  • Localization tests
  • Local debugging and code profiling

IDE

At a more basic level, IDE provides an interface for customers for writing code, organizing text groups, as well as automatingthe redundancyof programming. Functionality of multiple programming proceduresis combined by IDE. A number of IDEs emphases on preciseprogramming languages ​​for instances Javaand Python yet a lot of IDEs have cross-language features. With regard to the capabilities of text editing, the IDE lets one insert a framework and content library, or generate base-level code.

During the entire write procedure, one or more users create a classification in the IDE and assign a group of codes to the designated region. From these, groups can be stringified, compiled and created together. Maximumnumber of IDEs come with a built-in debugger that activates the build. Visual debugger is a great advantage of many IDEs. If an error or error is detected, the user is shown which part of the code is incorrect (Bilal, et al. 2017).

One of the major benefits of integrated development environment

  • Most of the time, developers need a single environment such as a version control system, debugging tools and platforms such as services.
  • Completion code completion features improve your programming workflow.
  • Errors automatically check for errors to ensure the highest quality code.
  • The Act Refactoring feature allows developers to create a wide range of error-free naming.
  • A smooth development cycle is maintained.
  • Enhance the skills of Developer and satisfaction.
  • Maintain Schedule to provide the highest quality software.

Software quality assurance tools

Several QA tools are there by means of whichquality of the softwareis guaranteed. One needs different QA tools for diversekind of purposes. To ensure all-inclusivequality of software one needs QA software.

Infrastructure

  • Release Management
  • Source control

Code Review

  • Automatic code analysis
  • Peer Code Review

Test (QA software)

  • Conduct tests
  • Tracking bugs and issues
  • Testing Browser, Device, OS
  • And usability tests
  • Load test
  • Automatic testing and continuous integration

Observation and analysis

  • Monitor availability
  • And business analytics
  • Exception handling
  • Monitor logs
  • Performance monitoring
  • Security Check and Monitor
  • Customer support

Review-high quality software for comprehensive software quality assurance (QA)

ReQtest- is QA software, which acts as a comprehensive quality assurance software provided by test managers with more than 5 users worldwide. This as well helpsto test teams overcome test challenges, manage test priorities, and achieve test objectives.(Levinson and Librizzi, 2013).

ReQtest- is a cloud-based tool with havinga series of modules to manage necessities, analysing and bug tracking. Along with that an end-to-end solution for software quality assurance is provided by this QA software throughoutthe procedure of software development, management, and maintenance.

Discussion of related software quality assurance theories and practices related to the project development

Various researches have been conducted to recognise the main cause of the software start-up failures. One of the main reasons for such a failure is poor quality assurance during the software development process. The main purpose of rigorous quality assurance testing in the software is to release substandard products for end users. Small mistakes can result in significant financial loss.

Flud is an insatnces of importance of QA and this is an application for social new reader for Android, iPod, Windows Phone and iPhone. In addition, Flud was recognised as the “first true social news reader”. However, due to the poor quality of QA service, the start-up failed. The crucial priority of the team of the Flud was the procedure of development and its main concern was on the creation of the code. At the time of the releasing of the product, product was bug infested and filled with mismatches as well. Even though all thing was fixed the success of the product was impacted by the bad reputation along with awful experience of the user.

Implementation of effective QA management is the only way for providing high quality software. In order to ensure the success of the project, the team leader along with the team member must be able to implement effective QA management as methodologies as well as tools are provided by this for bug free products (Black, 2017).

Software Quality Assurance (SQA) is a standard management component that comprises a prearranged set of organizational activities. The main objective of these organisational activities is to develop the procedure of software development, as well as to introduce the standards of quality in order to reduce errors and the bugs in the product.

Software Quality Control (SQC) is regarded as the portion of quality control and it comprises a series of activities which are concentrated on meeting requirements of the quality.  Moreover, QC refers to product-based operations that qualify software products before release. The software quality control procedure is controlled by the assurance of software quality (Hilburn, et al. 2013).

One of the best activity is the testing that focusing on the detection and the resolve of the technical issues in term of the software source code and evaluating the general usability of the product along with the security, compatibility and the performance of the product. This is not merely the crucial part of the quality assurance yet this is as well an integral portion of the procedure of software development.

Practices software quality assurance related to project development

The approach to quality assurance has already set itself apart from the frequent development environment, and people want to share a comprehensive list of proven best practices over and over again.

Concentrate on the experience of the user

It is important to examine entire levels of a project;however the experience of the user is most significant thing one must take into consideration. In case the UX is bad this does not necessarily mean unequal quality. This is probably due to changes in the early stages of development, but the experience of the user experience always should be first priority in order to ensure the success of the project.

Automation and seamless integration

Automation is essential as fast feedback is provided by this as well as it also allows constant integration- a significant aspect of the agile methodology. In addition, Automation is important thing to reduce the cost as well as to improve the efficiency of the team, and this is one of the key reasons why managers of QA need to educate themselves and actively apply their procedures of automation practices.

Test Coverage and Code Coverage

“Test coverage” is talked a lot by a number of QA engineers. A good overall picture of the application’s quality is given by this. Nevertheless, in order to attain a good quality project analysis of code coverage alaong with test coverage must be well-thought-out. For instance, if people want to achieve 100% test coverage, they should aim for at least 90% of function code coverage to ensure the best results (Cohen, et al. 2017).

Left shift approach

Testing usually begins at the end of the coding period. But to get the best quality in the right way, you need to change your focus from the beginning of your project and start monitoring and experimenting. Not only does this allow you to quickly identify errors, save time and money, but also ensure better relationships with team developers, accelerate product delivery and expand test coverage.

Smart test

A complete and comprehensive test can sometimes present challenges, as many teams may not have the time or resources to perform all the possible combinations. However, you need to know when and how to test. This means contacting the developer to find a small test case that will expose the maximum number of bugs.

Bug prevention

Engineers of QA are skilled enough for catching the bugs in the products. Nevertheless, savvy QA engineers are also thinking of ways for preventing those bugs in the very firstphase of project development. The QA section starts testing at the UI level, but the correct method starts with unit and functional testing, and then moves to the UI level. This approach can prevent entry errors in high-level development, cause serious problems and delay possible delivery.

Value compared to quantity

Initially, we will focus on big bugs and glitches, which are bigger than some smaller bugs.

Critical review of the software quality assurance tools and techniques used in the development and real practice experiences in the overall software development lifecycle

Software quality assurance is only a means to confirm quality in the software. Ensure the processes are as good and accurate as the process ensures, the procedure, as well as the project pass. Software quality assurance is a process similar to software development. It focuses on improving the software development process so that problems can be avoided before major problems occur. Software quality assurance is an umbrella for software development

The general software development cycle involves the following steps:

Phase 1: Planning and Analysis Required

Requirement analysis is the most fundamental and important level in software development life cycle. This is made by senior team member with contribution from customers, market surveys, the sales department, as well as domain specialists across the business. Moreover, it is also planned to identify quality assurance needs and to identify risks related to the project. Also, the result of the technical feasibility training is to establish various technical methods that can be trailed to run the project at minimum risk (Mishra and Dubey, 2013).

Phase 2: Define Terms

When the requirements analysis is completed, the following stage is to obviously document and define the product needs and get them approved from the market analyst or the customer. It is completed through the “Software Requirements Specialization” (SRS) document that contains each product requirement that are developed and designed in the project life cycle.

Phase 3: Design the product architecture

SRS is the orientation for product architect to produce the best architecture for product development. Depend on the needs stated in the SRS, generally, several design approaches for the product architecture is documented and proposed in a Design Document Specifications (DDS).  Along with that, this DDS is gone over by every key stakeholder and is based on different parameters, for example product robustness, risk assessment, modularity of the design, time and budget limitations, as well as the best design practices for the designated product (Ruparelia, 2010).

In this way, a design approach is clearly defined in every module of the product architecture, as well as its data flow representation and communication with the third-party and external modules (if applicable). Moreover, the internal design of every module in the proposed architecture ought to be clearly defined with the smallest of the facts in DDS.

Fig: Software development life cycle

Phase 4: Create or develop the product

At this stage of the SDLC, the authentic development begins as well as the product is created. At this stage, the programming code is made according to the DDS. If the design is done in an organized and detailed manner, the generated code can be done without much bother. Along with that, software developers ought to follow coding guideline established by the organization and use programming tools, for example integrators, compilers, debuggers, and more are applied to develop the code. Various high-level programming languages, for example C, C ++, Java, Pascal, and PHP are applied for encoding. Also, the programming language is selected in relation to the software type being developed (Ruparelia, 2010).

Phase 5: Testing the product

This stage is generally a subset of each step as in the modern SDLC model, the testing activity is typically covering all levels of SDLC. But this phase refers only to the product testing phase where the product reports, traces, repairs, and reconnects errors till the product reaches the specified standard value in the SRS.

Phase 6: Deployment in Market and Maintenance

When the product has been tested and prepared for deployment, this is officially released in the relevant market. Occasionally these products are in line with the business strategy of the company. Moreover, the product may also be published in a restricted category and tested in a real business environment (UAT user acceptance test). Depending on the feedback, the product can be preferred as part of marketing or by increasing its reserves (Bassil, 2012). When the product is launched to the marketplace, this is maintained at a current customer base.

Discussion on future work if the project goes beyond the level defined in the coursework specification.

If the project goes beyond the level defined in the coursework specification one must select the applications and tools to get the superior outcome. Along with that system of version control is the crucial part for every software project. One must be able to use this system wisely in order to get the superior outcome. If the project goes beyond the level defined in the coursework specification, it denotes that project will be completed successfully but one must be utilise version control system wisely in order to certify the superior outcome of the project. In addition, having several document systems must be avoided (Okun and Fong, 2015).

Conclusion

The aspects that we can well conclude from the concerned study are that of the tolls that are being used for the quality check of the concerned software that is under the phase of the development. We have also concluded the very fact that up to which extent the software development cycle is important for the establishment of the new and efficient software which is further going to be put into practice by the end side client (that is in this case it is the recruitment company).  In addition to this it is also evident from the concerned study that there is always a crucial requirement for the critical analysis of the tools and the techniques that are going to be used for the development of the concerned software (that is the software that is going to be used for the recruitment purpose). In addition to this it is also an important fact to state in the conclusion that there are several testing tools that are in use and they are as follows:  Operating System Testing, Usability Testing, Load Testing, Automated Testing and Continuous Integration and the level of effectiveness that the tools have while performing and that in turn makes the end product (that is the concerned software) quite good in nature. In addition to this we are also going to provide an in depth account of the future scope of the concerned project if the software development performs beyond the level of expectation (Gozes, 2020).

References

Bassil, Y., 2012. A simulation model for the waterfall software development life cycle. arXiv preprint arXiv:1205.6904.

Bilal, H.A., Amjad, S. and Ilyas, M., 2017. A Comparative Study of Global Software Development Tools Supporting Project Management Activities. International Journal of Education and Management Engineering7(6), p.32.

Black, P.E., 2017. SARD: Thousands of reference programs for software assurance. Journal of Cyber Security and Information Systems-Tools & Testing Techniques for Assured Software-DoD Software Assurance Community of Practice2, p.5.

Cohen, T.S., Cupif, D.J., Delaitre, A.M., De Oliveira, C.D., Fong, E.N. and Okun, V., 2017.Improving software assurance through static analysis tool expositions. Journal of Cyber Security and Information Systems5(Journal of Cyber Security and Information Systems).

Gozes, O., Frid-Adar, M., Greenspan, H., Browning, P.D., Zhang, H., Ji, W., Bernheim, A. and Siegel, E., 2020. Rapid ai development cycle for the coronavirus (covid-19) pandemic: Initial results for automated detection & patient monitoring using deep learning ct image analysis. arXiv preprint arXiv:2003.05037.

Hilburn, T., Ardis, M., Johnson, G., Kornecki, A. and Mead, N.R., 2013. Software assurance competency model (No. CMU/SEI-2013-TN-004). CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE ENGINEERING INST.

Hobbs, C., 2019. Embedded software development for safety-critical systems.CRC Press.

Kim, J., Feldt, R. and Yoo, S., 2019, May.Guiding deep learning system testing using surprise adequacy.In 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE) (pp. 1039-1049).IEEE.

Levinson, H.L. and Librizzi, R.M., 2013. Using Software Development Tools and Practices in Acquisition (No. CMU/SEI-2013-TN-017). CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE ENGINEERING INST.

Mishra, A. and Dubey, D., 2013. A comparative study of different software development life cycle models in different scenarios. International Journal of Advance research in computer science and management studies1(5).

Muşlu, K., Brun, Y., Ernst, M.D. and Notkin, D., 2015. Reducing feedback delay of software development tools via continuous analysis. IEEE Transactions on Software Engineering41(8), pp.745-763.

Nilsson, A., Castro, L.M., Rivas, S. and Arts, T., 2015.Assessing the effects of introducing a new software development process: a methodological description. International Journal on Software Tools for Technology Transfer17(1), pp.1-16.

Okun, V. and Fong, E.N., 2015. Fuzz testing for software assurance. Crosstalk (Hill AFB): the Journal of Defense Software Engineering28(Crosstalk (Hill AFB): the Journal of Defense Software Engineering).

Ruparelia, N.B., 2010. Software development lifecycle models. ACM SIGSOFT Software Engineering Notes35(3), pp.8-13.

Sivan, D. and Azugi, M.M., CRONUS CYBER TECHNOLOGIES Ltd, 2019. Automated penetration testing device, method and system. U.S. Patent 10,237,296.

Thüm, T., Kästner, C., Benduhn, F., Meinicke, J., Saake, G. and Leich, T., 2014.FeatureIDE: An extensible framework for feature-oriented software development. Science of Computer Programming79, pp.70-85.

urRehman, T., Khan, M.N.A. and Riaz, N., 2013. Analysis of requirement engineering processes, tools/techniques and methodologies. International Journal of Information Technology and Computer Science (IJITCS)5(3), p.40.

Leave a Comment