Network Security and Management

by Professor Brijendra Singh.

Systems Analysis and Design

by Professor Brijendra Singh.

Data Communication And Computer Networks

by Professor Brijendra Singh.

Quality Control And Reliability Analysis

by Professor Brijendra Singh

Tuesday, 3 November 2020

Validation/Verification in Software Testing and SRS

Verification/Validation in Software Testing

Verification in software testing is testing that your product meets the specifications/requirements you have written. ... Validation tests how well you addressed the business needs that satisfy specified business requirements, needs, or expectations. It is also sometimes called acceptance or business testing.


What is Verification?


Verification in Software Testing is a process of checking documents, design, code, and program in order to check if the software has been built according to the requirements or not. Verification does not involve code execution. 


Verification uses methods like reviews, walkthroughs, inspections and desk-checking.


What is Validation?


Validation in Software Testing is a dynamic mechanism of testing and validating if the software product actually meets the exact needs of the customer or not. 


Validation involves code execution. Validation uses methods like black box/white box testing and non-functional testing.



Software Requirements Specification


A software requirements specification (SRS) is a software document that lays out the functional and non-functional requirements of a system.


A Software requirements specification document describes the intended purpose, requirements, and nature of software to be developed. It also includes the yield and cost of the software. 


A software developer is a person who along with the project team writes down the SRS document for a system to be developed. 

Details for SRS documents are given below in steps:


Step 1 : Objective, Document Conventions, and Project Scope


Step2: Project Perspective, Product features, operating environment, design, and implementation constraints and assumptions and dependencies


Step 3: System features must be described as Functional requirements of the system


Step 4: External Interfaces Requirement are as : 

User, Hardware, Software and communication interfaces 


Step 5: Nonfunctional Requirements are as :

Performance requirements, Safety and security requirements, and software quality attributes



Friday, 23 October 2020

Software Testing: Alpha Testing and Beta Testing



Software testing is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include the process of executing a program or application with the intent of finding software bugs (errors or other defects), and verifying that the software product is fit for use.

Alpha and beta testing are two of the stages that software must undergo testing. Alpha testing occurs first and when the software passes that, beta testing can then be undertaken. If the software fails alpha testing, changes are done and it repeats the tests until the software passes. 


Alpha Testing


Alpha testing is the final stage of testing performed by your Quality Assurance team to check that your application is ready for release outside your company. 

Alpha testing is simulated or actual operational testing by potential users/customers or an independent test team at the developers' site. Alpha testing is often employed for off-the-shelf software as a form of internal acceptance testing before the software goes to beta testing. 


OR

Alpha Testing is a type of software testing performed to identify bugs before releasing the product to real users or to the public. ... Beta testing is performed by clients who are not part of the organization. Alpha testing is performed at the developer's site. Beta testing is performed at the end-user of the product. Alpha Testing is one of the user acceptance testings.


Beta Testing


Beta testing involves releasing the software to a limited number of real users. Beta testing is a type of user acceptance testing where the product team gives a nearly finished product to a group of target users to evaluate product performance in the real world. There is no standard for what a beta test should look like and how to set up beta testing.


OR


Beta testing comes after alpha testing and can be considered a form of external user acceptance testing. Versions of the software, known as beta versions, are released to a limited audience outside of the programming team known as beta testers. The software is released to groups of people so that further testing can ensure the product has few faults or bugs.


User acceptance testing, or User Acceptance Testing, is similar to beta testing, but it has a different goal in mind. Specifically, User Accepting Testing is used to ensure that the final product meets the requests of the client or end-user. Every piece of software is built for a reason, and User Acceptance Testing ensures that reason is fulfilled before a product is shipped.



Here is a simple difference between alpha and beta testing mentioned below:

Alpha Testing

Beta Testing

Alpha Testing is done by testers ( Internal employees of that company or organization)

Users and clients do it, ( not the employees of any company or organization).

Alpha testing type is carried out at the developer's site.

Beta testing is carried at the end user's location.

It uses white box testing. The testers know what is happening and what they are tested.

It uses black-box testing only. The tester just sees the application.

Execution of the test cycle might take a longer time.

Execution time for test requires only a few months (at maximum).

 



References:

  1. Brijendra Singh, “ Systems Analysis and Design,” New Age International Publisher's, New Delhi Year: 2016
  2. Brijendra Singh, Shikha Gautam, “ Systems and Software Process”, Narosa Publication House, New Delhi Year : 2020.



Wednesday, 21 October 2020

White Box Testing and Black Box Testing




Testing software begins earlier in the systems development life cycle, even though many of the actual testing activities are carried out during implementation. During analysis, you develop an overall teat plan. During design, you develop a unit test plan, an integration test plan, and a system test plan. During implementation, these various plans and put into effect, and the actual testing is performed. Testing is the process of evaluating software or its component(s) with the intent to find whether it satisfies the specified requirements or not.


