Skip to content
This repository has been archived by the owner on Mar 7, 2020. It is now read-only.

Software Quality Assurance

Rajat Jacob edited this page Feb 28, 2020 · 1 revision

Software Quality Assurance

Introduction

Empowering a woman is not just about the woman herself but also beyond the idea of being prejudiced by society. It takes everyone around to empower a woman and not just her ideologies. The project WE (Women Empowerment) is aimed to build a network of opportunities and a social platform for women to express their thoughts.

Proposed System

This website will serve as an anchor for all women by remaining steadfast in publishing premium, multimedia content so that it uplifts deeper understanding and connection, and cultivates rich dialogue in communities around the globe. We will provide a platform for women to share their skills in the form of posts, recipes and instructional guides to improve the lives of women all around the world. Our users can use these guides in their day-to-day lives. We will also provide women with help to find jobs based on their skills and work experience. This website will work as a pseudo-social network that helps women improve their job-readiness. Other women empowerment enthusiasts can also be a part of this social network and donate what they are capable of, to uplift women who are struggling.

Limitations of the Existing System

For content consumption from every website, the main thing the user aspires for is relevant data based on a simple search and a community to help and support her while on the platform. Some limitations of the existing platforms on which our project looks to improve are as follows:

  • Lack of community development on the platforms: The presence of a community in an empowerment-based website is almost mandatory in today’s and age. This will allow the introverted women who lack the ability to express themselves, to display themselves with the aid of other members of the community. The community also helps to grow and expand the database and support itself.
  • Unidirectional communication on the platforms: The absence of user-profiles on several of these platforms results in unidirectional communication.
  • The constrained course of action: These websites mainly include blogs and stories about the lives of the women and provide a very limited solution to these stories.

Objectives of the Proposed System

Primary Objective

To design and develop a web project which provides a platform for Women Empowerment.

Secondary Objectives / Stages / Tasks

  • Screen Responsive Website
  • Create a forum for women to communicate with each other
  • Help women finding jobs

Software Quality Assurance (SQA) Plan

Purpose and scope

The purpose of this document is to specify how the software quality assurance plan will be handled in the software development life-cycle of the project, “WE”. The purpose of this software project is to build a network of opportunities and a social platform for women to express their thoughts. The scope of “WE”, is to serve as an anchor for all women by remaining steadfast in publishing premium, multimedia content so that it uplifts deeper understanding and connection, and cultivates rich dialogue in communities around the globe.

Organizational Roles and Responsibilities

Roles

Supervisor

Prof. Manjunatha Hiremath

Developers and Testers

Responsibilities

Supervisor

Primary responsibility includes reviewing each phase of the project development and later providing feedback and suggestions to software developers.

Developers

As the project is broken down into modules to be implemented individually by the developers, they are collectively responsible for ensuring the quality of the project.

Testers

The main responsibility is to examine the work products to identify possible defects.

Software Engineering Work Products

Synopsis of the project

Project Plan

Dividing the project “WE” into various modules - Login/Signup, Posts, Vocational Courses, Resume Form, Join Us (Organisation), Feedback, Donations, View/Edit Resume.

Software Requirement Specification

Software and Hardware requirements for “WE”

– Frontend and backend. System models – ER and DFD diagrams of each of the modules. Database Design – the back-end database design for “WE”. User Interface design – UI designing of each module. Source Code – Actual implemented and documented source code of the whole website. Test Plan – Testing of individual modules. Project Evaluation – Review of the “WE” website as a whole. Standards and Practices The standards governing this project are: Documentation standards – MSE Portfolio. IEEE Standard for Software Test Documentation (IEEE Std 829-1998). IEEE Standard for Software Quality Assurance Plans (IEEE Std 730-1998). The following metrics will be recorded as part of this project: Source lines of code produced by the project. Time spent during the project. Reviews and audits Each module is reviewed by the testers immediately after their development and updates. The project will also undergo 3 audit reviews by the supervisors and other external evaluators – Presentation 1 – Analysis and design review. Presentation 2 – Demo and review of the 50% of the project (implementation and source code) Presentation 3 – Demo of the whole project with test cases and validation. Tools The following tools are used are used in creating, testing and debugging of the website – ReactJS and SCSS will be used to make the website design. The website will be tested under Google Chrome. Media Control All documentation is saved on GitHub and work products generated are hosted as a Progressive Web Application using Firebase. Source Control A full history of changes made throughout the project is available on GitHub.

