Програм хангамжийн баталгаажуулалтын аргуудад. Програм хангамж боловсруулах процессуудын дунд баталгаажуулалтын газар. Баталгаажуулалт, мэргэшлийн төлөвлөлт

  • 2. Компьютерийн системийн системийн инженерчлэл
  • 2.1. Системийн интеграцийн шинж чанарууд
  • 2.2. Систем ба түүний орчин
  • 2.3. Системийн загварчлал
  • 2.4. Системийг бий болгох үйл явц
  • 2.5. Худалдан авах системүүд
  • 3. Програм хангамж бүтээх үйл явц
  • 3.1. Програм хангамж бүтээх үйл явцын загварууд
  • 3.2. Давталттай програм хангамж хөгжүүлэх загварууд
  • 3.3. Програм хангамжийн тодорхойлолт
  • 3.4. Програм хангамжийн дизайн, хэрэгжилт
  • 3.5. Програм хангамжийн системийн хувьсал
  • 3.6. Автоматжуулсан програм хангамж хөгжүүлэх хэрэгслүүд
  • 4. Програм хангамжийн үйлдвэрлэлийн технологи
  • II хэсэг. Програм хангамжийн шаардлага
  • 5. Програм хангамжийн шаардлага
  • 5.1. Функциональ болон үйл ажиллагааны бус шаардлага
  • 5.2. Хэрэглэгчийн шаардлага
  • 5.3. Системийн шаардлага
  • 5.4. Системийн шаардлагыг баримтжуулах
  • 6. Шаардлагыг боловсруулах
  • 6.1. Техник эдийн засгийн шинжилгээ
  • 6.2. Шаардлагыг бүрдүүлэх, дүн шинжилгээ хийх
  • 6.3. Шаардлагын гэрчилгээ
  • 6.4. Шаардлагын менежмент
  • 7. Шаардлагын матриц. Шаардлагын матриц боловсруулах
  • III хэсэг. Програм хангамжийн симуляци
  • 8. Архитектурын зураг төсөл
  • 8.1. Системийн бүтэц
  • 8.2. Удирдлагын загварууд
  • 8.3. Модульчлагдсан задрал
  • 8.4. Асуудлаас хамааралтай архитектурууд
  • 9. Тархсан системийн архитектур
  • 9.1. Олон процессорын архитектур
  • 9.2. Үйлчлүүлэгч/серверийн архитектур
  • 9.3. Тархсан объектын архитектур
  • 9.4. Корба
  • 10. Объект хандалтат дизайн
  • 10.1. Объект ба объектын ангиуд
  • 10.2. Объект хандалтат дизайны үйл явц
  • 10.2.1. Системийн орчин ба ашиглалтын хэв маяг
  • 10.2.2. Архитектур дизайн
  • 10.2.3. Объектуудыг тодорхойлох
  • 10.2.4. Архитектурын загварууд
  • 10.2.5. Объектын интерфейсийн тодорхойлолт
  • 10.3. Системийн архитектурын өөрчлөлт
  • 11. Бодит цагийн системийн дизайн
  • 11.1. Бодит цагийн системийн дизайн
  • 11.2. Хяналтын програмууд
  • 11.3. Хяналт, хяналтын систем
  • 11.4. Мэдээлэл цуглуулах систем
  • 12. Бүрэлдэхүүн хэсгүүдийг дахин ашиглах загвар
  • 12.1. Бүрэлдэхүүн хэсэг бүрээр хөгжүүлэх
  • 12.2. Хэрэглээний гэр бүл
  • 12.3. Дизайн загварууд
  • 13. Хэрэглэгчийн интерфейсийн дизайн
  • 13.1. Хэрэглэгчийн интерфейсийн дизайны зарчим
  • 13.2. Хэрэглэгчийн харилцан үйлчлэл
  • 13.3. Мэдээллийн танилцуулга
  • 13.4. Хэрэглэгчийг дэмжих хэрэгсэл
  • 13.5. Интерфейсийн үнэлгээ
  • IV хэсэг. Програм хангамж хөгжүүлэх технологи
  • 14. Програм хангамжийн амьдралын мөчлөг: загвар ба тэдгээрийн онцлог
  • 14.1. Каскадын амьдралын мөчлөгийн загвар
  • 14.2. Хувьслын амьдралын мөчлөгийн загвар
  • 14.2.1. Албан ёсны системийн хөгжил
  • 14.2.2. Өмнө нь үүсгэсэн бүрэлдэхүүн хэсгүүдэд суурилсан програм хангамж хөгжүүлэх
  • 14.3. Давталттай амьдралын мөчлөгийн загварууд
  • 14.3.1 Өсөн нэмэгдэж буй хөгжлийн загвар
  • 14.3.2 Спираль хөгжлийн загвар
  • 15. Програм хангамж боловсруулах технологийн арга зүйн үндэс
  • 16. Бүтцийн шинжилгээ, программ хангамжийн загварчлалын арга
  • 17. Объект хандалтат шинжилгээний арга, программ хангамжийн дизайн. UML загварчлалын хэл
  • V хэсэг: Бичгээр харилцах. Програм хангамжийн төслийг баримтжуулах
  • 18. Програм хангамж боловсруулах үе шатуудын баримтжуулалт
  • 19. Төслийн төлөвлөлт
  • 19.1 Ажлын агуулга, хамрах хүрээг тодруулах
  • 19.2 Агуулгын менежментийг төлөвлөх
  • 19.3 Байгууллагын бүтцийг төлөвлөх
  • 19.4 Тохиргооны менежментийг төлөвлөх
  • 19.5 Чанарын удирдлагын төлөвлөлт
  • 19.6 Төслийн үндсэн хуваарь
  • 20. Програм хангамжийн баталгаажуулалт, баталгаажуулалт
  • 20.1. Баталгаажуулалт, мэргэшлийн төлөвлөлт
  • 20.2. Програм хангамжийн системийг шалгах
  • 20.3. Програмын автомат статик шинжилгээ
  • 20.4. Цэвэр өрөөний арга
  • 21. Програм хангамжийн туршилт
  • 21.1. Согогийн туршилт
  • 21.1.1. Хар хайрцагны туршилт
  • 21.1.2. Эквивалент бүсүүд
  • 21.1.3. Бүтцийн туршилт
  • 21.1.4. Туршилтын салбарууд
  • 21.2. Бүтээлийг туршиж байна
  • 21.2.1. Доош болон дээш чиглэсэн туршилт
  • 21.2.2. Интерфейсийн туршилт
  • 21.2.3. Ачааллын туршилт
  • 21.3. Объект хандалтат системийг турших
  • 21.3.1. Туршилтын объектын ангиуд
  • 21.3.2. Объект интеграци
  • 21.4. Туршилтын хэрэгсэл
  • VI хэсэг. Програм хангамжийн төслийн менежмент
  • 22. Төслийн удирдлага
  • 22.1. Удирдлагын үйл явц
  • 22.2. Төслийн төлөвлөлт
  • 22.3. Үйл ажиллагааны хуваарь
  • 22.4. Эрсдэлийн менежмент
  • 23. Боловсон хүчний менежмент
  • 23.1. Сэтгэлгээний хязгаар
  • 23.1.1. Хүний ой санамжийн зохион байгуулалт
  • 23.1.2. Асуудал шийдэх
  • 23.1.3. Урам зориг
  • 23.2. Бүлгийн ажил
  • 23.2.1. Баг бүрдүүлэх
  • 23.2.2. Багийн эв нэгдэл
  • 23.2.3. Бүлгийн харилцаа холбоо
  • 23.2.4. Бүлгийн зохион байгуулалт
  • 23.3. Боловсон хүчнийг ажилд авах, хадгалах
  • 23.3.1. Ажиллах орчин
  • 23.4. Боловсон хүчний хөгжлийн түвшинг үнэлэх загвар
  • 24. Програм хангамжийн бүтээгдэхүүний өртгийн тооцоо
  • 24.1. Гүйцэтгэл
  • 24.2. Үнэлгээний аргууд
  • 24.3. Зардлын алгоритмын загварчлал
  • 24.3.1. Сосомо загвар
  • 24.3.2. Төсөл төлөвлөлт дэх зардлын алгоритмын загварууд
  • 24.4. Төслийн үргэлжлэх хугацаа, боловсон хүчнийг ажилд авах
  • 25. Чанарын удирдлага
  • 25.1. Чанарын баталгаа ба стандарт
  • 25.1.1. Техникийн баримт бичгийн стандартууд
  • 25.1.2. Програм хангамжийг бий болгох үйл явцын чанар, програм хангамжийн бүтээгдэхүүний чанар
  • 25.2. Чанарын төлөвлөлт
  • 25.3. Чанарын шалгалт
  • 25.3.1. Чанарын шалгалт
  • 25.4. Програм хангамжийн хэмжилт
  • 25.4.1. Хэмжилтийн үйл явц
  • 25.4.2. Програм хангамжийн бүтээгдэхүүний үзүүлэлтүүд
  • 26. Програм хангамжийн найдвартай байдал
  • 26.1. Програм хангамжийн найдвартай байдлыг хангах
  • 26.1.1 Чухал систем
  • 26.1.2. Үр ашиг, найдвартай байдал
  • 26.1.3. Аюулгүй байдал
  • 26.1.4. Аюулгүй байдал
  • 26.2. Найдвартай байдлын гэрчилгээ
  • 26.3. Аюулгүй байдлын баталгаа
  • 26.4. Програм хангамжийн аюулгүй байдлын үнэлгээ
  • 27. Програм хангамжийн үйлдвэрлэлийг сайжруулах
  • 27.1. Бүтээгдэхүүний чанар, үйлдвэрлэлийн
  • 27.2. Үйлдвэрлэлийн шинжилгээ ба симуляци
  • 27.2.1. Бүтээлийн явцад үл хамаарах зүйлүүд
  • 27.3. Үйлдвэрлэлийн процессын хэмжилт
  • 27.4. Хөгжлийн түвшинг үнэлэх загвар
  • 27.4.1. Хөгжлийн түвшинг үнэлэх
  • 27.5. Сайжруулах үйл явцын ангилал
  • 20. Баталгаажуулалт, баталгаажуулалт програм хангамж

    Баталгаажуулалт, баталгаажуулалт нь програм хангамж нь түүний техникийн үзүүлэлтүүд болон хэрэглэгчийн шаардлагад нийцэж байгаа эсэхийг шалгах, шалгах үйл явц юм. Баталгаажуулалт, баталгаажуулалт нь програм хангамжийн амьдралын мөчлөгийг бүхэлд нь хамардаг - тэдгээр нь шаардлагын дүн шинжилгээ хийх үе шатнаас эхэлж, бэлэн програм хангамжийн системийг турших үе шатанд програмын кодыг баталгаажуулснаар дуусдаг.

    Баталгаажуулалт, баталгаажуулалт нь ижил зүйл биш боловч тэдгээрийг төөрөлдүүлэхэд хялбар байдаг. Товчхондоо тэдгээрийн хоорондын ялгааг дараах байдлаар тодорхойлж болно.

    Баталгаажуулалт нь системийг зөв үүсгэсэн эсэх асуултад хариулдаг;

    Сертификат нь систем зөв ажиллаж байгаа эсэх асуултад хариулдаг.

    Эдгээр тодорхойлолтын дагуу баталгаажуулалт нь програм хангамжийн системийн техникийн үзүүлэлтүүд, ялангуяа функциональ болон үйл ажиллагааны бус шаардлагад нийцэж байгаа эсэхийг шалгадаг. Баталгаажуулалт нь илүү ерөнхий үйл явц юм. Баталгаажуулалтын явцад програм хангамжийн бүтээгдэхүүн нь хэрэглэгчийн хүлээлтэд нийцэж байгаа эсэхийг баталгаажуулах шаардлагатай. Баталгаажуулалтын дараагаар систем нь техникийн үзүүлэлтүүд төдийгүй хэрэглэгчийн хүлээлтэд хэр нийцэж байгааг тодорхойлох болно.

    Өмнө дурьдсанчлан, програм хангамжийг хөгжүүлэх эхний үе шатанд системийн шаардлагын баталгаажуулалт маш чухал байдаг. Шаардлагад алдаа дутагдал нийтлэг байдаг; ийм тохиолдолд эцсийн бүтээгдэхүүн нь хэрэглэгчийн хүлээлтийг хангахгүй байх магадлалтай. Гэхдээ мэдээжийн хэрэг, шаардлагын баталгаажуулалт нь шаардлагын тодорхойлолтод байгаа бүх асуудлыг тодорхойлж чадахгүй. Заримдаа шаардлагын дутагдал, алдаа нь системийг хэрэгжүүлж дууссаны дараа л илэрдэг.

    Баталгаажуулах, баталгаажуулах үйл явц нь системийг шалгах, дүн шинжилгээ хийх үндсэн хоёр аргыг ашигладаг.

    1. Програм хангамжийн шалгалт.Шаардлагын тодорхойлолтын баримт бичиг, архитектурын диаграмм эсвэл програмын эх код гэх мэт янз бүрийн системийн дүрслэлд дүн шинжилгээ хийж, баталгаажуулах. Хяналт шалгалтыг програм хангамжийн системийг хөгжүүлэх үйл явцын бүх үе шатанд гүйцэтгэдэг. Хяналт шалгалттай зэрэгцэн хийж болно автомат шинжилгээпрограмын эх код болон холбогдох баримт бичиг. Хяналт шалгалт, автоматжуулсан дүн шинжилгээ нь гүйцэтгэх боломжтой систем шаарддаггүй тул статик баталгаажуулалт, баталгаажуулалтын аргууд юм.

    2. Програм хангамжийн туршилт.Туршилтын өгөгдөл бүхий гүйцэтгэх кодыг ажиллуулж, систем зөв ажиллаж байгаа эсэхийг шалгахын тулд програм хангамжийн бүтээгдэхүүний гаралт, гүйцэтгэлийн шинж чанарыг шалгана уу. Туршилт нь ажиллаж байгаа системд хэрэглэгдэж байгаа тул баталгаажуулах, баталгаажуулах динамик арга юм.

    Зураг дээр. Зураг 20.1-д програм хангамжийг боловсруулах үйл явцад хяналт шалгалт, туршилт хийх газрыг харуулав. Сумнууд нь эдгээр аргыг хэрэглэж болох хөгжлийн үйл явцын үе шатуудыг заадаг. Энэхүү схемийн дагуу шалгалтыг системийг хөгжүүлэх үйл явцын бүх үе шатанд хийж болох бөгөөд туршилтыг прототип эсвэл гүйцэтгэх програмыг бий болгосон тохиолдолд хийж болно.

    Хяналтын аргад: программын шалгалт, эх кодын автомат шинжилгээ, албан ёсны баталгаажуулалт орно. Гэхдээ статик аргууд нь зөвхөн програмын техникийн үзүүлэлттэй нийцэж байгаа эсэхийг шалгах боломжтой бөгөөд системийн зөв ажиллагааг шалгахад ашиглах боломжгүй юм. Үүнээс гадна гүйцэтгэл, найдвартай байдал зэрэг функциональ бус шинж чанаруудыг статик аргуудыг ашиглан шалгах боломжгүй юм. Тиймээс функциональ бус шинж чанарыг үнэлэхийн тулд системийн туршилтыг явуулдаг.

    Цагаан будаа. 20.1. Статик болон динамик баталгаажуулалт, баталгаажуулалт

    Програм хангамжийн шалгалтыг өргөнөөр ашиглаж байгаа хэдий ч туршилт нь баталгаажуулах, баталгаажуулах давамгайлсан арга хэвээр байна. Туршилт гэдэг нь системийг ажиллуулах явцад боловсруулагдах бодит өгөгдөлтэй төстэй өгөгдөл бүхий програмуудын ажиллагааг шалгах тест юм. Хөтөлбөрт гарсан согог, үл нийцэл байгаа эсэхийг гаралтын өгөгдлийг судалж, тэдгээрийн дундаас хэвийн бус зүйлсийг олж илрүүлдэг. Туршилтыг системийг хэрэгжүүлэх үе шатанд (систем нь хөгжүүлэгчдийн хүлээлтийг хангаж байгаа эсэхийг шалгахын тулд) болон хэрэгжиж дууссаны дараа хийгддэг.

    Програм хангамж боловсруулах үйл явцын янз бүрийн үе шатанд янз бүрийн төрлийн туршилтуудыг ашигладаг.

    1. Согогийн туршилтПрограмын алдаа, согогоос үүдэлтэй программ болон түүний техникийн үзүүлэлтүүдийн хоорондын үл нийцлийг илрүүлэх зорилгоор хийгддэг. Ийм туршилтууд нь систем дэх алдааг тодорхойлох зорилготой бөгөөд түүний ажиллагааг дуурайлган хийхгүй.

    2. Статистикийн туршилтпрограмын гүйцэтгэл, найдвартай байдал, түүнчлэн янз бүрийн үйлдлийн горим дахь системийн ажиллагааг үнэлдэг. Туршилтууд нь системийн бодит ажиллагааг бодит оролтын өгөгдөлтэй загварчлахад зориулагдсан. Системийн найдвартай байдлыг програмын үйл ажиллагаанд гарсан алдааны тоогоор үнэлдэг. Туршилтын өгөгдлийг боловсруулахдаа үйлдлийн гүйцэтгэлийн нийт хугацаа болон системийн хариу өгөх хугацааг хэмжих замаар гүйцэтгэлийг үнэлдэг.

    Баталгаажуулалт, мэргэшлийн гол зорилго нь уг системийг "зорилгодоо тохирсон" эсэхийг баталгаажуулах явдал юм. Програм хангамжийн систем нь зорилгодоо нийцэж байгаа нь бүрэн алдаагүй байх ёстой гэсэн үг биш юм. Үүний оронд систем нь төлөвлөсөн зорилгодоо хангалттай сайн үйлчлэх ёстой. Шаардлагатай түвшин дагаж мөрдөх найдвартай байдалсистемийн зорилго, хэрэглэгчийн хүлээлт, програм хангамжийн зах зээлийн нөхцөл байдлаас хамаарна.

    1. Програм хангамжийн зорилго.Дагаж мөрдөх итгэлийн түвшин нь хөгжүүлж буй програм хангамж нь тодорхой шалгуурын дагуу хэр чухал байхаас хамаарна. Жишээлбэл, аюулгүй байдлын хувьд чухал ач холбогдолтой системүүдийн итгэлийн түвшин нь зарим шинэ санааг харуулах зорилгоор боловсруулсан прототип програм хангамжийн системийн итгэлийн түвшингээс хамаагүй өндөр байх ёстой.

    2. Хэрэглэгчийн хүлээлт.Одоогоор ихэнх хэрэглэгчид програм хангамжийн шаардлага багатай байгааг тэмдэглэх нь харамсалтай. Хэрэглэгчид програм ажиллаж байх үед тохиолддог бүтэлгүйтэлд маш их дассан байдаг тул үүнд гайхдаггүй. Ашиглалтын үр ашиг нь сул талуудаас давсан тохиолдолд тэд системийн доголдлыг тэсвэрлэхэд бэлэн байдаг. Гэсэн хэдий ч 1990-ээд оны эхэн үеэс эхлэн хэрэглэгчийн програм хангамжийн системийн алдааг тэсвэрлэх чадвар аажмаар буурч байна. Сүүлийн үед найдваргүй системийг бий болгох нь бараг боломжгүй болсон тул програм хангамжийн бүтээгдэхүүн боловсруулж буй компаниуд програм хангамжийн баталгаажуулалт, баталгаажуулалтад илүү их анхаарал хандуулах шаардлагатай байна.

    3. Програм хангамжийн зах зээлийн нөхцөл байдал.Програм хангамжийн системийг үнэлэхдээ худалдагч нь өрсөлдөгч системүүд, худалдан авагчийн системд төлөхөд бэлэн байгаа үнэ, системийг зах зээлд гаргах зорилтот огноо зэргийг мэддэг байх ёстой. Хэрэв хөгжүүлэлтийн компани хэд хэдэн өрсөлдөгчидтэй бол системийг бүрэн туршилт, дибаг хийх ажил дуусахаас өмнө зах зээлд гарах огноог тодорхойлох шаардлагатай, эс тэгвээс өрсөлдөгчид зах зээлд хамгийн түрүүнд орж ирж магадгүй юм. Хэрэв хэрэглэгчид програм хангамжийг өндөр үнээр худалдаж авахыг хүсэхгүй байгаа бол тэд илүү олон системийн доголдлыг тэсвэрлэхэд бэлэн байж магадгүй юм. Баталгаажуулалт, баталгаажуулалтын үйл явцын зардлыг тодорхойлохдоо эдгээр бүх хүчин зүйлийг харгалзан үзэх шаардлагатай.

    Дүрмээр бол, баталгаажуулалт, баталгаажуулалтын явцад системд алдаа олддог. Алдаа засахын тулд системд өөрчлөлт оруулж байна. Энэ дибаг хийх үйл явцИхэвчлэн бусад баталгаажуулалт, мэргэшлийн процессуудтай нэгтгэдэг. Гэсэн хэдий ч туршилт (эсвэл ерөнхийдөө баталгаажуулалт, баталгаажуулалт) болон дибаг хийх нь өөр өөр зорилготой өөр өөр процессууд юм.

    1. Баталгаажуулалт, баталгаажуулалт нь програм хангамжийн системийн согогийг илрүүлэх үйл явц юм.

    2. Дибаг хийх нь согог (алдаа) -ыг нутагшуулах, тэдгээрийг засах үйл явц юм (Зураг 20.2).

    Цагаан будаа. 20.2. Дибаг хийх үйл явц

    Хөтөлбөрийг дибаг хийх энгийн аргууд байдаггүй. Туршлагатай дибаг хийгчид туршилтын гаралтын хэв маягийг туршиж буй системийн гаралттай харьцуулах замаар алдааг илрүүлдэг. Алдааг олохын тулд алдааны төрөл, гаралтын загвар, програмчлалын хэл, програмчлалын үйл явцын талаархи мэдлэг шаардлагатай. Програм хангамж боловсруулах үйл явцын талаархи мэдлэг нь маш чухал юм. Дибаг хийгчид програмистын хамгийн нийтлэг алдааг мэддэг (жишээлбэл, тоологч утгыг нэмэгдүүлэхтэй холбоотой). Зарим програмчлалын хэлнүүдэд тохиолддог алдаануудыг, жишээлбэл, Си хэл дээрх заагч ашиглахтай холбоотой алдаануудыг харгалзан үздэг.

    Програмын кодын алдааг олох нь үргэлж хялбар биш байдаг, учир нь алдаа нь тухайн програмын код дахь асуудал гарсан газрын ойролцоо байх албагүй. Алдааг локалчлахын тулд дибаггер программист програмын алдааны эх үүсвэрийг тодорхойлоход туслах програм хангамжийн нэмэлт туршилтуудыг боловсруулдаг. Хөтөлбөрийн гүйцэтгэлийг гараар хянах шаардлагатай байж магадгүй юм.

    Интерактив дибаг хийх хэрэгслүүд нь кодын эмхэтгэлийн системтэй нэгдсэн хэлийг дэмжих хэрэгслүүдийн нэг хэсэг юм. Эдгээр нь программыг гүйцэтгэх тусгай орчинг бүрдүүлдэг бөгөөд үүгээр дамжуулан таних хүснэгт болон тэндээс хувьсагчийн утгуудад хандах боломжтой. Хэрэглэгчид ихэвчлэн програмын гүйцэтгэлийг алхам алхмаар удирдаж, мэдэгдлээс мэдэгдэл рүү дараалан шилжүүлдэг. Мэдэгдэл бүрийг гүйцэтгэсний дараа хувьсагчдын утгыг шалгаж, болзошгүй алдааг тодорхойлно.

    Хөтөлбөрт илэрсэн алдааг зассаны дараа програмыг дахин шалгах шаардлагатай болно. Үүнийг хийхийн тулд та програмыг дахин шалгаж эсвэл өмнөх туршилтыг давтаж болно. Практикт "алдаа засах"-ын өндөр хувь нь бүрэн бүтэлгүйтдэг эсвэл програмд ​​шинэ алдаа оруулдаг тул програмд ​​хийсэн өөрчлөлтүүд системд шинэ алдаа оруулаагүй эсэхийг шалгахын тулд дахин туршилтыг ашигладаг.

    Зарчмын хувьд засвар бүрийн дараа дахин туршилт хийх явцад бүх туршилтыг дахин хийх ёстой боловч бодит байдал дээр энэ арга нь хэтэрхий үнэтэй байдаг. Тиймээс туршилтын үйл явцыг төлөвлөхдөө системийн хэсгүүдийн хоорондын хамаарлыг тодорхойлж, хэсэг тус бүрт туршилтыг хуваарилдаг. Дараа нь тэдгээр элементүүдэд тохирсон тусгай туршилтын тохиолдлууд (туршилтын өгөгдөл) ашиглан програм хангамжийн элементүүдийг хянах боломжтой. Хэрэв ул мөрийн үр дүнг баримтжуулсан бол өөрчилсөн програм хангамжийн элемент болон түүний хамааралтай бүрэлдэхүүн хэсгүүдийг туршихын тулд туршилтын өгөгдлийн бүх багцын зөвхөн нэг хэсгийг ашиглаж болно.

    Баталгаажуулалт (зөв байдлыг баталгаажуулах) - техникийн тодорхойлолтод тусгасан албан ёсны мэдэгдлийн багцтай холбоотойгоор боловсруулсан програмын зөв эсэхийг шалгаж, нотлох, энэ програмын оролт, гаралтын өгөгдлийн хоорондын хамаарлыг бүрэн тодорхойлохоос бүрдэнэ. Энэ тохиолдолд програмын оролт, гаралт дахь хувьсагчдын хоорондын хамаарлыг тестийн нэгэн адил утгын хэлбэрээр биш, харин эдгээр хувьсагчдыг боловсруулах явцад илэрдэг шинж чанаруудын тайлбар хэлбэрээр дүн шинжилгээ хийдэг. хөтөлбөрт.

    Програмыг шалгах нь зарчмын хувьд туршилт, дибаг хийх хэрэгцээг арилгадаг, учир нь нэгэн зэрэг бүх хувьсагчийн үзэл баримтлал, тайлбарын өндөр түвшинд үйл явц, тэдгээрийн боловсруулалт, хувиргалтын зөв байдлыг тогтоодог.

    Програм бүрийн мөн чанарыг оролт ба гаралтын өгөгдлийн хоорондын хамаарлын тайлбараар илэрхийлж болно. Эдгээр харилцааг 1 програм хангамжийн тодорхойлолтоор албан ёсны болгосон. Бодит хөгжилд эдгээр харилцааг албан ёсны болгох нь муу биш бөгөөд хөтөлбөр боловсруулах явцад зарим харилцааг тодруулж өгдөг. Ийм бүрэн бус тодорхойлогдсон зүйлүүд нь програмуудын зөвийг батлахад хангалтгүй юм. Зөвхөн оролт ба гаралтын өгөгдлийн хоорондох бүх нөхцөл, холболтыг бүрэн, үнэн зөв албан ёсны болгосноор тэдгээрийг автомат баталгаажуулалтад ашиглах боломжтой болно.

    Индуктив мэдэгдлийн арга.

    Энэ аргыг судлахын тулд програмыг тодорхой цэгүүдэд хувьсагчийн шинж чанарын талаархи мэдэгдлүүдээр хангадаг.

    a) Програмыг гүйцэтгэх явцад оролтын хувьсагч өөрчлөгддөггүй;

    b) Завсрын цэгүүд дэх хувьсагчдын төлөвийг дүрсэлсэн;

    в) Гаралтын хувьсагчдыг программ ажиллаж дууссаны дараа хувьсагчдын хоорондын хамаарлыг ашиглан дүрсэлдэг.

    Баталгаажуулалт нь эхний алхамд хийгдсэн оролтын хувьсагчид болон хувиргуудаас дараагийн завсрын цэг дээр үүссэн мэдэгдлийн үнэн зөв болохыг дараалан харуулахаас бүрдэнэ.

    Хөтөлбөрийг шалгахын тулд гурван хэл шаардлагатай:

    · Програмын текст бичих хэл;

    · Баталгаажуулах нөхцлийг бүрдүүлэх хэл;

    · Үүсгэх хэл ба зөв байдлын баталгаа.

    Эдгээр хэл нь ихээхэн ялгаатай байдаг тул энэ нөхцөл байдал нь баталгаажуулалтын хэрэглээний нэг юм.

    Зөвийг баталгаажуулах нь дараахь давуу талуудтай.

    1. Тодорхой албан ёсны үйл явцыг илэрхийлдэг.

    2. Шинжилгээ хийх шаардлагатай. Зөвийг нотлох үйл явц нь зөвхөн санамсаргүй байдлаар дүн шинжилгээ хийх боломжтой програмын хэсгүүдийг шалгах боломжийг олгодог.

    3. тооцооны завсрын үр дүнг тодруулна. Илэрхийллийг бичих нь програмистыг програмын сонгосон цэгүүдэд тооцооллын үр дүнгийн талаархи таамаглалыг тодорхой томъёолоход хүргэдэг.

    4. Хамааралтай байдлыг тодорхойлно. Хөтөлбөрийг батлах явцад програмын янз бүрийн хэсэгт оролтын өгөгдлийн талаархи ямар таамаглалууд тодорхой шалгагдаагүй байгааг ойлгож эхэлдэг.

    Аргын сул тал:

    1. Хэцүү байдал; жижиг ч гэсэн энгийн програмуудТооцоолол нь маш нарийн төвөгтэй бөгөөд энэ нь алдаа гаргахад хүргэдэг.

    2. Алдаа.Аргын нарийн төвөгтэй байдлаас шалтгаалан нотлогдож буй мэдэгдлийг бүрдүүлэхэд ч, нотлох баримтад ч алдаа гаргахад хялбар байдаг.

    3. Массивтай ажиллахад бэрхшээлтэй.

    4. Математикийн хүчирхэг аппарат дутмаг.

    5. Хөдөлмөрийн эрч хүч өндөр.Хөтөлбөрийг турших нь бичихээс илүү хөдөлмөр шаарддаг (2-6 удаа).

    6. Илэрхийлэх чадвар дутмаг. Зөн совингийн хувьд маш энгийн тооцооллын хувьд ашигтай тайлан гаргах нь ихэвчлэн амаргүй байдаг:

    7. Ойлгоход хүндрэлтэй.

    8. Сургалтын хэрэгцээ. Энэ арга нь өргөн хүрээний сургалт, сургалт шаарддаг.

    Энэхүү сургалтын зорилго нь програм хангамжийн баталгаажуулалтын үйл явцын талаархи цогц ойлголтыг танилцуулах явдал юм. Хэлэлцүүлгийн сэдэв нь баталгаажуулалт, ялангуяа програм хангамжийн туршилтын салбарт ашигладаг янз бүрийн арга, аргууд юм. Хөгжиж буй програм хангамж нь илүү олон зүйлийн нэг хэсэг гэж таамаглаж байна нийтлэг систем. Ийм систем нь техник хангамж, мэдээлэл, зохион байгуулалтын (хүний ​​хэрэглэгч, хүний ​​оператор гэх мэт) бүрэлдэхүүн хэсгүүдийг багтаасан бөгөөд магадгүй өөр өөр баг боловсруулсан байж магадгүй юм. Тиймээс системийн янз бүрийн бүрэлдэхүүн хэсгүүдэд тавигдах шаардлага, тэдгээрийн харилцан үйлчлэлийн дүрмийг тодорхойлсон хөгжлийн баримт бичиг шаардлагатай. Нэмж дурдахад системийн доголдол нь нэг эсвэл өөр ноцтой үр дагаварт хүргэж болзошгүй гэж үздэг тул програм хангамжийг хөгжүүлэх явцад далд согогийг илрүүлэхэд зарцуулсан хүчин чармайлт шаардлагатай бөгөөд үндэслэлтэй байдаг. Юуны өмнө энэ нь програм хангамжийг шалгах хэрэгсэл, журамтай холбоотой юм. Сургалтанд хэд хэдэн хичээл орно практик хичээлүүд, жишээ болгон энгийн системийг ашиглан Microsoft Visual Studio 2005 Team Edition for Software Testers орчинд программ хангамжийг шалгах техник, аргуудыг дүрслэн харуулав. Энэхүү нийтлэл нь MSDN Academic Alliance (MSDN AA)-ийн эрдэм шинжилгээний хамтын ажиллагааны хөтөлбөрийн нэг хэсэг болгон боловсруулж байгаа Курсын номын сангийн нэг хэсэг юм.

    Доорх текстийг анхны PDF баримтаас автоматаар задлах замаар олж авсан бөгөөд урьдчилан үзэх зорилготой юм.
    Зураг (зураг, томьёо, график) байхгүй байна.

    Цагаан будаа. 7 Туршилт, баталгаажуулалт, баталгаажуулалт Програм хангамжийн баталгаажуулалт – бусад ерөнхий ойлголттуршилтаас илүү. Баталгаажуулалтын зорилго нь баталгаажуулж буй зүйл (шаардлага эсвэл програмын код) нь шаардлагад нийцэж байгаа, төлөвлөөгүй функцгүйгээр хэрэгжиж байгаа, дизайны тодорхойлолт, стандартад нийцсэн эсэхийг баталгаажуулах явдал юм. Баталгаажуулах үйл явц нь шалгалт, кодын туршилт, туршилтын үр дүнд дүн шинжилгээ хийх, асуудлын тайланг гаргах, дүн шинжилгээ хийх зэрэг орно. Тиймээс туршилтын үйл явц нь ерөнхийдөө хүлээн зөвшөөрөгдсөн бүрэлдэхүүн хэсэгбаталгаажуулах үйл явц, энэ сургалтын курст ижил таамаглал дэвшүүлсэн. Програм хангамжийн системийн баталгаажуулалт гэдэг нь уг системийг хөгжүүлсний үр дүнд түүнийг ашиглах замаар бид хүрэхээр төлөвлөж байсан зорилгодоо хүрсэн гэдгийг нотлох зорилготой үйл явц юм. Өөрөөр хэлбэл баталгаажуулалт гэдэг нь тухайн систем хэрэглэгчийн хүлээлтэд нийцэж байгаа эсэхийг шалгах явдал юм. Баталгаажуулалттай холбоотой асуудлууд нь энэ хүрээнээс гадуур байна сургалтын курсмөн судлах тусдаа сонирхолтой сэдвийг төлөөлдөг. Хэрэв та эдгээр гурван процессыг хариулж буй асуултын хувьд авч үзвэл тест нь "Энэ нь хэрхэн хийгддэг вэ?" Гэсэн асуултад хариулдаг. эсвэл "Хөгжсөн хөтөлбөрийн зан байдал шаардлагад нийцэж байна уу?", баталгаажуулалт - "Юу хийсэн бэ?" эсвэл "Хөгжсөн систем нь шаардлагад нийцэж байна уу?", баталгаажуулалт нь "Хийх ёстой зүйл байсан уу?" эсвэл "Хөгжсөн систем нь хэрэглэгчийн хүлээлтэд нийцэж байна уу?" 1.7. Амьдралын мөчлөгийн янз бүрийн үе шатанд бий болсон баримт бичиг Хөгжлийн бүх үе шатыг синхрончлох нь үе шат бүрт бий болсон баримт бичгийн тусламжтайгаар хийгддэг. Баримт бичгийг мөн шулуун шугамаар үүсгэдэг амьдралын мөчлөг- програм хангамжийн системийг боловсруулах явцад, мөн эсрэгээр - түүнийг шалгах явцад. V хэлбэрийн амьдралын мөчлөгийн жишээг ашиглан сегмент тус бүр дээр ямар төрлийн баримт бичиг үүссэн, тэдгээрийн хооронд ямар харилцаа холбоо байгааг олж мэдэхийг хичээцгээе (Зураг 8). Системийн шаардлагыг боловсруулах үе шатны үр дүн нь системийн шаардлагуудыг тодорхойлсон баримт бичиг юм ерөнхий зарчимсистемийн ажиллагаа, түүний харилцан үйлчлэл " орчин» - системийн хэрэглэгчид, түүнчлэн түүний ажиллагааг хангах программ хангамж, техник хангамж. Ерөнхийдөө системийн шаардлагуудтай зэрэгцэн баталгаажуулалтын төлөвлөгөөг гаргаж, баталгаажуулах стратегийг тодорхойлдог. Эдгээр баримт бичгүүдийг тодорхойлдог ерөнхий хандлага Туршилтыг хэрхэн хийх, ямар арга техникийг ашиглах, ирээдүйн системийн аль тал нь нарийн шалгалтанд хамрагдах ёстой. Баталгаажуулах стратегийг тодорхойлох замаар шийдэгдсэн өөр нэг ажил бол янз бүрийн баталгаажуулалтын процессуудын байршил, тэдгээрийн хөгжлийн үйл явцтай холболтыг тодорхойлох явдал юм. 20 Системийн шаардлагуудтай ажиллах баталгаажуулах үйл явц нь шаардлагыг баталгаажуулах, хэрэглэгчийн бодит хүлээлттэй харьцуулах үйл явц юм. Урагшаа харахад баталгаажуулах үйл явц нь бэлэн системийг хэрэглэгчдэд шилжүүлэх үед хийсэн хүлээн авах туршилтаас ялгаатай гэж бодъё, гэхдээ үүнийг ийм туршилтын нэг хэсэг гэж үзэж болно. Баталгаажуулалт нь хэрэглэгчийн үзэл бодлоос системийн хэрэгжилтийн үнэн зөвийг нотлох төдийгүй түүнийг хөгжүүлэх үндсэн зарчмуудын үнэн зөвийг нотлох хэрэгсэл юм. Цагаан будаа. 8 Програм хангамжийн системийг хөгжүүлэх үйл явц, баримт бичиг Системийн шаардлага нь функциональ шаардлага, төслийн архитектурыг боловсруулах үйл явцын үндэс болдог. Энэ процессын явцад системийн програм хангамжид тавигдах ерөнхий шаардлагууд болон түүний гүйцэтгэх ёстой функцуудыг боловсруулдаг. Функциональ шаардлагад ихэвчлэн хэвийн болон хэвийн бус нөхцөлд системийн үйл ажиллагааны хэв маяг, өгөгдөл боловсруулах дүрэм, хэрэглэгчийн интерфэйсийн тодорхойлолт зэрэг орно. Шаардлагын текст нь дүрмээр бол "заавал, заавал байх ёстой" гэсэн үгсийг багтаасан бөгөөд "Хэрэв ABC мэдрэгч дээрх температурын утга Цельсийн 30 градус ба түүнээс дээш байвал систем аудио дохио өгөхөө зогсоох ёстой" гэсэн хэлбэртэй байна. ” Функциональ шаардлагууд нь системийн архитектурыг хөгжүүлэх үндэс суурь болдог - түүний бүтцийг дэд системүүд болон хэрэгжилтийг явуулж буй хэлний бүтцийн нэгжүүд - талбар, анги, модуль, функц гэх мэтээр тайлбарлах. Функциональ шаардлагад үндэслэн туршилтын шаардлагыг бичсэн болно - функциональ шаардлагыг зөв хэрэгжүүлэхийн тулд шалгах ёстой гол цэгүүдийн тодорхойлолтыг агуулсан баримт бичиг. Ихэнхдээ туршилтын шаардлагууд нь "Тест" гэсэн үгээр эхэлдэг бөгөөд тэдгээрт тохирох функциональ шаардлагуудын лавлагаа агуулсан байдаг. Дээрх функциональ шаардлагын туршилтын шаардлагуудын жишээ нь "ABC мэдрэгчийн температур 30 хэмээс доош унах үед систем анхааруулах дохио өгдөг" ба "ABC мэдрэгчийн температур 30-аас дээш байвал шалгах" байж болно. Цельсийн градус” , систем дуут дохио үүсгэдэггүй." 21 Тестийн шаардлагыг бичихэд гарч ирдэг бэрхшээлүүдийн нэг нь зарим шаардлагуудын үндсэн баталгаагүй байдал юм, жишээлбэл, "Хэрэглэгчийн интерфейс нь зөн совинтой байх ёстой" гэсэн шаардлагыг зөн совингийн интерфейс гэж юу болохыг тодорхой тодорхойлохгүйгээр баталгаажуулах боломжгүй юм. Ийм өвөрмөц бус функциональ шаардлагыг ихэвчлэн дараа нь өөрчилдөг. Системийн архитектурын онцлог нь системийн програм хангамжийн хэрэгжилтийн онцлогийг харгалзан туршилтын шаардлагыг бий болгох эх сурвалж болж чаддаг. Ийм шаардлагын жишээ нь "ABC мэдрэгч дээрх температурын утга 255-аас хэтрэхгүй эсэхийг шалгана уу." Функциональ шаардлага, архитектур дээр үндэслэн системийн кодыг бичиж, түүнийг шалгахын тулд туршилтын шаардлагад үндэслэн туршилтын төлөвлөгөөг бэлтгэдэг - системийн хэрэгжилт нь шаардлагад нийцэж байгаа эсэхийг шалгадаг туршилтын тохиолдлын дарааллын тайлбар. Туршилтын тохиолдол бүр нь системийн оролтод өгөгдсөн утгууд, гаралтын үед хүлээгдэж буй утгууд, туршилтын гүйцэтгэлийн хувилбарын тодорхойлолтыг агуулдаг. Туршилтын объектоос хамааран туршилтын төлөвлөгөөг зарим програмчлалын хэл дээрх програм хэлбэрээр эсвэл туршиж буй системийг ажиллуулж, түүнд утгыг шилжүүлдэг хэрэгслийн оролтын өгөгдлийн файл хэлбэрээр бэлтгэж болно. Туршилтын төлөвлөгөөнд заасан эсвэл системийн янз бүрийн функцийг туршихын тулд хийх шаардлагатай үйлдлүүдийг тодорхойлсон хэрэглэгчийн системийн зааварчилгааны хэлбэрээр. Туршилтын бүх тохиолдлуудыг гүйцэтгэсний үр дүнд туршилтын амжилтын талаархи статистик мэдээллийг цуглуулдаг - бодит гаралтын утгууд нь хүлээгдэж буй үзүүлэлтүүдтэй давхцаж байсан туршилтын тохиолдлын хувь буюу тэнцсэн тест гэж нэрлэгддэг. Амжилтгүй болсон туршилтууд нь алдааны шалтгааныг шинжлэх, дараа нь засах анхны өгөгдөл юм. Интеграцийн үе шатанд системийн бие даасан модулиудыг бүхэлд нь нэгтгэж, системийн ажиллагааг бүхэлд нь шалгах туршилтын тохиолдлуудыг гүйцэтгэдэг. Эцсийн шатанд бэлэн системийг хэрэглэгчдэд хүргэдэг. Хэрэгжүүлэхээс өмнө хэрэглэгчийн мэргэжилтнүүд хөгжүүлэгчидтэй хамт хүлээн авах туршилтыг явуулдаг - тэд урьдчилан батлагдсан туршилтын хөтөлбөрийн дагуу хэрэглэгчдэд чухал ач холбогдолтой функцуудыг шалгадаг. Туршилтууд амжилттай хийгдсэн бол системийг хэрэглэгч рүү шилжүүлнэ, эс тэгвээс дахин хянан үзэхээр илгээнэ. 1.8. Туршилт, баталгаажуулалтын үйл явцын төрөл, тэдгээрийн амьдралын мөчлөгийн янз бүрийн загварт эзлэх байр суурь 1.8.1. Нэгжийн туршилт Жижиг модулиуд (процедур, анги гэх мэт) нэгжийн туршилтад хамрагдана. 100-1000 мөрийн хэмжээтэй харьцангуй жижиг модулийг туршихдаа бүгдийг нь биш юмаа гэхэд ядаж олон логик салбарууд, өгөгдлийн хамаарлын график дахь өөр өөр замууд, параметрүүдийн хил хязгаарыг шалгах боломжтой. Үүний дагуу туршилтын хамрах хүрээний шалгуурыг (бүх операторууд, бүх логик салбарууд, бүх хилийн цэгүүд гэх мэт) бий болгодог. . Нэгжийн туршилтыг ихэвчлэн бие даасан програм хангамжийн модуль бүр дээр хийдэг бөгөөд магадгүй хамгийн түгээмэл туршилтын төрөл, ялангуяа жижиг болон дунд хэмжээний системүүдийн хувьд. 1.8.2. Интеграцийн туршилт Бүх модулиудын зөв эсэхийг шалгах нь харамсалтай нь модулиудын системийн зөв ажиллах баталгаа болохгүй. Уран зохиолд заримдаа модулиудын системийг турших зохисгүй зохион байгуулалтын "сонгодог" загварыг ихэвчлэн "том үсрэлт" гэж нэрлэдэг. Аргын мөн чанар нь эхлээд модуль бүрийг тусад нь туршиж, дараа нь тэдгээрийг систем болгон нэгтгэж, бүхэл системийг турших явдал юм. Том системүүдийн хувьд энэ нь бодитой бус юм. Энэ аргын тусламжтайгаар алдааг нутагшуулахад маш их цаг зарцуулагдах бөгөөд туршилтын чанар бага хэвээр байх болно. "Том үсрэлт" -ийн өөр нэг хувилбар бол интеграцийн туршилт бөгөөд системийг үе шаттайгаар барьж байгуулахад модулиудын бүлгүүдийг аажмаар нэмж өгдөг. 1.8.3. Системийн туршилт Бүрэн хэрэгжсэн програм хангамжийн бүтээгдэхүүн нь системийн туршилтанд хамрагдана. Энэ үе шатанд шалгагч нь бие даасан журам, аргуудыг зөв хэрэгжүүлэхийг сонирхдоггүй, харин эцсийн хэрэглэгчийн үзэж байгаагаар бүхэл бүтэн програмыг бүхэлд нь сонирхож байна. Туршилтууд дээр үндэслэсэн болно Ерөнхий шаардлагаХөтөлбөрт, үүнд зөвхөн функцуудыг зөв хэрэгжүүлэхээс гадна гүйцэтгэл, хариу өгөх хугацаа, бүтэлгүйтэл, халдлага, хэрэглэгчийн алдаа гэх мэт. Систем ба бүрэлдэхүүн хэсгүүдийн туршилтын хувьд тестийн хамрах хүрээний тодорхой шалгууруудыг ашигладаг (жишээлбэл, бүх ердийн ажлын хувилбарууд, хэвийн бус нөхцөл байдал бүхий бүх хувилбарууд, хувилбаруудын хос найрлага гэх мэт). 1.8.4. Ачааллын туршилт Ачааллын туршилт нь архитектурын шийдвэр гаргахад чиглүүлдэг ачааллын дор системийн гүйцэтгэлийн талаар урьдчилан таамаглах өгөгдлийг өгдөг төдийгүй техникийн дэмжлэг үзүүлэх баг, түүнчлэн хамгийн бүтээмжтэй техник хангамж, програм хангамжийн тохиргоог бий болгох үүрэгтэй төсөл, тохиргооны менежерүүдэд үйл ажиллагааны мэдээллээр хангадаг. Ачааллын туршилт нь хөгжүүлэлтийн багт архитектурын оновчтой найрлагыг боловсруулахад чиглэсэн илүү мэдээлэлтэй шийдвэр гаргах боломжийг олгодог. Үйлчлүүлэгч нь түүний хувьд бодит байдалд ойрхон нөхцөлд хүлээн авах туршилт хийх боломжийг олж авдаг. 1.8.5. Албан ёсны шалгалт Албан ёсны шалгалт нь програм хангамж боловсруулах явцад бий болсон баримт бичиг, програмын кодыг шалгах арга замуудын нэг юм. Албан ёсны шалгалтын явцад мэргэжилтнүүдийн баг шалгагдсан баримт бичгийн эх баримт бичигтэй тохирч байгаа эсэхийг бие даан шалгадаг. Шалгаж буй баримт бичгийг боловсруулахад оролцоогүй байцаагч нар хийж байгаа нь хяналт шалгалтын бие даасан байдлыг баталгаажуулдаг. 1.9. Баталгаажсан програм хангамжийн баталгаажуулалт Тодорхойлох хэд хэдэн тодорхойлолтыг өгье ерөнхий бүтэцПрограм хангамжийн гэрчилгээжүүлэх үйл явц: Програм хангамжийн баталгаажуулалт нь тодорхой шаардлагын дагуу програм хангамжийн боловсруулалт хийгдсэн болохыг тогтоож, албан ёсоор хүлээн зөвшөөрөх үйл явц юм. Баталгаажуулалтын явцад Өргөдөл гаргагч, Баталгаажуулагч, Хяналтын байгууллага харилцан үйлчилдэг.Мэдүүлэг гаргагч нь гэрчилгээ (тохирол, чанар, тохирлын гэх мэт) авахаар холбогдох баталгаажуулалтын байгууллагад өргөдөл гаргаж байгаа байгууллага юм. бүтээгдэхүүн. Баталгаажуулагч байгууллага нь программ хангамжийн гэрчилгээ олгох өргөдөл гаргагчийн өргөдлийг авч үзэж, бие даан эсвэл тусгай комисс байгуулах замаар өргөдөл гаргагчийн програм хангамжийн гэрчилгээ олгох үйл явцыг хэрэгжүүлэхэд чиглэсэн багц журмыг хэрэгжүүлдэг байгууллага юм. 23 Хяналтын байгууллага - гэрчилгээ олгох өргөдөл гаргагчийн хөгжлийн үйл явцыг хянадаг мэргэжилтнүүдийн комисс мэдээллийн системЭнэ үйл явц нь тодорхой шаардлагад нийцэж байгаа эсэх талаар дүгнэлт өгөх бөгөөд үүнийг баталгаажуулах байгууллагад хэлэлцүүлэхээр ирүүлнэ. Баталгаажуулалт нь тохирлын гэрчилгээ эсвэл чанарын гэрчилгээ авахад чиглэгдэж болно. Эхний тохиолдолд баталгаажуулалтын үр дүн нь хөгжлийн үйл явц нь тодорхой шалгуурт нийцэж, системийн үйл ажиллагаа нь тодорхой шаардлагад нийцэж байгааг хүлээн зөвшөөрөх явдал юм. Ийм шаардлагын жишээ нь удирдамжийн баримт бичиг байж болно Холбооны үйлчилгээ програм хангамжийн системийн аюулгүй байдлын чиглэлээр техникийн болон экспортын хяналтын тухай. Хоёрдахь тохиолдолд үр дүн нь үйлдвэрлэлийн үйл явц нь үйлдвэрлэсэн бүтээгдэхүүний чанарын зохих түвшин, тодорхой нөхцөлд ашиглахад тохиромжтой байдлыг баталгаажуулдаг тодорхой шалгуурт нийцэж байгааг хүлээн зөвшөөрөх явдал юм. Ийм стандартын жишээ бол олон улсын чанарын ISO 9000:2000 (ГОСТ R ISO 9000-2001) цуврал эсвэл агаарын тээврийн DO-178B, AS9100, AS9006 стандартууд юм. Баталгаажсан програм хангамжийг турших нь нэмэлт хоёр зорилготой: Эхний зорилго нь програм хангамж нь түүнд тавигдах шаардлагыг хангаж байгааг харуулах явдал юм. Хоёрдахь зорилго нь системийн алдааны аюулгүй байдлын үнэлгээний процессоор тодорхойлсон хүлээн зөвшөөрөгдөөгүй бүтэлгүйтлийн нөхцөл байдалд хүргэж болзошгүй алдааг туршилтын явцад илрүүлдэг гэдгийг өндөр итгэлтэйгээр харуулах явдал юм. Жишээлбэл, DO-178B програм хангамжийн туршилтын зорилгыг хангахын тулд дараахь зүйлийг шаарддаг: Туршилтууд нь үндсэндээ програм хангамжийн шаардлагад суурилсан байх ёстой; Туршилтууд нь зөв ажиллаж байгааг шалгах, болзошгүй алдааг илрүүлэх зорилготой байх ёстой. Програм хангамжийн шаардлагад үндэслэн туршилтын бүрэн байдалд дүн шинжилгээ хийх нь ямар шаардлагыг шалгаагүйг тодорхойлох ёстой. Хөтөлбөрийн кодын бүтцэд үндэслэн туршилтын бүрэн байдалд дүн шинжилгээ хийх нь туршилтын явцад ямар бүтцийг гүйцэтгээгүй болохыг тодорхойлох ёстой. Энэхүү стандарт нь шаардлагад суурилсан туршилтын тухай мөн ярьдаг. Энэ стратеги нь алдааг тодорхойлоход хамгийн үр дүнтэй болох нь тогтоогдсон. Шаардлагад тулгуурлан туршилтын тохиолдлуудыг сонгох удирдамжид дараахь зүйлс орно: Програм хангамжийн туршилтын зорилгод хүрэхийн тулд хоёр ангиллын туршилтыг хийх ёстой: ердийн нөхцөл байдлын туршилт ба хэвийн бус (шаардлагагүй, бат бөх) нөхцөл байдлын туршилт. Програм хангамж боловсруулах үйл явцад хамаарах програм хангамжийн шаардлага, алдааны эх үүсвэрт зориулсан тусгай туршилтын тохиолдлуудыг боловсруулсан байх ёстой. Ердийн нөхцөл байдалд зориулсан туршилтын зорилго нь шаардлагатай бол ердийн оролт, нөхцөл байдалд програм хангамжийн хариу үйлдэл үзүүлэх чадварыг харуулах явдал юм. 24 Хэвийн бус нөхцөл байдлын туршилтын зорилго нь програм хангамжийн хэвийн бус оролт, нөхцөл байдалд зохих хариу үйлдэл үзүүлэх чадварыг харуулах явдал юм, өөрөөр хэлбэл энэ нь системийг доголдуулахгүй байх ёстой. Системийн эвдрэлийн ангиллыг агаарын хөлөг болон түүний оршин суугчдын эвдрэлийн нөхцөл байдлын ноцтой байдлыг тодорхойлох замаар тогтоодог. Програм хангамжийн аливаа алдаа нь бүтэлгүйтэлд хүргэж болзошгүй. Тиймээс аюулгүй ажиллагааг хангахад шаардагдах програм хангамжийн бүрэн бүтэн байдлын түвшин нь системийн бүтэлгүйтлийн нөхцөлтэй холбоотой байдаг. Бүтэлгүйтлийн нөхцөл байдлын 5 түвшин нь бага ба ноцтой хүртэл байдаг. Эдгээр түвшний дагуу програм хангамжийн шүүмжлэлийн түвшин гэсэн ойлголтыг нэвтрүүлсэн. Шүүмжлэлийн түвшин нь баталгаажуулалтын байгууллагад өгсөн баримт бичгийн бүрдэл, улмаар системийг боловсруулах, баталгаажуулах үйл явцын гүнийг тодорхойлдог. Жишээлбэл, DO-178B эгзэгтэй байдлын хамгийн бага түвшинд баталгаажуулахад шаардагдах баримт бичгийн төрлүүдийн тоо, системийг боловсруулах ажлын хэмжээ нь баталгаажуулалтад шаардагдах тоо, эзэлхүүнээс нэг буюу хоёр дарааллаар ялгаатай байж болно. өндөр түвшин. Тодорхой шаардлагыг баталгаажуулалт хийхээр төлөвлөж буй стандартаар тодорхойлно. 25 СЭДЭВ 2. Туршилтын программын код (лекц 2-5) 2.1. Програмын кодын туршилтын даалгавар, зорилго Хөтөлбөрийн кодын туршилт нь програмын кодыг гүйцэтгэх үйл явц бөгөөд түүнд байгаа согогийг илрүүлэхэд чиглэгддэг. Энд байгаа согогийг програмын кодын хэсэг гэж ойлгодог бөгөөд үүнийг хэрэгжүүлэх нь тодорхой нөхцөлд системийн гэнэтийн үйл ажиллагаанд (жишээ нь шаардлагад нийцэхгүй зан үйл) хүргэдэг. Системийн гэнэтийн үйлдэл нь доголдол, бүтэлгүйтэлд хүргэж болзошгүй бөгөөд энэ тохиолдолд програмын кодын томоохон согогуудын талаар ярьдаг. Зарим согогууд нь системийн үйл ажиллагааг алдагдуулдаггүй жижиг асуудлуудыг үүсгэдэг боловч түүнтэй ажиллахад зарим талаараа хүндрэл учруулдаг. Энэ тохиолдолд тэд дунд эсвэл бага зэргийн согогийн талаар ярьдаг. Энэхүү аргын дагуу турших ажил нь системийн согог үүсэх нөхцөлийг тодорхойлж, эдгээр нөхцлийг бүртгэх явдал юм. Туршилтын даалгаврууд нь ихэвчлэн програмын кодын тодорхой согогтой хэсгүүдийг тодорхойлохыг агуулдаггүй бөгөөд согогийг засахыг хэзээ ч оруулдаггүй - энэ нь системийн туршилтын үр дүнд үндэслэн хийдэг дибаг хийх ажил юм. Програмын кодын туршилтын процедурыг ашиглах зорилго нь эцсийн бүтээгдэхүүн дэх согог, ялангуяа чухал ач холбогдолтой согогуудын тоог багасгах явдал юм. Туршилт нь дангаараа баталгаа өгөхгүй бүрэн байхгүйсистемийн кодын алдаа. Гэсэн хэдий ч зөрчил, бүрэн бус байдлыг арилгахад чиглэсэн баталгаажуулалт, баталгаажуулалтын үйл явцтай хослуулан төслийн баримт бичиг(ялангуяа, системд тавигдах шаардлагууд), сайтар зохион байгуулалттай туршилт нь систем нь бүх шаардлагыг хангаж, төлөвлөсөн бүх нөхцөл байдалд нийцүүлэн ажиллахыг баталгаажуулдаг. Найдвартай байдлыг нэмэгдүүлэх системийг, жишээлбэл, нисэхийн системийг боловсруулахдаа найдвартай байдлын баталгаа нь туршилтын үйл явцыг тодорхой зохион байгуулах, түүний амьдралын мөчлөгийн бусад үйл явцтай уялдаа холбоог тодорхойлох, туршилтын амжилтыг үнэлэх боломжийг олгодог тоон шинж чанарыг нэвтрүүлэх замаар хангадаг. Түүнээс гадна системийн найдвартай байдалд тавигдах шаардлага (түүний эгзэгтэй байдлын түвшин) өндөр байх тусам илүү хатуу шаардлага тавьдаг. Тиймээс, юуны өмнө бид тодорхой системийг турших тодорхой үр дүнг авч үзэхгүй, харин ерөнхий зохион байгуулалт Туршилтын үйл явц, "сайн зохион байгуулалттай үйл явц нь чанарын үр дүнг бий болгодог" аргыг ашиглан. Энэхүү арга барил нь олон улсын болон салбарын чанарын олон стандартад нийтлэг байдаг бөгөөд эдгээрийг сургалтын төгсгөлд илүү дэлгэрэнгүй авч үзэх болно. Энэхүү аргын дагуу боловсруулсан системийн чанар нь бие даасан хяналтгүй үр дүн биш харин зохион байгуулалттай хөгжүүлэлт, туршилтын үр дагавар юм. Орчин үеийн програм хангамжийн системүүд нь нэлээд том тул тэдгээрийн програмын кодыг туршихдаа функциональ задралын аргыг ашигладаг. Систем нь шаардлагаар тодорхойлсон функциональ болон интерфейстэй тусдаа модулиудад (анги, нэрийн орон зай гэх мэт) хуваагддаг. Үүний дараа модуль бүрийг тусад нь шалгана - нэгжийн туршилтыг хийнэ. Дараа нь тусдаа модулиудыг илүү том тохиргоонд угсардаг - нэгтгэх туршилтыг хийж, эцэст нь системийг бүхэлд нь туршиж үздэг - системийн туршилтыг хийдэг. Кодын үүднээс авч үзвэл нэгж, интеграцчлал, системийн туршилт нь нийтлэг зүйлтэй тул энэ сэдэв нь дараа нь авч үзэх интеграцийн болон системийн туршилтын онцлог шинж чанаруудтай нэгжийн туршилтанд анхаарлаа хандуулах болно. 26 Нэгжийн туршилтын явцад модуль бүрийг шаардлагад нийцэж байгаа эсэх, системд гэмтэл, доголдол үүсгэж болзошгүй програмын кодын асуудалтай хэсгүүд байхгүй эсэхийг шалгадаг. Дүрмээр бол модулиуд нь системээс гадуур ажилладаггүй - тэд бусад модулиудаас өгөгдлийг хүлээн авч, боловсруулж, цааш дамжуулдаг. Нэг талаас модулийг системээс тусгаарлаж, системийн болзошгүй алдааны нөлөөг арилгах, нөгөө талаас модулийг шаардлагатай бүх мэдээллээр хангахын тулд туршилтын орчинг ашигладаг. Туршилтын орчны даалгавар бол модулийн ажиллах орчныг бий болгож, модулийн ханддаг бүх гадаад интерфейсийг дуурайх явдал юм. Туршилтын орчинг зохион байгуулах онцлогуудыг энэ сэдвээр авч үзэх болно. Туршилтын ердийн журам нь тестийн тохиолдлуудыг (мөн энгийн тест гэж нэрлэдэг) бэлтгэх, гүйцэтгэхээс бүрдэнэ. Туршилтын жишээ бүр нь модулийн үйл ажиллагааны нэг "нөхцөл байдлыг" шалгадаг бөгөөд модулийн оролт руу дамжуулсан утгуудын жагсаалт, өгөгдөл боловсруулалтыг эхлүүлэх, гүйцэтгэх тодорхойлолт - туршилтын скрипт, жагсаалтаас бүрдэнэ. Хэрэв модуль зөв ажиллаж байвал түүний гаралтад хүлээгдэж буй утгууд. Туршилтын скриптүүдийг модулийн дотоод өгөгдөлд нэвтрэхийг хориглох байдлаар эмхэтгэсэн бөгөөд бүх харилцан үйлчлэл нь зөвхөн түүний гадаад интерфейсээр дамжин явагдах ёстой. Туршилтын гүйцэтгэлийг тестийн скриптийн програм хангамжийн хэрэгжилтийг багтаасан тестийн орчин дэмждэг. Гүйцэтгэл нь оролтын өгөгдлийг модульд дамжуулж, скриптийг ажиллуулснаар эхэлдэг. Скриптийг гүйцэтгэсний үр дүнд модулиас хүлээн авсан бодит гаралтын өгөгдлийг хадгалж, хүлээгдэж буйтай харьцуулна. Хэрэв тэдгээр нь таарч байвал шалгалтыг тэнцсэн гэж үзнэ, эс тэгвээс тэнцээгүй гэж үзнэ. Амжилтгүй болсон туршилт бүр нь туршилтанд хамрагдаж буй модуль, эсвэл туршилтын орчинд, эсвэл туршилтын тодорхойлолтод алдаа байгааг илтгэнэ. Туршилтын тохиолдлын тайлбарын багц нь туршилтын төлөвлөгөөг бүрдүүлдэг - програм хангамжийн модулийг турших журмыг тодорхойлсон үндсэн баримт бичиг. Туршилтын төлөвлөгөө нь зөвхөн туршилтын тохиолдлуудыг төдийгүй тэдгээрийн гарч ирэх дарааллыг тодорхойлдог бөгөөд энэ нь бас чухал байж болно. Туршилтын төлөвлөгөөний бүтэц, онцлогийг энэ сэдвээр, тестийн тохиолдлын дараалалтай холбоотой асуудлуудыг "Туршилтын давтагдах чадвар" сэдвээр авч үзэх болно. Туршилт хийхдээ зөвхөн системийн шаардлагуудыг төдийгүй туршиж буй модулийн програмын кодын бүтцийг харгалзан үзэх шаардлагатай байдаг. Энэ тохиолдолд туршилтыг илрүүлэх байдлаар зохион бүтээдэг ердийн алдаануудшаардлагыг буруу тайлбарласнаас үүдэлтэй программистууд. Хилийн нөхцлийн шалгалт ба эквивалент ангиллын шалгалтыг ашигладаг. Системд шаардлагад заагаагүй боломж байхгүй байгаа нь програмын кодыг туршилтаар хамрах янз бүрийн тооцоогоор баталгаажуулдаг. туршилтын бүх жишээг гүйцэтгэсний үр дүнд тодорхой хэлний бүтцийн хэдэн хувь нь хийгдсэнийг тооцоолох. Энэ бүхнийг энэ сэдвийн төгсгөлд хэлэлцэх болно. 2.2. Туршилтын арга 2.2.1. Хар хайрцаг Системийг хар хайрцаг болгон турших гол санаа бол шалгагчд байгаа бүх материал нь системд тавигдах шаардлагууд бөгөөд түүний зан төлөв, систем өөрөө тодорхойлогддог бөгөөд тэдгээр нь зөвхөн гадны нөлөөллийг ашиглах замаар л ажиллах боломжтой байдаг. түүний оролт, гаралтыг ажиглах нь тодорхой үр дүн юм. Системийн хэрэгжилтийн бүх дотоод шинж чанарууд нь шалгагчаас далд байдаг тул систем нь "хар хайрцаг" бөгөөд шаардлагад нийцүүлэн түүний зөв байдлыг шалгах ёстой. 27 Програм хангамжийн кодын үүднээс хар хайрцаг нь мэдэгдэж байгаа гадаад интерфейстэй, гэхдээ нэвтрэх боломжгүй эх код бүхий ангиуд (эсвэл модулиудын) багц байж болно. Энэхүү туршилтын аргын туршигчийн гол үүрэг бол системийн үйл ажиллагаа нь шаардлагад нийцэж байгаа эсэхийг тогтмол шалгах явдал юм. Нэмж дурдахад шалгагч нь чухал нөхцөл байдалд системийн ажиллагааг шалгах ёстой - буруу оролтын утгыг оруулсан тохиолдолд юу болох вэ. Тохиромжтой нөхцөлд эгзэгтэй нөхцөл байдлын бүх хувилбаруудыг системийн шаардлагад тусгасан байх ёстой бөгөөд шалгагч нь зөвхөн эдгээр шаардлагын тодорхой туршилтуудыг гаргаж чадна. Гэсэн хэдий ч бодит байдал дээр туршилтын үр дүнд системийн хоёр төрлийн асуудал ихэвчлэн тодорхойлогддог: 1. Системийн үйл ажиллагаа нь шаардлагад нийцэхгүй байх 2. Шаардлагад заагаагүй нөхцөл байдалд системийн зохисгүй үйлдэл. Энэ хоёр төрлийн асуудлыг хөгжүүлэгчид мэдээлж, мэдээлдэг. Үүний зэрэгцээ, эхний төрлийн асуудал нь ихэвчлэн програмын кодыг өөрчлөхөд хүргэдэг бөгөөд үүнээс хамаагүй бага байдаг - шаардлагын өөрчлөлт. Шаардлагуудыг өөрчлөх энэ тохиолдолд тэдгээрийн нийцгүй байдлаас (хэд хэдэн өөр шаардлага нь ижил нөхцөл байдалд системийн зан үйлийн өөр өөр загварыг тодорхойлдог) эсвэл буруу (шаардлага нь бодит байдалд нийцэхгүй) зэргээс шалтгаалж шаардлагатай байж болно. Хоёрдахь төрлийн асуудал нь бүрэн бус байдлаас шалтгаалан шаардлагыг өөрчлөхийг шаарддаг - шаардлага нь системийн зохисгүй үйл ажиллагаанд хүргэдэг нөхцөл байдлыг тодорхой орхигдуулдаг. Энэ тохиолдолд зохисгүй зан үйлийг системийн бүрэн сүйрэл, эсвэл ерөнхийдөө шаардлагад заагаагүй аливаа зан үйл гэж ойлгож болно. Хар хайрцагны тестийг мөн шаардлагын тест гэж нэрлэдэг, учир нь... Энэ бол туршилтын төлөвлөгөөг боловсруулах цорын ганц мэдээллийн эх сурвалж юм. 2.2.2. Шилэн (цагаан) хайрцаг Системийг шилэн хайрцаг болгон туршихдаа шалгагч нь системд тавигдах шаардлага, түүний оролт, гаралтаас гадна дотоод бүтцэд нь хандах боломжтой - тэр програмын кодыг нь хардаг. Хөтөлбөрийн кодын бэлэн байдал нь шалгагчийн чадварыг өргөжүүлж, програмын кодын хэсгүүдэд тавигдах шаардлагуудын нийцлийг харж, улмаар програмын кодонд тавигдах шаардлага байгаа эсэхийг харах боломжтой болно. Шаардлагагүй програмын кодыг шаардлагад хамаарахгүй код гэнэ. Ийм код нь системийн зохисгүй үйлдлийн эх үүсвэр болдог. Нэмж дурдахад системийн ил тод байдал нь асуудал үүсгэж буй хэсгүүдийн дүн шинжилгээг гүнзгийрүүлэх боломжийг олгодог - ихэвчлэн нэг асуудал нөгөөг нь саармагжуулдаг бөгөөд тэд хэзээ ч нэгэн зэрэг тохиолддоггүй. 2.2.3. Загварын туршилт Загварын туршилт нь програм хангамжийн баталгаажуулалтын сонгодог аргуудаас арай өөр юм. Юуны өмнө, энэ нь туршилтын объект нь систем өөрөө биш, харин албан ёсны хэрэгслээр зохион бүтээсэн загвартай холбоотой юм. Хэрэв бид загварын өөрөө зөв, хэрэглэх боломжтой эсэхийг шалгах асуудлыг орхих юм бол (түүний зөв, анхны системтэй нийцэж байгаа нь албан ёсны хэрэгслээр нотлогдож болно гэж үздэг) шалгагч нь дүн шинжилгээ хийх нэлээд хүчирхэг хэрэгсэлтэй болно. системийн ерөнхий бүрэн бүтэн байдал. Загвартай ажиллахдаа та бодит системийн туршилтын лабораторид үүсгэх боломжгүй нөхцөл байдлыг бий болгож чадна. Системийн програмын кодын загвартай ажиллахдаа та түүний шинж чанар, алгоритмын оновчтой байдал, тогтвортой байдал зэрэг системийн параметрүүдийг шинжлэх боломжтой. 28 Гэсэн хэдий ч системийн зан үйлийн албан ёсны тодорхойлолтыг боловсруулахад тулгардаг бэрхшээлээс болж загварыг турших нь төдийлөн өргөн тархаагүй байна. Цөөхөн үл хамаарах зүйлүүдийн нэг бол алгоритм, математикийн төхөөрөмж нь нэлээд сайн хөгжсөн харилцаа холбооны систем юм. 2.2.4. Хөтөлбөрийн кодын дүн шинжилгээ (шалгалт) Олон тохиолдолд системийн үйл ажиллагааг бүхэлд нь шалгах боломжгүй байдаг - програмын кодын бие даасан хэсгүүдийг хэзээ ч гүйцэтгэхгүй байж болох ч шаардлагад хамрагдах болно. Ийм кодын хэсгүүдийн жишээ бол онцгой байдлын зохицуулагч юм. Жишээлбэл, хоёр модуль нь тоон утгыг бие биендээ дамжуулж, утгыг шалгах функцүүд хоёуланд нь ажилладаг бол хүлээн авагч модулийн шалгах функц хэзээ ч идэвхжихгүй, учир нь дамжуулагч дахь бүх алдаатай утгууд таслагдах болно. Энэ тохиолдолд програмын кодын зөв эсэхийг шалгах гарын авлагын шинжилгээг кодын хяналт эсвэл шалгалт гэж нэрлэдэг. Хэрэв шалгалтын үр дүнд асуудалтай газрууд тодорхойлогдвол энэ талаарх мэдээллийг тогтмол туршилтын үр дүнгийн хамт залруулах зорилгоор хөгжүүлэгчдэд дамжуулдаг. 2.3. Туршилтын орчин Бараг бүх нарийн төвөгтэй системийн туршилтын ихэнх хэсгийг ихэвчлэн автомат горимд гүйцэтгэдэг. Нэмж дурдахад, туршиж буй систем нь ихэвчлэн тусдаа модулиудад хуваагддаг бөгөөд тус бүрийг эхлээд бусдаас тусад нь, дараа нь бүхэлд нь шалгадаг. Энэ нь туршилтыг хийхийн тулд туршилтанд хамрагдаж буй модулийг ажиллуулах, ажиллуулах, оролтын өгөгдлийг түүнд дамжуулах, систем дээр ажилласны үр дүнд олж авсан бодит гаралтын өгөгдлийг цуглуулах орчинг бүрдүүлэх шаардлагатай гэсэн үг юм. оруулсан өгөгдөл. Үүний дараа хүрээлэн буй орчин нь бодит гаралтын өгөгдлийг хүлээгдэж буй өгөгдөлтэй харьцуулах ёстой бөгөөд энэ харьцуулалт дээр үндэслэн модулийн зан төлөв нь заасантай нийцэж байгаа эсэх талаар дүгнэлт гаргах ёстой (Зураг 9). Туршилтын драйвер Хүлээгдэж буй гаралт Туршилттай Боловсруулалт Оролтын өгөгдлийн үр дүнгийн модуль Бодит гаралтын өгөгдөл Stubs Зураг. 9 Туршилтын орчны ерөнхий бүдүүвч Туршилтын орчныг тус тусад нь системийн модулиудыг бүх системээс тусгаарлахад ашиглаж болно. Туршилтын эхний үе шатанд системийн модулиудыг салгах нь тэдний програмын кодонд үүссэн асуудлыг илүү нарийвчлалтай тодорхойлох боломжийг олгодог. Системээс тусгаарлагдсан модулийн ажиллагааг дэмжихийн тулд туршилтын орчин нь шалгаж буй модулийн функц эсвэл өгөгдөлд хандсан бүх модулиудын үйл ажиллагааг дуурайлган хийх ёстой. 29


    Баталгаажуулах, баталгаажуулах нэр томъёо нь програм хангамжийн чанарыг шалгахтай холбоотой. Бид нийтлэл, тайландаа эдгээр нэр томъёог ашигладаг. Програмын эх кодын статик шинжилгээг баталгаажуулах, баталгаажуулах гэж ангилах ёстой эсэх, эдгээр ойлголтуудын ялгаа нь юу вэ гэсэн янз бүрийн тайлбар, аргументуудыг бид олон удаа сонссон. Ерөнхийдөө хүн бүр өөр өөрийн гэсэн ойлголтыг эдгээр нэр томъёонд оруулдаг гэсэн сэтгэгдэл төрдөг бөгөөд энэ нь харилцан үл ойлголцолд хүргэдэг.

    Эдгээр ойлголтуудын хамгийн зөв тайлбарыг дагаж мөрдөхийн тулд бид нэр томъёог ойлгохоор шийдсэн. Судалгааны явцад бид В.В. Кулямин "Програм хангамжийг шалгах аргууд". Энэ нь эдгээр нэр томъёоны нарийвчилсан тайлбарыг өгсөн бөгөөд бид цаашид энэ ажилд өгөгдсөн тодорхойлолтуудад найдахаар шийдсэн. Баталгаажуулалт, баталгаажуулалттай холбоотой энэ ажлын зарим хэсгийг энд оруулав.

    Баталгаажуулалт ба баталгаажуулалтпрограм хангамжийн чанарыг хянах, алдааг илрүүлэхэд чиглэсэн үйл ажиллагаа юм. Нийтлэг зорилготой тул тэдгээр нь сургалтын явцад туршиж үзсэн шинж чанар, дүрэм, хязгаарлалтын эх сурвалжаараа ялгаатай байдаг бөгөөд зөрчлийг алдаа гэж үздэг.

    Цаашид танилцуулахын тулд бид "програм хангамжийн амьдралын мөчлөгийн олдвор" гэсэн нэр томъёог нэвтрүүлэх хэрэгтэй. Програм хангамжийн амьдралын мөчлөгийн олдворууд нь програм хангамжийг хөгжүүлэх, засварлах явцад бий болсон эсвэл ашигласан янз бүрийн мэдээллийн объект, баримт бичиг, загвар юм. Тиймээс олдворууд нь техникийн үзүүлэлтүүд, архитектурын тодорхойлолт, загвар юм сэдвийн хэсэгямар ч график хэл, эх код, хэрэглэгчийн баримт бичиг гэх мэт. Програм хангамж үүсгэх, дүн шинжилгээ хийхдээ бие даасан хөгжүүлэгчдийн ашигладаг, гэхдээ бусад хүмүүст хүртээмжтэй баримт бичиг хэлбэрээр бүртгэгдээгүй янз бүрийн загваруудыг олдвор гэж үзэх боломжгүй.

    Баталгаажуулалт нь програм хангамжийг хөгжүүлэх, засварлах явцад бий болсон зарим олдворууд нь өмнө нь үүсгэгдсэн эсвэл оролтын өгөгдөл болгон ашиглаж байсан бусад эд өлгийн зүйлстэй нийцэж байгаа эсэх, түүнчлэн эдгээр олдворууд болон тэдгээрийн боловсруулах үйл явц нь дүрэм, стандартад нийцэж байгаа эсэхийг шалгадаг. Ялангуяа баталгаажуулалт нь стандарт, шаардлагын тодорхойлолт ( Ажлын нөхцөл) програм хангамж, дизайны шийдэл, эх код, хэрэглэгчийн баримт бичиг, програм хангамжийн өөрийнх нь үйл ажиллагаа. Түүнчлэн программ хангамжийг боловсруулахдаа тухайн улс орон, үйлдвэр, байгууллагад мөрдөгдөж буй норм, стандартын дагуу тавигдах шаардлага, дизайны шийдэл, баримт бичиг, кодыг боловсруулсан байх, мөн тэдгээрийг бий болгох явцад энэ дүрэмд заасан бүх үйл ажиллагаа хийгдсэн эсэхийг шалгана. стандартуудыг шаардлагатай дарааллаар гүйцэтгэсэн. Шалгалтын явцад илэрсэн алдаа, согогууд нь жагсаалтад орсон хэд хэдэн баримт бичиг, баримт бичиг ба програмын бодит ажиллагаа, стандарт, програм хангамжийг хөгжүүлэх, засвар үйлчилгээ хийх бодит үйл явц хоорондын зөрүү буюу зөрчил юм. Үүний зэрэгцээ аль баримт бичгийг засах (магадгүй хоёуланг нь) шийдэх нь тусдаа ажил юм.

    Баталгаажуулалт нь програм хангамжийг хөгжүүлэх, засвар үйлчилгээ хийх явцад бий болсон эсвэл ашигласан аливаа олдворууд нь тухайн програм хангамжийн хэрэглэгчид болон үйлчлүүлэгчдийн хэрэгцээ, шаардлагад нийцэж байгаа эсэхийг шалгаж, тухайн асуудлын хууль тогтоомж, програм хангамжийг ашиглах нөхцөлийн хязгаарлалтыг харгалзан үздэг. . Эдгээр хэрэгцээ, шаардлагыг ихэнхдээ баримтжуулаагүй байдаг - тэдгээрийг бүртгэх үед тэдгээр нь програм хангамжийг хөгжүүлэх үйл явцын нэг олдворуудын нэг болох шаардлагын тайлбар болж хувирдаг. Тиймээс баталгаажуулалт нь баталгаажуулалтаас бага албан ёсны үйл ажиллагаа юм. Энэ нь үргэлж үйлчлүүлэгчид, хэрэглэгчид, бизнесийн шинжээчид эсвэл сэдвийн мэргэжилтнүүдийн оролцоотойгоор явагддаг - тэдний санал бодол нь хэрэглэгчид, үйлчлүүлэгчид болон бусад сонирхогч талуудын бодит хэрэгцээ, шаардлагыг хангалттай сайн илэрхийлсэн гэж үзэж болно. Үүнийг хэрэгжүүлэх арга нь оролцогчдын мэдлэг, бодит хэрэгцээг тодорхойлох тусгай арга техникийг ихэвчлэн ашигладаг.

    Баталгаажуулалт ба баталгаажуулалтын ялгааг 1-р зурагт үзүүлэв.

    Өгөгдсөн тодорхойлолтуудыг баталгаажуулах, баталгаажуулах үйл явцын IEEE 1012 стандартын тодорхойлолтын зарим өргөтгөлөөр олж авсан болно. 1990 оны IEEE 610.12 програм хангамжийн инженерийн нэр томьёоны стандарт толь бичигт баталгаажуулалтын тодорхойлолт нь ойролцоогоор ижил боловч баталгаажуулалтын тодорхойлолт нь арай өөр байдаг - баталгаажуулалт нь хөгжүүлэлтийн үр дүнд олж авсан програм хангамжийн эх хувилбартай нийцэж байгаа эсэхийг шалгах ёстой гэж хэлсэн. түүнд тавигдах шаардлага. Энэ тохиолдолд баталгаажуулалт нь баталгаажуулалтын онцгой тохиолдол байх бөгөөд энэ нь програм хангамжийн инженерийн ном зохиолын аль ч хэсэгт тэмдэглэгдээгүй тул 2004 оны IEEE 1012-т засвар хийгдсэн тул энэ тодорхойлолтыг тодорхой бус гэж үзэх ёстой. Б.Боемийн хэллэгийг байнга хэрэглэх нь:

    Баталгаажуулалт нь “Бид бүтээгдэхүүнээ зөв хийж байна уу?” гэсэн асуултад, баталгаажуулалт нь “Бид зөв бүтээгдэхүүн хийж байна уу?” гэсэн асуултад хариулдаг.

    Харамсалтай нь энэхүү мэдэгдлийн афоризм нь хоёрдмол утгатай хослуулсан тул төөрөгдөл нэмж байна. Гэсэн хэдий ч түүний зохиогчийн олон тооны бүтээлүүд нь баталгаажуулах, баталгаажуулах гэдэг нь дээр дурдсантай ижил ойлголтыг илэрхийлсэн болохыг харуулж байна. Эдгээр зөрүүг програм хангамжийн инженерчлэлийн стандартын агуулгаас ч харж болно. Тиймээс ISO 12207 стандарт нь туршилтыг баталгаажуулалтын нэг төрөл гэж үздэг боловч баталгаажуулалт биш бөгөөд энэ нь стандарт толь бичгээс тодорхой бус тодорхойлолтыг ашигласны үр дагавар юм.

    Эцэст нь хэлэхэд, дээр дурдсан тодорхойлолтуудын дагуу програмын эх кодын статик дүн шинжилгээ нь програмын кодыг янз бүрийн кодчилолын стандартад нийцэж байгаа эсэхийг шалгах гэх мэт програм хангамжийн баталгаажуулалттай тохирч байгааг тэмдэглэхийг хүсч байна. Статик шинжилгээ нь програм хангамжийн системийн дизайны үе шатны үр дүн нь өмнө нь тодорхойлсон шаардлага, хязгаарлалттай нийцэж байгаа эсэхийг шалгадаг.

    Ном зүй

    • V.V. Кулямин "Програм хангамжийг шалгах аргууд". Системийн програмчлалын хүрээлэн RAS 109004, Москва, ст. Б.Коммунистическая, №25.
      http://www.ict.edu.ru/ft/005645/62322e1-st09.pdf
    • Програм хангамжийн баталгаажуулалт ба баталгаажуулалтын IEEE 1012-2004 стандарт. IEEE, 2005.
    • IEEE 610.12-1990 Програм хангамжийн инженерийн нэр томьёоны стандарт тайлбар толь, залруулсан хэвлэл. IEEE, 1991 оны 2-р сар.
    • Б.В.Боем. Програм хангамжийн инженерчлэл; R&D чиг хандлага ба батлан ​​хамгаалах хэрэгцээ. R. Wegner, ed. Судалгаа. Програм хангамжийн технологийн чиглэл. Кембриж, MA: MIT хэвлэл, 1979.
    • ISO/IEC 12207 Систем ба програм хангамжийн инженерчлэл - Програм хангамжийн амьдралын мөчлөгийн үйл явц. Женев, Швейцарь: ISO, 2008.

    Цагаан хайрцагны туршилт

    Ашиглах чадварыг шалгах

    A) Ачааллын туршилт

    Гүйцэтгэлийн туршилт

    Функциональ туршилт

    Програм хангамжийн туршилт

    Туршилт гэдэг нь алдааг олох зорилготой (эсвэл зорилго) програмыг (эсвэл програмын хэсэг) гүйцэтгэх үйл явц юм.

    Туршилтын төрлийг ангилах заншилтай хэд хэдэн шалгуур байдаг. Ихэвчлэн дараах шинж тэмдгүүд илэрдэг.

    I) Туршилтын объектоор:

    (тухайн системийн шаардлагад нийцэж байгаа эсэхийг тогтоохын тулд гадны хүсэлтийн дагуу програм хангамж, техник хангамжийн систем, төхөөрөмжийн гүйцэтгэлийн үзүүлэлт, хариу өгөх хугацааг тодорхойлох, цуглуулах)

    б) Стресс тест

    (хэвийн ажиллагааны хязгаараас хэтэрсэн үед системийн найдвартай, тогтвортой байдлыг үнэлдэг.)

    в) Тогтвортой байдлын туршилт

    4) Хэрэглэгчийн интерфейсийн туршилт

    5) Аюулгүй байдлын туршилт

    6) Нутагшуулах туршилт

    7) Тохиромжтой байдлын туршилт

    II) Системийн талаархи мэдлэгээр:

    1) Хар хайрцагны туршилт

    (дотоод бүтэц нь тодорхойгүй объектыг туршсан)

    (програмын дотоод бүтцийг шалгаж, програмын логикийг шинжлэх замаар туршилтын өгөгдлийг олж авдаг)

    III) Автоматжуулалтын зэргээр:

    1) Гарын авлагын туршилт

    2) автоматжуулсан туршилт

    3) Хагас автоматжуулсан туршилт

    IV) Бүрэлдэхүүн хэсгүүдийн тусгаарлах зэргээр:

    1) Бүрэлдэхүүн хэсэг (нэгж) туршилт

    2) Интеграцийн туршилт

    3) Системийн туршилт

    V) Туршилтын хугацаанд:

    1) Альфа тест– Бүрэн цагийн хөгжүүлэгчид эсвэл шалгагчид програмыг турших хаалттай үйл явц. Альфа бүтээгдэхүүн нь ихэвчлэн ердөө 50% нь бүрэн гүйцэд байдаг; програмын код байдаг боловч дизайны нэлээд хэсэг нь дутуу байдаг.

    2) Бета туршилт- Програмын бараг дууссан хувилбарыг эрчимтэй ашиглах, түүний үйл ажиллагаанд гарсан хамгийн их алдааг тодорхойлохын тулд тэдгээрийг зах зээлд эцсийн байдлаар гаргахаас өмнө арилгах, олон нийтийн хэрэглэгчдэд хүргэх. Ирээдүйн энгийн хэрэглэгчдийн дундаас сайн дурын ажилтнуудыг туршилтанд хамруулдаг.

    Програм хангамжийн баталгаажуулалт нь тест хийхээс илүү ерөнхий ойлголт юм. Баталгаажуулалтын зорилго нь баталгаажуулж буй зүйл (шаардлага эсвэл програмын код) шаардлагад нийцэж байгаа, төлөвлөөгүй функцгүйгээр хэрэгжсэн, дизайны тодорхойлолт, стандартад нийцсэн эсэхийг баталгаажуулах явдал юм. ISO 9000-2000). Баталгаажуулах үйл явц нь шалгалт, кодын туршилт, туршилтын үр дүнд дүн шинжилгээ хийх, асуудлын тайланг гаргах, дүн шинжилгээ хийх зэрэг орно. Тиймээс туршилтын үйл явц нь баталгаажуулалтын үйл явцын салшгүй хэсэг гэдгийг нийтээр хүлээн зөвшөөрдөг.