White Box Testing


White Box Testing is a software testing technique in which internal structure, design, and coding of software are tested to verify the flow of input-output and to improve the design, usability, and security. ... The term "WhiteBox" was used because of the see-through box concept. White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of software testing that tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing). 


Normally white box testing done by testers and developers. Advantages and disadvantages of White Box testing are as:


Advantages:


  1. As the tester has knowledge of the source code, it becomes very easy to find out which type of data can help in testing the application effectively.
  2. It helps in optimizing the code.
  3. Extra lines of code can be removed which can bring in hidden defects.
  4. Due to the tester's knowledge about the code, maximum coverage is attained during test scenario writing.


Disadvantages:


  1. Due to the fact that a skilled tester is needed to perform white-box testing, the costs are increased.
  2. Sometimes it is impossible to look into every nook and corner to find out hidden errors that may create problems, as many paths will go untested.
  3. It is difficult to maintain white-box testing, as it requires specialized tools like code analyzers and debugging tools.



Black Box Testing


Black Box Testing is a software testing method in which the internal structure/ design/ implementation of the item being tested is not known to the tester. White Box Testing is a software testing method in which the internal structure/ design/ implementation of the item being tested is known to the tester. Black box testing can be applied to three main types of tests: functional, non-functional, and regression testing. Black Box Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/design/implementation of the item being tested is not known to the tester. These tests can be functional or non-functional, though usually functional.  

Black box testing performed by end-users and also by testers and developers. It is exhaustive and the least time-consuming. For example an operating system like Windows, a website like Google, a database like Oracle or even your own custom application. Under Black Box Testing, you can test these applications by just focusing on the inputs and outputs without knowing their internal code implementation.



Black-Box Testing

Advantages

Disadvantages

Well suited and efficient for large code segments.

Limited coverage, since only a selected number of test scenarios is actually performed.

Code access is not required.

Inefficient testing, due to the fact that the tester only has limited knowledge about an application.



References:

  1. Brijendra Singh, “ Systems Analysis and Design,” New Age International Publisheer’s, New Delhi Year: 2016
  2. Brijendra Singh, Shikha Gautam, “ Systems and Software Process”, Narosa Publication House, New Delhi Year : 2020.

Monday, 19 October 2020

Relationship Between Organisations, Information Systems, and Business Processes:

Relationship Between Organisations, Information Systems, and Business Processes: 



An organization is a stable, formal social structure that takes resources from the environment and processes them to produce outputs. This technical definition focuses on three elements of an organization. Capital and labor are the primary production factors provided by the environment.

Business processes refer to the manner in which work activities are organized, coordinated, and focused to produce a specific business result they also represent unique ways in which organizations coordinate work, information, and knowledge and the ways in which management chooses to coordinate work. Managers need to pay attention to business processes become they determine how well the organization can execute and thus are potential sources of strategic success or failure. Although each of the major business functions has its own set of business processes, many other business processes are cross-functional such as order fulfillment. Information systems can help organizations achieve great efficiencies by automating parts of these processes or by helping organizations rethink and streamline them. Firms can become more flexible and efficient by coordinating and integrating their business process to improve the management of resources and customers.  

The nature of business is another aspect that significantly influences the design of information systems while a large number of attributes of the business have an impact on the information systems, the following are the salient ones:

  • Size of organization 
  • Size of the user population
  • User interaction
  • Level of automation
  • Organization culture
  • Nature of business   


The Challenge of Information Systems:


Although information technology is advancing at a blinding pace, there is nothing easy or mechanical about building and using information systems. There are five key management challenges in building and using information systems:

  1. Obtaining business value from information systems.
  2. Providing appropriate complementary assets to use information technology effectively.
  3. Understanding the system requirements of a global business environment. 
  4. Creating an information technology infrastructure that inflexible enough to support changing organizational goals; and  
  5. Designing systems that people can control, understand, and use in a socially and ethically responsible manner. 

Saturday, 17 October 2020

What is Information system ? Explain the Classification of information system based on various functions


What is an Information System ?


An information system cab be defined technically as a set of inter-related components that collect (or retrieve), process, store, and distribute information to support decision making and control in an organization. In addition to supporting decision making, coordination, and control, information systems and also help managers and workers analyze problems, visualize complex subjects, and create new products. 

Information systems contain information about significant people's places and things within the organization or in the environment surrounding it. By information, we mean data that have been shaped into a form that is meaningful and useful to human beings. Data, in contrast, are streams of raw facts representing events occurring in organizations or the physical environment before they have been organized and arranged into a form that people can understand and use.

Three activities in an information system produce the information that organizations need to make decisions, control operations, analyze problems, and create new products or services. These activities are input, processing, and output as shown in figure