Identification of Metrics for SQA with Justification Requirement Quality Number of TBD: Task based development is an essential part of the project as the website is divided into different modules implemented by each of the developers. Number of changes per requirement: The website is based on empowering women for good. In this century, women are being given equal representation in all fields and thus the demand for such platform is increasing at a high rate and hence understanding the number of changes required per requirements (eg. security) is a necessity.

Design Quality Existence of architectural model: The design quality of ‘WE’ depends on the existing architectural models and the modifications done on them. It has a lot of functionalities and content as it is and is an awareness website and therefore this metric is a necessity. Code Quality Percent internal comments: the percent of internal comments per lines of code is important in-order to increase the understandability of the processing functions. Variable naming conventions: Following the variable naming conventions will lead to a more easily understandable code for future debugging and referencing. In our project we have a Readme document to give clarity on our codes. We also named each folder with the first letter of each word in capitals for uniformity. Inbuilt formatters (ESLint and Beautify) are used for organised alignment. Percent reused components: Reusing of the components and modifying them according to their need in different pages. In our project we reused input components (like label, button) , containers, cards, alert, etc. Readability index: Readability is the ease with which a reader can understand a written text. In natural language, the readability of text depends on its content (the complexity of its vocabulary and syntax).Our main objective in coding is to pass along information that both the coder and the reader thinks is worthwhile. If we fail to convey that information, our efforts are wasted. In order to engage the reader, it is necessary to make it understandable and clear. So, it is required that the content be easy enough. In our project we have a ReadMe document to give clarity on our codes. Quality Control Effectiveness Actual vs. budgeted completion time: The planned and the actual time required to develop the website will determine the effectiveness of the project planning. Number of errors found and criticality: During the testing sessions, the errors identified, their criticality and the time taken to curb and find solutions are important aspects of the project life cycle. Testing A set of activities that should be conducted systematically is testing. Testing begins at the component level and works ‘outward’ towards the integration of the entire computer based-system. Each small source code is tested at the low-level for correct implementation. Then, the small codes are combined and high-level tests are conducted to correctly validate the major system functions. Testing Approaches The test strategy implementation of the project that defines how the testing has been carried out. We followed the Reactive approach to testing. This means that we continued testing each component or module of our project during its creation. However, we are only able to test it completely once the coding and designing part of the project is complete. The testing methodologies in the development process which make sure that the software can successfully operate in multiple environments and across different platforms. We are trying to develop a project which will work on the web and as a mobile application. This will help the end-users to access the platform with ease and flexibility. Also, the offline mode is available for users to access the network anywhere and anytime.

BLACK BOX TESTING AND WHITE BOX TESTING BLACK BOX TESTING WHITE BOX TESTING It is a testing approach which is used to test the software without the knowledge of the internal structure of program or application. It is a testing approach in which internal structure is known to the tester. This type of testing is ideal for higher levels of testing like System Testing, Acceptance testing. Testing is best suited for a lower level of testing like Unit Testing, Integration testing. Performed by the end-user, developer, and tester. Usually done by testers and developers. Programming knowledge is not needed. Programming knowledge is required. It is a functional test of the software. It is a structural test of the software.

As developers, we realised that testing through the white-box testing procedure is more feasible because we are the ones who developed the code and therefore have all the knowledge about the internal structure. The features of white-box testing are in favour of the developers. Therefore, unit testing and integration testing is elaborated more below. However, when we learn about other kinds of testing such as non-functional testing, we realise that it is also possible to state some information and facts about them based on our project. Functional Testing This testing is based on the requirements specified by various stakeholders and incorporates testing to ensure that all the components are working properly. Unit Testing Unit testing is the first level of testing which ensures that the individual components of a piece of software at the code level are functional and work as they were designed. The unit testing was done during the development of the specific components of each module by an individual. This was conducted manually by repeatedly debugging the errors for the proper functionality of the module components. We typically wrote and aimed to execute the tests prior to the software being deployed in front of the evaluators or testers. This testing helped us debug the code at an early stage so that we don’t find errors when we combine all the components of the module together. Eg. Creation and testing of the login page and forgot password page.

