Page 103 - SOFTWARE TESTING & QUALITY ASSURANCE
P. 103

Software Testing and Quality Assurance



                          Hackers make use of  weak codes in the  software to carry out an attack on the  software and cause
                          software failure. Therefore, any such vulnerability is considered as a bug. It is the responsibility of the
                          tester to make sure that any such bug in the software is detected and reported to the development team.
                          Information  and services are the two  important  aspects  of software  security. Protecting both the
                          information and services from possible external attack is vital. Therefore, risk analysis should be carried
                          out at the design level so as to  identify any potential security problems and resolve them at the earliest.
                                             In 2008,  hackers from Russia robbed an Automatic Teller Machine (ATM) in
                                             New York. The hackers were able to obtain the PIN numbers of customers after
                                             they hacked the main server of the ATM company. They managed to steal
                                             $180,000 from ATM machine.


                                          Software security testers perform many different tasks to manage risks related to

                                          software security such as:
                                          1.   Creating security abuse/misuse cases.
                                          2.   Listing normative security requirements.
                                          3.   Performing architectural risk analysis.

                                          4.   Building risk-based security test plans.
                                          5.   Wielding static analysis tools.
                                          6.   Performing security tests.
                                          7.   Performing penetration testing in the final environment.
                                          8.   Cleaning up after security breaches.

                          Basically, security testing involves two approaches:
                           1.   Testing software security mechanisms to check whether the functionalities of this mechanism are
                               properly implemented during the software product design and coding.
                           2.   Performing the risk based security testing with the perspective of an attacker and developing test
                               cases to check for possible risks.
                          The tester should make sure that they identify all possible bugs in the software to minimize the risk of
                          software being prone to any external attack from hackers.
                          7.2.1   Threat Modeling
                          The process of  assessing and documenting the  system's vulnerability to  security risks  is known as
                          security threat modeling. It enables the organization or developers to understand the various threats
                          that the system can face. To achieve this, the tester will analyze the system with an attacker’s
                          perspective. This enables the  tester to identify the possible threats and rate them based on order of
                          threat severity i.e., greater the risk, higher the order of severity. This enables the organization or
                          developers to address the risk which can pose a greater risk to the system.

                          Threat modeling is a highly  structured and organized approach of threat identification.  It is also a
                          highly cost effective approach, which helps to identify the possible threats efficiently and effectively.
                          The principle behind the model is that "one cannot make the system secure until they know the threats
                          the system can face".
                          Threat modeling helps to identify and tackle the risk during software evolution. It should be carried out
                          at every level of software development life cycle, as identifying  and  resolving threats of  a fully
                          developed product require both time and cost.








                          96                      LOVELY PROFESSIONAL UNIVERSITY
   98   99   100   101   102   103   104   105   106   107   108