Input – Captures or collects raw data from within the organization or from its external environment. 

Processing – Convert this raw input into a more meaningful form.


Output – Transfers the processed information to the people who will use it or to the activities for which it will be used. Information systems also require feedback, which is output that is returned to appropriate members of the organization to help them evaluate or correct the input stage. 



Classification of information system based on functions types of processing, usage, and application are as :


   1. Classification of information system is by function: 

  • Operations (resources, processes, products)
  • Administrative (support functions)
  • Planning and control (management use)
  • Environmental (e.g. competition)


2. Classification of information system is by usage:

  • Transaction Processing
  • Management Information 
  • Decision Support System
  • Executive Support System
  • Expert System

3. Classification of information system is by type of processing:

  • Batch 
  • Online, Real-time
  • Distributed

4. Classification of information system is by application

  • Manufacturing
  • Warehousing
  • Marketing
  • Banking
  • Transportation
  • Geographic Information Systems




Monday, 12 October 2020

Software Testing


Software Testing 

Testing software begins earlier in the systems development life cycle, even though many of the actual testing activities are carried out during implementation. During analysis, you develop an overall teat plan. During design, you develop a unit test plan, an integration test plan, and a system test plan. During implementation, these various plans and put into effect, and the actual testing is performed. 

Tests can be done with or without executing the code, and they may be manual or automated. Table shows the categorization of Test types. 

Table shows A Categorization of Test Types


Manual

Automated

Without code executed 

  • Inspections 
  • Syntax checking 

With code  execution 

  • Walk through 
  • Desk checking 
  • Unit testing 
  • Integration testing 
  • System testing 


(i) Inspection: Inspection is formal group of activities in which participants manually examine code for occurrences of well-known errors. 

Code   inspection participants used to : 

  • Compare the code they are examining to a checklist of well-known errors for that particular language. 
  • Detect from 60 to 80 percent of all software defects as well as provide the feedback to programmers to avoid making the same types of errors in future. 
  • Ensure that design specifications are accomplished. 

Syntax, grammar, and some other routine errors in the early stages of coding can be checked by automated inspection software. 

  1. Walk-through : The walkthrough and inspection technique are related to each other. The main difference is that the participates are supposed to think about good tests for the program during their preparation when a walk-through is planned. In the meeting, they will execute those tests together manually on a sheet a paper or on a projector. 

Using a structured walk-through is an effective method of detecting errors in code. structural walk though can be used to review many systems development deliverables, including design specifications and code. 

It should be stressed that the purpose of walk though is to detect errors not to correct them. It is the programmer’s job to correct the errors uncovered in a walkthrough. 

(iii) Desk Checking:  A testing technique in which the program code is sequentially executed manually with a paper and pencil by the reviewer. The reviewer acts as the computer, mentally checking each step and its results for the entire set of computer instructions. 

(iv) Syntax Checking: Syntax checking is typically done by a compiler. Errors in syntax are uncovered but the code is not executed.  

For the other three automated techniques (Unit testing, Integration testing and System testing), the code is executed. 

(v) Unit Testing: Unit testing is undertaken after a module has been coded and reviewed. Before carrying out unit testing, the unit test cases have to be designed and the test environment for the unit under test has to be developed. Unit testing is used to test a particular functions or code modules. It is the most ‘micro’ scale of testing. Unit testing focuses verification effort on the smallest unit of software design – software component or module. 

(vi) Integration Testing: Combining modules and tasting them is called integration testing. Integration testing is the process of bringing together for testing purposes of all the modules that a program comprises. 

Integration testing is a systematic technique for constructing the software architecture while at the same time conducting tests to uncover errors associated with interfacing. The objective is to take unit tested components and build a program structure that has been dictated by design. 

Modules are typically integrated in a top-down, incremental fashion. Top-down integration testing in an incremental approach to the construction of the software architecture. Modules are integrated by moving downward through the control hierarchy, beginning with the main control module (main program). Modules subordinates (and ultimately subordinate) to the main control module are incorporated into the structure in either a depth-first or breadth-first manner. 

(viii) System Testing: After all the units of a program have been integrated together and tested, system testing is taken up. 

System testing is a similar process, but instead of integrating modules into programs for testing, you integrate programs into systems. System testing follows the same incremental logic that integration testing does. Under both integration and system testing, not only do individual modules and programs get tested many times, so do the interfaces between modules and programs. 

System tests are designed to validate a fully developed system to assure that it meets its requirements. The test cases are therefore designed solely based on the requirement specification document. 

System tests are usually conducted by the systems analysts to ensure that all modules and programs work together without error. System testing is similar to integration testing, but is much broader in scope. Whereas integration testing focuses on whether the modules work together without error, system tests examine how well the system meets business requirements and its usability security, and performance under heavy load. It also tests the systems documentation.