Integrating Testing Integration testing is the next step after unit testing. These are then tested as a group through integration testing to ensure whole segments of an application behave as expected. Once all the components were tested, we began combining those components into one module. Manual tests were also conducted for integration. This test enabled us to run all the components one after the other smoothly. For eg. creation and testing of the homepage and the subpages individually and then combining it to test it for proper functionality. System Testing System testing is the testing of the complete project by a separate team of testers. In our case, we have only been able to present 50% of our project to our external guide. Therefore, the status of system testing is not up to date. Acceptance Testing Acceptance testing is the last phase of functional testing and is used to assess whether or not the final piece of software is ready for delivery. According to the status of our project in present, we think that the criteria have been met and we are working according to our plan. Also, the purpose of serving the end users with various opportunities is met. This testing requires getting acceptance from the end-users. The criteria and the modules will directly communicate with the end-users and we hope that they may give us satisfactory feedback through our feedback portal. Test Cases The testing focused on the operational aspects of a piece of software. Performance Testing It is to test the responsiveness and stability of the system in real user situations. Since we haven’t created a proper complete model of our project till now, we haven’t really checked for the performance of the system. However, we have experienced slow speed while loading the project in our own systems. Security Testing Security testing is a non-functional software testing technique used to determine if the information and data in a system are protected. We are using the firebase cloud to store our entire data.

Usability Testing Usability testing is a testing method that measures an application’s ease-of-use from the end-user perspective. As developers, we have tried to follow one colour palette in the entire project to ensure that the end-users find it more appealing. Also, we have a module called posts that itself is directly in the users’ interests. They can post whatever they feel like sharing to their followers. The workflow of various processes in the system is also smooth and easy for the users to work with.

Compatibility Testing Our project aims to serve its purpose in various environments. It will work on the web as well as a mobile application. Users can also access the app offline. The screen responsiveness is maintained and checked so that the users don’t experience any problems while using the system. The software functionality is constantly supported. Modules And their Validation Validations are the functions or features that must be included in any system to satisfy the business needs and be acceptable to the users. Based on this, the functional requirements that the system must require are as follows: Signup Creating an account with blank credentials is prohibited. No field is allowed to be left blank. The desired username is indexed to check if an existing account is associated with that username. Therefore, no two users will ever have the same username. The given password is then re-typed and confirmed by the user to prevent typographical errors. The provided email address is cross-referenced with the authentication service to check if an account is already associated with it. Therefore, no two accounts can be associated with the same email address. Creating an account with a third-party authentication provider is included to increase the ease of access. Users have the option to sign-up and login using their existing Google accounts. Login Logging in with blank credentials is prohibited. No field is allowed to be left blank. The given email address is checked for its validity. The email and password combination is securely cross-referenced and the corresponding account is logged in. A link to the “Forgot Password” page is provided to help recover an inaccessible account. A link to the “Sign Up” page is provided for new users. Appropriate error messages are provided whenever an exception is encountered. Creating an account with a third-party authentication provider is included to increase the ease of access. Users have the option to sign-up and login using their existing Google accounts. Forgot Password The provided email address should have an associated account on our network. An email is sent with instructions and a link to securely reset the user’s password. User Profile The user should be able to view their followers, following and posts in the user profile. The user should be allowed to follow and unfollow others. The user should be given the option to change their name, username or bio according to their will. The user should be able to add or change their profile picture. The user should be given an option to logout. Posts and Feed The homepage should be updated whenever there is a major change to the feed on a regular basis. People following each other can share and like each other’s posts. A post should not be shown to anyone who does not follow the user who posted it. This protects the privacy of the user. Each user is allowed one like per post. This is done by toggling the liked/unlike state for each user and each post in the database. Donations No field should be left empty. The information of the person who donates should be stored in the database. Organisation Partner Registration Form No field should be left empty. The data about the organisation will be added to the database once the organisation enrols.

Vocational Courses The page will be directed to a detailed page about a specific course. An option of enrolling for a course will be available for the user. Feedback No field should be left empty. The feedback will be added to the database and displayed on the homepage as a testimonial. Resume Required field shouldn’t be left empty. The data will be added to the database when the user submits the form. The database should be updated whenever there is a change to the resume for a particular user. View Resume All the data entered in the resume will be viewed in a manner that the user is able to print it. User can also redirect the page to job hunting website “naukri.com” with the listing of its job preference in the results.